File tree Expand file tree Collapse file tree 1 file changed +4
-2
lines changed
Expand file tree Collapse file tree 1 file changed +4
-2
lines changed Original file line number Diff line number Diff line change @@ -538,13 +538,15 @@ Java 中有 8 种基本数据类型,分别为:
538538
539539这八种基本类型都有对应的包装类分别为:`Byte `、`Short `、`Integer `、`Long `、`Float `、`Double `、`Character `、`Boolean ` 。
540540
541- ### 局部类型和包装类型的区别 ?
541+ ### 基本类型和包装类型的区别 ?
542542
543543- 包装类型不赋值就是 `null ` ,而基本类型有默认值且不是 `null `。
544544- 包装类型可用于泛型,而基本类型不可以。
545- - 基本数据类型的局部变量存放在 Java 虚拟机栈中的局部变量表中,基本数据类型的成员变量(未被 `static ` 修饰 )存放在 Java 虚拟机的堆中。包装类型属于对象类型,我们知道对象实例都存在于堆中 。
545+ - 基本数据类型的局部变量存放在 Java 虚拟机栈中的局部变量表中,基本数据类型的成员变量(未被 `static ` 修饰 )存放在 Java 虚拟机的堆中。包装类型属于对象类型,我们知道几乎所有对象实例都存在于堆中 。
546546- 相比于对象类型, 基本数据类型占用的空间非常小。
547547
548+ ** 为什么说是几乎所有对象实例呢?** 这是因为 HotSpot 虚拟机引入了 JIT 优化之后,会对对象进行逃逸分析,如果发现某一个对象并没有逃逸到方法外部,那么就可能通过标量替换来实现栈上分配,而避免堆上分配内存
549+
548550⚠️注意 : ** 基本数据类型存放在栈中是一个常见的误区!** 基本数据类型的成员变量如果没有被 `static ` 修饰的话(不建议这么使用,应该要使用基本数据类型对应的包装类型),就存放在堆中。
549551
550552```java
You can’t perform that action at this time.
0 commit comments