java学习记录day05数组

一.jvm内存模型

方法区: 线程共享的内存区域,存储已被虚拟机加载的 类信息 、常量、静态变量即时编译器编译后
的代码数据等(这个区域的内存回收目标主要是针对常量池的回收和对类型的卸载)。
Java 虚拟机栈: 简称栈区( stack ), 每个方法被执行的时候都会同时创建一个栈帧 用于存储该方
法的局部 变量 、操作栈、动态链接、方法出口等信息。
一句话: java 方法执行时,在栈区执行
Java 堆: 简称堆区 (heap), 被所有线程共享的一块内存区域,在虚拟机启动时创建。 所有的对象实例 以及 数组 都要在堆上分配
每次使用 new 关键字,就表示在堆内存中开辟一块新的存储空间
二.数组的初始化
1.静态初始化
数组元素类型 [] 数组名 = new 数组元素类型 []{ 元素 1 , 元素 2 , 元素 3 ,.......};
int [] nums = new int []{ 1 , 3 , 5 , 7 , 9 };
简单写法 :
int [] nums = { 1 , 3 , 5 , 7 , 9 }; // 简单写法 , 定义和初始化必须同时写出来
2.动态初始化
数组元素类型 [] 数组名 = new 数组元素类型 [ length ];
// 例如
int [] nums = new int [ 5 ];
三.数组操作
1.基本操作
int[] nums = new int[]{1,3,5,7};
获取数组长度,语法: int size = 数组名 .length;
int size = nums.length; -> 输出结果 4
获取元素值,语法:元素类型 变量名 = 数组名 [ index ]
数组的索引从 0 开始,最大索引值是数组长度 -1 ,那么索引范围是 [ 0 ,数组名 .length - 1 ]
获取第一个元素: intele1 = nums[0]; 输出 1
获取第二个元素: intele2 = nums[1]; 输出 3
获取第四个元素: intele4 = nums[3]; 输出 7
设置元素值,语法:数组名 [ index ] = 值;
设置第二个元素值为 30 nums[1] = 30;
获取第二个元素: int ele2 = nums[1]; 输出 30
常见的异常
1. NullPointerException :空指针异常(空引用异常)
操作了一个尚未初始化或者没有分配内存空间的数组
2. ArrayIndexOutOfBoundsException :数组的索引越界异常
操作的数组的索引不在 [0 ,数组名 .length-1] 范围内
迭代数组,也叫遍历数组(获取出数组中每一个元素)
获取第一个元素: intele1 = nums[0]; 输出 1
获取第二个元素: intele2 = nums[1]; 输出 30
获取第三个元素: intele3 = nums[2]; 输出 5
获取第四个元素: intele4 = nums[3]; 输出 7
发现,循环遍历的次数是数组元素的个数,每一次获取元素只有索引在变化,范围是 [0 , 数组
.length - 1]
.二维数组
数组元素类型 [][] 数组名 = new 数组元素类型 [][] { 数组 1 ,数组 2 ,数组 3 ...};
定义和动态初始化二维数组的语法:
数组元素类型 [][] 数组名 = new 数组元素类型 [x][y]
x 表示二维数组中有几个一维数组
y 表示每一个一维数组中有几个元素。
int[][] arr = new int[3][5] ;
System.out.println(arr.length); // 输出
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值