Java零碎知识点

1,赋值
short b=3;
b=b+2;
(编译报错,损失精度)
b+=2;
(不会报错)
两个得区别就在于前一个做加法和赋值运算,而第二个只做赋值运算,有自动类型转换。

2,运算符
逻辑运算符进行boolean得运算
& 结果为boolean
位运算符进行位运算
& 结果为数字

3,十进制数转换为其他进制
先转换为二进制,再用&运算,如,转换为16进制,&15,再>>4,

4,重载
重载和返回值类型无关,只和参数类型和个数有关,参数类型是有顺序的

5,引用数据类型
引用数据类型例如:int[] x=new int[9];
x创建在栈内存中,new出来的数组实体创建在堆内存中,x指向新创建出来的数组实体,值为新创建的数组实体的位置,堆内存中创建的数组实体会有一个默认值,当该数组实体不被引用后,不会被立即清除,继续存在于堆内存中,不定时的被垃圾回收机制清理掉

基本数据类型所创建的数据保存在栈内存中,当数据不被使用时,会立即清除

6,jvm调用主函数时,传入的参数String[] args=new String[0];是一个实体

编辑主函数时,可以通过 java Xxxx 参数1 参数2 …形式来传递进参数,或者使用调用类名.静态方法传递进参数(jvm调用我的主函数,我调用另外一个主函数)

7.构造代码块和构造函数:
构造代码块在执行时依赖于构造函数,在所有构造函数中都会执行一遍,
构造函数在初始化对象时,只有参数相同才执行

8new 类创建对象内存运行顺序
1)使用到了类.class文件,所以先找到该文件并加载到内存中
2)执行static代码块,给类进行初始化
3)在堆内存中开辟空间,分配内存地址
4)在堆内存中建立对象的特有属性,并进行默认初始化
5)对属性进行显示初始化
6)对对象进行构造代码块初始化
7)对对象进行对应构造函数初始化
8)将内存地址付给栈内存中的变量

你可能感兴趣的:(Java零碎知识点)