解释内存中的栈、堆、静态区

让人想犯罪 __ 提交于 2020-02-02 09:57:25

①通常我们定义一个基本数据类型的变量,一个对象的引用,还有就是方法调用的现场保存都使用内存中的栈空间。

②通过new关键字和构造器创建的对象都放在堆空间。

③程序中的字面量,比如直接写的100、"hello world"和常量都放在静态区。

④栈空间操作起来最快但是小,通常对象都是放在堆空间,理论上整个内存没有被其他进程使用的空间甚至硬盘上的虚拟内存都可以被当成堆空间来使用。

⑤例如:

 String str = new String("hello");

上面的语句,变量str放在栈上,用new创建出来的字符串对象放在堆上,而"hello"这个字面量放在静态区。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!