ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

第六节、Java中的内存划分

2021-09-29 13:01:46  阅读:111  来源: 互联网

标签:Java System 内存 println new array 第六节 out


6.1 java的内存需要划分成为5个部分:

  1. 栈(Stack):存放的都是方法中的局部变量。方法的运行一定要在栈当中运行。

  • 局部变量:方法的参数,或者是方法{}内部的变量。

  • 作用域:一旦超出作用域,立刻从栈内存当中消

  1. 堆(heap):凡是 new 出来的东西,都在堆当中。

    • 堆内存里面的东西都有一个地址值:16进制

    • 堆内存里面的数据,都有默认值。规则:

      • 如果是整数 默认为0

      • 如果是浮点数 默认为0.0

      • 如果是字符 默认为‘\u0000’

      • 如果是布尔 默认为false

      • 如果是引用类型 默认为null

  2. 方法区(Method Area):存储.class 相关信息,包含方法的信息。

  3. 本地方法栈(Native Method Stack):与操作系统相关。

  4. 寄存器(pc Register):与CPU相关。

6.2 一个数组的内存图

 

 

方法区(Method Area):存储.class 相关信息,包含方法的信息。

栈(Stack):存放的都是方法中的局部变量。方法的运行一定要在栈当中运行。

堆(heap):凡是 new 出来的东西,都在堆当中。

6.3数组索引越界异常(常见问题之一)

 1 /*
 2 数组的索引编号从0开始,一直到“数组的长度-1”为止
 3 ​
 4 如果访问数组元素的时候,索引编号并不存在,那么将会发生数组索引越界异常
 5 ArrayIndexOutOfBoundException
 6 ​
 7 原因:索引编号写错了。
 8 解决:修改成为存在的正确索引编号。
 9 */
10 public class Demo01ArrayIndex {
11     public static void main(String[] args) {
12         int[] array = {15,25,35};
13         System.out.println(array[0]);
14         System.out.println(array[1]);
15         System.out.println(array[2]);
16         System.out.println(array[3]);
17     }
18 }

 

6.4空指针异常(常见问题之二)

 1 /*
 2 * 所有的引用类型变量,都可以赋值为一个null值,但是代表其中什么都没有。
 3 *
 4 * 数组必须进行new 初始化才能使用其中的元素。
 5 * 如果只是赋值一个null,没有进行new 创建。
 6 * 那么将会发生;
 7 * 空指针异常 NullPointerException
 8 *
 9 * 原因:忘了new
10 * 解决:补上new
11 * */
12 public class Demo02ArrayNull {
13     public static void main(String[] args) {
14         int[] array = null;
15 //        array = new int[3];
16         System.out.println(array[0]);
17 ​
18     }
19 }

 

 

标签:Java,System,内存,println,new,array,第六节,out
来源: https://www.cnblogs.com/code-study-notes/p/15352346.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有