1.复习
-
java规定,一个变量没有被赋值的情况下,不能被使用。
-
代码需要用户友好型提示、数据判断
-
代码格式按照AJCG,驼峰命名法
-
能够使用的字符 英文字母(a~z A~Z) 数字(0~9) 下划线_
-
要求必须是英文字母开头
-
严格区分大小写!!!!
-
标识符没有长度限制,但会根据实际开发情况限制长度
-
见名知意,动宾结构
-
使用驼峰命名法
-
适用于变量名、方法名
-
大驼峰:所有单词首字母大写
适用于类名、接口名、abstract类名
-
-
系统或JAVA占用的关键字和保留字,不能作为自定义标识符
-
-
方法调用是需要通过方法名来完成的,在方法名之后有一个小括号,这是方法和变量的最大区别
2.IDEA的安装与快捷键
3.数组
存储同一种数据类型的多个元素的容器。
int[] a;//定义一个int类型的数组a变量
int a[];//定义一个int类型的a数组变量
//效果相同,念法有区别,推荐第一种
数组初始化:为数组开辟存储空间,并为每个数组元素赋值。
-
动态初始化:只指定长度,由系统给出初始化值。
格式:
数据类型[] 数组名 = new 数据类型[数据长度];
int[] arr = new int[3];
-
静态初始化:指定每个数组元素的初始化值,由系统决定数组长度。
格式:
数据类型[] 数组名 = new 数据类型[] {元素1,元素2,…};
简化:
数据类型[] 数组名 = {元素1,元素2,…};
int[] arr = new int[] {1,2,3};
int[] arr = {1,2,3};
-
不要静态、动态同时使用
int[] arr = new int[3] {1,2,3};//错误
数组操作的两个常见问题:
-
ArrayIndexOutOfBoundsException:数组索引越界异常
原因:访问了不存在的索引
-
NullPointxException:空指针异常
原因:数组已经不指向堆内存了。arr = null;
4.内存空间
JAVA程序为了提高程序的效率,对数据进行了不同空间的分配。
划分了如下5个内存空间:
-
栈:存放的是局部变量
-
局部变量:在方法定义中或方法声明上的变量
-
栈内存的数据用完就释放掉
-
-
堆:存放的是new出来的东西
-
每一个new出来的东西都有地址值
-
每个变量都有默认值
-
byte,short,int,long:0
-
float,double:0.0
-
char:‘\u0000'
-
boolean:false
-
引用类型:null
-
-
使用完毕就变成了垃圾,但并没有立即回收。会在垃圾回收器空闲的时候回收。
-
栈内存的两个引用指向同一个堆内存空间时,无论是它们谁的操作,都是针对同一个地方。
-
-
方法区:(面向对象部分详解)
-
本地方法区:(和系统相关)
-
寄存器:(CPU使用)