Java基础
八大基本类型:byte, short, int, long, char, float, double, boolean
初始值分别为:0,0,0,0,‘/u0000’, 0.0f, 0.0d, false
包装类:Byte, Short, Integer, Long, Character, Float, Double, Boolean
如果你在声明一个变量的时候没有初始化值,会有一个默认值,但是局部变量没有默认值,所有在使用局部变量的时候要小心
声明一个浮点数时,默认是double类型的,
用单引号来给char赋值,用双引号来为String赋值
自动装箱和自动拆箱
Integer的缓存池是八位补码的范围,当你声明一个新的Integer对象时,会新建一个对象,当你使用Integer.valueOF时,会使用缓存池中的对象,多次调用同一个会返回相同的引用
String 被声明为final不能被继承,java8内部实现是一个char数组, java9内部实现是一个byte数组
String一旦声明之后就是不可变的,只能被引用,不能被更改,
String, StringBuffer and StringBuilder
String 不可变,StringBuffer and StringBuilder 可变
String线程安全,StringBuffer 线程安全,实现用了synchronized,StringBuilder线程不安全
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DjsY61NN-1614606073309)(C:\Users\86186\AppData\Roaming\Typora\typora-user-images\image-20210223141257787.png)]
new String(“abc”)
会创建两个字符串对象,前提是String pool中没有abc对象
abc属于字符串字面量
使用new的方式会在堆中创建一个字符串对象,它的引用是字符串字面量
参数传递
Java的参数是以值传递的形式传入方法中,而不是引用
高精度与低精度进行运算,会隐式转换为低精度
final
数据:对于基本类型,final使数值不变,对于引用数据类型,引用不变,但是引用的对象里面的数据可以改变
方法:声明方法不能被子类重写
类:声明类不允许被继承
继承并不继承构造器,也不继承其私有成员,但是 如果超类有访问私有成员的方法,可以间接调用其私有变量成员
子类在执行构造器时,会默认引用父类的无参数构造器