java吧王者_java单排上王者!(一) java内存

大猩猩出山!非火必红!

以上便是文章,以下则为后感。

这文章讲的是java内存,什么堆啊栈啊常量池,像我这种不怎么上心记东西的人的确也不太分的清。先了解概念!

堆(heap):  用来存放由new创建的对象和数组

1)存是存了,总不能一直存着吧,所以java虚拟机负责来自动回收堆内存产生的垃圾

2)堆中的数组或者对象,都可以在栈中找到他的另一半(一个特殊的变量),栈中这个变量的取值等于数组或者对象在堆内存的首地址,栈中的一个变量就成了数组或者对象的引用变量了(就这么勾搭上了。)

stack(栈): 存放基本数据类型and对象或者数组的引用

1)如果存放的是基本类型(But ! 不能是静态变量), 则直接把变量名和值存入stack中的内存。

2)如果是引用类型或者数组, 那就把变量名存入栈, 然后把它指向它new出的对象(存放在堆中)。

3)??或说静态变量怎么好像被遗忘了!先马后解决!  // 好像是放在静态域?

data segment:  分为静态域和常量域。

1) 静态域:存放对象中用static定义的静态成员

2)常量池:在编译期被确定,并保存在已编译的.class文件中的一些数据。除了包含代码中所定义的基本类型(int, long)和对象型(String以及数组的常量值(final), 还包含一些以文本形式出现的符号引用。比如类和接口的全限定名;字段的名称和描述符;

还有几个例子。 - -  有点懒,明天看。今天 先搞懂概念

你可能感兴趣的:(java吧王者)