Java语法
| 数据类型 | 占用空间及取值范围 | 备注 |
|---|---|---|
| boolean | 1 byte (true和false) | |
| byte | 1 byte (8位,-128~127) | |
| short | 2 byte (16位,-32768~32767) | short a = 1; s = s + 2;编译失败,s + 2 计算结果是int。s += 2可以编译并执行因为赋值时会强转 |
| int | 4 byte (32位,大约±21亿) | |
| long | 8 byte (64位, 大约±900万万亿) | |
| char | 2 byte (16位,Unicode字符) | 与整数相加先转为整数后计算,计算结果为整数 char ch = '\n'是可以编译的n被转译成了换行符 |
| float | 4 byte (32位,大约±3.4E38精度6位) | |
| double | 8 byte (64位,大约±1.7E308精度15位) |
+: 任何数据与字符串使用+都会转成为字符串拼接
/:两个整数类型计算结果也是整数类型【3 / 1 = 1】,只要有一个是小数类型则计算结果为小数类型【3.0 / 2 = 1.5】
%:计算结果取决于前面那个数正负【1 % -2 = 1; -1 % 2= -1; -1 % -2 = -1】
^: 两边相同为false,两边不同为true
<< >>: 左移乘以2的移动位数次幂 。右移就是除以2的移动位数次幂,高位补最高位一样数字
// 获取最低四位
int 数据 = 60;
int 低四位 = 60 & 15
/*
0000-0000-0011-1100 60
& 0000-0000-0000-1111 15
-----------------------------------
0000-0000-0000-1100 12
*/
// 获取高四位
int 中间参数 = 60 >> 4
/*
0000-0000-0011-1100 60
>> 4
-----------------------------------
0000-0000-0000-0011 3
*/
int 高四位 = 中间参数 & 15
/*
0000-0000-0000-0011 3
& 0000-0000-0000-1111 15
-----------------------------------
0000-0000-0000-0011 3
*/
// 如需取所有四位值需要用>>> 然后判断是否位移到最后,移到最后所有都是0
<<< >>>: 与<< 计算方式一致,右移最高位只给补0
&: 0为false 1为true 结果遵循逻辑运算符
|: 0为false 1为true 结果遵循逻辑运算符
^: 0为false 1为true 结果遵循逻辑运算符【一个数制异或同一个数两次结果还是 同一个数】
~: 0与1互换, 负数为整数取反加一 -1 = ~1 + 1
构造方法是给对应对象初始化
构造代码块是给所有对象进行统一初始化,优先于构造方法
this 代表调用对象,谁在调用this坐在方法this就代表哪个对象
this方法只能放在构造方法第一行,只能用于调用别的构造方法,一个构造方法只能调用一个构造方法
static 只能用于修饰成员变量,成员函数可被类名. 调用,随着类的加载而加载,优先于对象存在被所有对象共享。类一加载进内存就执行static代码块,只有真的用到类中方法包括构造方法才会加载进内存中,User u = null 不会把User加载进内存
new 对象时,先判断是否已经加载进内存中,没有加载就用“应用程序加载器”把类加载到内存中,如果类中有static修饰符代码块就立即执行static修饰符代码块,分配堆内存,执行非 static修饰符代码,执行构造方法
还要先看有没有继承类和实现接口,有的话先加载相应的父类或接口
