小常识

1.
JVM 中, 线程持有Stack, Stack随线程创建而创建.
Heap 则是JVM启动时就启动, 共享, 由垃圾回收机制清理.

2.
Stack 和 Heap都是在Ram中划分.

3.
基本型 int, char...等在创建前会查看Stack中是否已经有, 有则则向, 没有则新建.

4.
String 可以想象为与char[]等同, String a= "abc", 首先在Heap中创一个对象, 再到Stack中找char[]是否存在, 有则 指向该地址, 无则在Stack中创建.

5.
String a = new("abc"); new()出来的都会有自己的独立存放, 不会像前面一样的指向, 而是指向新创建的.
new() 出来的都是在Heap中
这个还与具体的条件相关,如果在String池中没有“abc”对象存在那么就会创建两个对象,如果池中已经存在“abc”对象的话,那么就只是创建一个对象,所以这个问题要看具体的条件才能下结论


6.
== 基本型比值, 对象比引用.

你可能感兴趣的:(jvm)