Java内存空间,基本数据类型,数组

1.Java内存划分

Java内存空间分为五个部分:堆,栈,方法区,本地方法区,寄存器。
a. 寄存器:给CPU使用。
b. 本地方法区:和系统底层方法相关,比如Windows本地方法,native关键字修饰。
c. 栈内存:存储的都是局部变量(函数中定义的变量、函数上的形参、语句中的变量)。只要在方法中定义的变量都是局部变量。局部变量都有所属,属于某一方法。 一旦变量的生命周期结束,该变量就被释放。      
d. 堆内存:存储的都是实体(对象)。凡是用new创建的,都在堆内存里面,开辟一片空间,创建一个对应的实体。每一个实体都有一个首地址值。对象在堆内存中存在的目的就是为了存储(封装)成员变量(数据)的。堆内存的变量都有默认初始化值。不同数据类型不一样。int-0,  double-0.0,  boolean-false,  char-'\u0000', 引用数据类型-null。当实体不再使用时(即没有变量对其引用,指向该对象时),就会被垃圾回收机制处理,后面博客的多线程中会讲到。
e. 方法区:后续博客说到对象的创建过程、静态变量时,会详解。

2. 基本数据类型

3. 数组

在Java中,数组被看成一个对象,定义的方式有两种,int[] a和int a[];第二种是c/c++对数组的定义方式,java推荐第一种。
- 3.1 一维数组:
1. 先new对象,再初始化,默认值是0
a. int [] a = new a[i];
之后再来赋值是不对的
例如 a = {1,2,3}; //常量不可以再赋值一次
2. 直接初始化
b. int a = {1,2,3};
- 3.2 二维数组:
1. 先new对象,再初始化
a. int[][] a = new int[3][5]
a1. int[][] array = new int[3][];
array[0] = new int[3];
array[1] = new int[1];
array[2] = new int[2];
2. 直接赋值初始化
b. int[][] b = {{1,2,3},{4,5,5},{7,8,9}};
3. new 完直接初始化
c. int[][] a = new int[][] {{1,1,1,1,1}, {2,2,2,2,2}, {3,3,3,3,3} };
4. 二维数组要注意长度问题

        int[][] array = new int[3][];  
        array[0] = new int[3];  
        array[1] = new int[1];  
        array[2] = new int[2];  
        /*array[1][2] = 34;*///ArrayIndexOutOfBoundsException  
        array[0][1] = 89;  
        array[2][1] = 44;  
        System.out.print("array length:");  
        System.out.println(array.length);/*二维数组的长度*/  
        System.out.print("array[2] length:");  
        System.out.println(array[2].length);/*某一个一维数组的长度*/  

5.二维数组的应用:
二维数组一般用在坐标,矩阵的应用中。
4. 参考文章
- 春哥JavaSE实战: Jdk配置,数组及其应用,栈和堆内存详解
- Java中一维数组和二维数组的定义
- Thinking in Java

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值