1:莱布尼兹(奥地利的数学家)发明的二进制
2:bit(位):一个0或者一个1。
Byte(字节):是数据存储的最小单位。
1 Byte = 8 bit
1KB = 1024 Byte
3:Java程序运行的阶段:
1:编码:写代码
2:编译:编译器将源代码编译成字节码(Javac.exe 是编译器 ,用于编译源代码)
3:运行:字节码运行在机器上( Java.exe 是解释器,用于解释字节码)
4:常量:
1:字符串常量:“asd”
2:整数常量:100、200
3:浮点数常量:1.23、3.14
4:字符常量(必须是单个字符):‘a’、'A'、‘中’
5:Boolean常量:true 、false
6:空常量:null
5:变量:
数据范围和内存占用不一定相关,例如:float 比 long 表示的范围大,但是他们都占用4个字节。
浮点数中默认位double。整数默认位int。
float和long定义时:F 和 L 后缀不要丢掉,因为有默认类型。
对于byte, short ,char :
三种数据类型在运算时,首先会提升为 int 然后计算。
byte num = 30; // 不报错,30没有超出byte的范围,隐士转换。
byte num = 128; // 报错。128超出了byte的范围,无法隐士转换。
short a = 5 ; short b = 8; short c = a + b ; // 右侧相加后变成Int ,无法转换为 short。
short c = 5 + 8 ; // 右侧全部是常量。编译时直接变成13。(“编译器的表达式优化”,如果有变量就不优化了)
6:方法重载:
1:方法名称相同
2:参数列表不同
3:和返回值无关
7:数组
定义以后,不能修改长度
8:默认值
字符类型 默认值为:‘\u0000’ 。打印不可见。
9:Java内存划分
10:内存(初步理解):
类加载时:将class文件加载到方法区域。
运行时:main方法进栈,调用的方法以此进栈。用到的实体的成员和方法放在堆内存中运行。
成员变量直接在堆中,成员方法在堆中保存的是方法区的方法地址。
栈中的地址指向堆,堆中存放的地址指向方法区。
11:IDEA 统一重命名
选中名称 , Shift + F6 。