26

Java基础知识_内存

 3 years ago
source link: http://www.cnblogs.com/excre/p/13378224.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

前述:利用一段较为充足暑假时间,对以前的Java学习进行一个系统性的回顾,对于部分知识点进行记录和积累。本部分主要记录了Java中内存的图示,便于理解和学习。

Java中的内存

一Java中的内存划分:

Java中内存主要划分为五部分

  • 栈(Stack): 存放的都是方法中的局部变量。 方法的运行一定要在栈当中运行
    • 局部变量: 方法的参数,或者是方法{}内部的变量
    • 作用域: 一旦超出作用域,立刻从栈内存当中消失
  • 堆(Heap): 凡是new出来的东西,都在堆当中
    • 堆内存里面的东西都有一个地址值: 16进制
    • 堆内存里面的数据,都有默认:
      • 如果是 整数 默认为 0
      • 如果是 浮点数 默认为 0.0
      • 如果是 字符 默认为 '\u0000'
      • 如果是 布尔 默认为 false
      • 如果 引用类型 默认为 null
  • 方法区(Method Area): 存储.class相关信息,包含方法的信息。
  • 本地方法栈(Native Method Stack): 与操作系统相关。
  • 寄存器(PC Register): 与CPU相关。

二创建使用数组的内存示意图:

只有一个数组的内存图

iyQNbu6.png!web

有两个独立数组的内存图

ZjyAbeJ.png!web

两个引用指向同一个数组的内存图

uMvQJnF.png!web

三创建使用对象时内存示意图:

只有一个对象的内存图

InIvIvi.png!web

两个对象使用同一个方法的内存图

eQzq6rQ.png!web

两个引用指向同一个对象的内存图

R7N7VnQ.png!web

使用对象类型作为方法的参数

7buUfqv.png!web

使用对象类型作为方法的返回值

Qbuu6nb.png!web

三:

Java中内存主要划分为五部分

Java中内存主要划分为五部分

Java中内存主要划分为五部分

Java中内存主要划分为五部分

Java中内存主要划分为五部分

四:

Java中内存主要划分为五部分

Java中内存主要划分为五部分

Java中内存主要划分为五部分

Java中内存主要划分为五部分

Java中内存主要划分为五部分

综上:

总结


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK