遇到的问题
- 相比于包装类型(对象类型), 基本数据类型占用的空间往往非常小
- 为什么说是几乎所有对象实例都存在于堆中呢?
- 静态变量和成员变量、成员变量和局部变量的区别
- 为什么浮点数运算的时候会有精度丢失的风险?如何解决
- long和double数据表示范围
- 静态方法在访问本类的成员时,只允许访问静态成员(即静态成员变量和静态方法),不允许访问实例成员(即实例成员变量和实例方法),而实例方法不存在这个限制。
- 如果父类方法访问修饰符为 private/final/static 则子类就不能重写该方法,但是被 static 修饰的方法能够被再次声明。
相比于包装类型(对象类型), 基本数据类型占用的空间往往非常小
为什么说是几乎所有对象实例都存在于堆中呢?
这是因为 HotSpot 虚拟机引入了 JIT 优化之后,会对对象进行逃逸分析,如果发现某一个对象并没有逃逸到方法外部,那么就可能通过标量替换来实现栈上分配,而避免堆上分配内存
静态变量和成员变量、成员变量和局部变量的区别
为什么浮点数运算的时候会有精度丢失的风险?如何解决
见本文