最近消失了段时间,思考了下公众号该发什么,每天Java也没啥意思,然后想了又想,最终决定加个Django,然后网上找学习视频,大部分都是linux环境的,然后这几天一直在和环境做斗争。被环境给整破防了,安装虚拟机,然后安装pycharm,然后安装Django,Linux上的sqlite版本太低,又满世界找版本,头都大了,各种层出不穷的问题,然后我的IDEA又出问题了,最终我以废了几根头发的代价终于在昨天晚上1点弄好了。今天开始看Django然后又出问题,幸好有快照,比女朋友都香。然后一系列层出不穷的事终于在晚上11点准备好了素材,然后开始写公众号。
喜欢请点个关注,点个赞。就不说“爱你哟”之类的话了,我怕我出门被打死 。 “么么么么 么么哒”
努力成为你圈子里最差的人,然后浸泡式的成长。
Java 数组数据地址分配
注:下方代码块可以左右滑动
所有源代码
package four_array;
public class array05_memory_allocation {
public static void main(String[] args) {
//内容快捷键
//快速生成main()方法
// psvm +enter
//快速生成输出语句
// sout+enter
// 栈内存:存储局部变量
/* 定义在方法中的变量,eg:arr
使用完毕立即消失
*/
// 堆内存:存储new出来的内存(实体,对象)
// 数组在初始化时,会为存储空间添加默认值
/* 整数:0
浮点数:0.0
布尔: false
字符:空字符
引用数据类型:null
每一个new出来的东西都有一个地址值
使用完毕。会在垃圾回收器空闲时被回收
*/
int[] arr=new int[3];
int[] arr2=new int[2];
System.out.println("赋值前:");
System.out.println(arr);
System.out.println(arr[0]);
System.out.println(arr[1]);
System.out.println(arr2);
System.out.println(arr2[0]);
System.out.println(arr2[1]);
arr[0]=312;
arr2[1]=932;
System.out.println("************************************");
System.out.println("赋值后:");
System.out.println(arr);
System.out.println(arr[0]);
System.out.println(arr[1]);
System.out.println(arr2);
System.out.println(arr2[0]);
System.out.println(arr2[1]);
System.out.println("********_________*********");
int[] array1=new int[3];
array1[0]=100;
array1[1]=100;
array1[2]=100;
System.out.println("下方为array1数组各值");
System.out.println(array1);
System.out.println(array1[0]);
System.out.println(array1[1]);
System.out.println(array1[2]);
int[] array2=array1;
array2[0]=123;
array2[1]=456;
array2[2]=789;
System.out.println("下方为array2数组赋值后的输出");
System.out.println(array2);
System.out.println(array2[0]);
System.out.println(array2[1]);
System.out.println(array2[2]);
System.out.println("再次输出array1数组");
System.out.println(array1);
System.out.println(array1[0]);
System.out.println(array1[1]);
System.out.println(array1[2]);
}
}
下方代码是上方代码的分析
// 栈内存:存储局部变量
/* 定义在方法中的变量,eg:arr
使用完毕立即消失 */
// 堆内存:存储new出来的内存(实体,对象)
// 数组在初始化时,会为存储空间添加默认值
/* 整数:0
浮点数:0.0
布尔:false
字符:空字符
引用数据类型:null
每一个new出来的东西都有一个地址值
使用完毕。会在垃圾回收器空闲时被回收 */
(数组为各类型的默认值)有图有真相
数组为int型时它的默认值为0
数组为double型时它的默认值为0.0
数组为String(引用数据类型)型时它的默认值为null
数组为boolean型时它的默认值为false
数组为char型时它的默认值为空字符
单个数组赋值前
//内容快捷键
//快速生成main()方法
// pwvm +enter
//快速生成输出语句
// sout+enter
int[] arr=new int[3];
int[] arr2=new int[2];
System.out.println("赋值前:");
System.out.println(arr);
/*[I@776ec8df
这里输出的是地址注意看这个s地址和下方输出的地址是不一样的
*/
System.out.println(arr[0]);
System.out.println(arr[1]);
System.out.println(arr2);
/*[I@4eec7777
这里主要是为了后面做铺垫
*/
System.out.println(arr2[0]);
System.out.println(arr2[1]);
单个数组赋值前运行结果
单个数组赋值后
arr[0]=312;
arr2[1]=932;
System.out.println("赋值后:");
System.out.println(arr);
System.out.println(arr[0]);
//上方我们给arr[0]赋值为312
System.out.println(arr[1]);
System.out.println(arr2);
System.out.println(arr2[0]);
System.out.println(arr2[1]);
//arr2[1]赋值932
可以看到我们赋值输出后 arr[0]为312 arr2[1]为932
两个数组地址还是不一样
单个数组赋值后运行结果
多个数组赋值(重点!!!)
int[] array1=new int[3];
array1[0]=100;
array1[1]=100;
array1[2]=100;
System.out.println("下方为array1数组各值");
System.out.println(array1);
System.out.println(array1[0]);
System.out.println(array1[1]);
System.out.println(array1[2]);
/*
输出结果:
下方为array1数组各值
[I@3b07d329
100
100
100
*/
int[] array2=array1;
//这里是重点 看这里是把array1直接赋给array2
//也就是array1数组把地址给了array2
array2[0]=123;
array2[1]=456;
array2[2]=789;
System.out.println("下方为array2数组赋值后的输出");
System.out.println(array2);
System.out.println(array2[0]);
System.out.println(array2[1]);
System.out.println(array2[2]);
/*
下方为array2数组赋值后的输出
[I@3b07d329
123
456
789
*/
System.out.println("再次输出array1数组");
System.out.println(array1);
System.out.println(array1[0]);
System.out.println(array1[1]);
System.out.println(array1[2]);
/*
再次输出array1数组
[I@3b07d329
123
456
789
*/
注意看输出的结果
多个数组运行结果
Django项目创建
创建django项目,
在linux下安装好django后会有一个djnago-admin命令
执行 django-admin startproject 项目名即可创建对应项目文件夹
终端cd进入项目文件夹
进入项目文件夹后,使用python3 manage.py runserver 启动django服务(这里启动后默认是8000端口)
看到飞机灰来灰去就成功了
注意 :启动服务后终端不可以敲其他代码
关闭服务
ctrl+c 可以关闭django
执行[root ~]# sudo lsof -i:端口号 查询出django的进程id
执行kill -9 进程id号
执行后就关闭了服务
manage.py 包含项目管理的子命令 如:
python3 manage.py runserver 启动服务
python3 manage.py startapp 创建应用
python3 manage.py migrate 数据库迁移
直接执行manage.py 可列出所有的django子命令
__init__: python包的初始化文件
wsgi.py: WEB服务网关的配置文件 -Django正式启动时需要用到
urls.py:项目的主路由配置 -HTTP请求进入Django时,优先调用该文件
settings.py:项目的配置文件-包含项目启动时需要的配置
一万小时定律
要成为某个领域的专家,需要10000小时(1.1415525年),按比例计算就是:如果每天工作八个小时,一周工作五天,那么成为一个领域的专家至少需要五年。
墙上芦苇,头重脚轻根底浅。山间竹笋,嘴尖皮厚腹中空。
愿我们不是墙上芦苇,山间竹笋。
这些都是我整理的一些学习笔记,喜欢的我们可以一起探讨学习,可以私信我,我们可以建立一个学习群,在这个学习群里我们可以分享我们的学习笔记,稳固我们的学习成果。在这个知识共享的时代里我们一起崛起。