Heim > Java > javaLernprogramm > Hauptteil

java栈和堆区别

高洛峰
Freigeben: 2016-11-23 15:13:17
Original
1312 Leute haben es durchsucht

1, 垃圾回收机制仅仅作用于堆内存,与栈内存无关;

2, 栈:stack 栈的存取速度比堆快,效率高 保存局部变量和对象的引用值


3, 堆:保存较大的变量

4, 编译器处理int a = 3 时,首先会在栈中创建一个变量为a的引用,然后查找栈中是否存在3这个值,如果不存在,就将3存放进来;
处理b = 3时,也是这样,因为之前将3存放进来了,所以此时编译器只需将创建b这个变量再指向3就行了(有利于节省空间)。
这个时候就出现a和b同时指向3的情况,但不影响他们的使用。如果此时又定义a = 4;,则需将4存放进内存,由a指向4,a值的修改不会影响到b值。

内存的划分:
1,寄存器。
2,本地方法区。
3,方法区。
4,栈内存。
    存储的都是局部变量。
    而且变量所属的作用域一旦结束,该变量就自动释放。
5,堆内存。
    存储是数组和对象(其实数组就是对象) 凡是new建立在堆中。
    特点:
    1,每一个实体都有首地址值。
    2,堆内存中的每一个变量都有默认初始化值,根据类型的不同而不同。整数是0,小数0.0或者0.0f,boolean false char '\u0000'
    3,垃圾回收机制。
Nach dem Login kopieren


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!