Java教程

java学习记录day05数组

本文主要是介绍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); // 输出
这篇关于java学习记录day05数组的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!