JAVA SE回顾------数组
来源:互联网 发布:广电好还是网络电视好 编辑:程序博客网 时间:2024/05/22 05:34
数组的定义:
是存储同一类型数据的集合。
定义数组的两种方式:
1.动态初始化:在定义数组时只定义数组长度,由系统自动赋予数组初始值。
格式:数据类型 [] 数组名 = new 数据类型[元素个数];
例如:int [] arr = new int[3]; 这样就创建了一个有三个元素的数组
2.静态初始化:在定义数组时就对数组进行赋值。
格式1:数据类型[] 数组名 = new 数据类型[]{元素1,元素2,……};
例如:int [] arr = new int []{1,5,6,9};
格式2:数据类型 [] 数组名 = {元素1,元素2,……};
例如: int [] arr = {1,5,9,8};
数组元素的查询:
格式:数组名[索引值]; 索引值从0开始,为第一个数组元素,以此类推。
例如:arr[2];
数组中的常见异常:
ArrayIndexOutOfBoundsException 数组越界异常,常见于查询数组某一元素的索引值大于该数组的索 引。
NullPointerException 空指针异常,变量没有指向一个有效的数组对象,而指向null。常见于定义
一个数组后又将数组变量重置为null。
JVM的内存划分:
操作系统进行管理计算机的各种硬件,JVM请求操作系统分配内存,操作系统从内存中分配一部分。
JVM将系统分配的内存划分为5个区域;
寄存器:内存和cpu之间,用来操作cpu
本地方法栈:虚拟机调用系统中的功能
方法和数据方法区:程序运行时期,.class文件进入的地方
栈内存:所有方法运行时进入的内存
堆内存:存储对象
一个java文件被编译成class文件,进入方法区运行,main等方法进入栈内存运行(main压栈运行),如果有创建对象的语句,
就会在堆内存中开辟空间存放对象
数组创建在内存中的分配情况:
arr这个变量存储的是地址,每次运行之后,jvm就会自动回收内存,导致运行相同代码得到的地址值可能不同。
数组的遍历:
代码:
for(i=0;i<arr.length;i++){ System.out.print(arr[i]+" ");}
二维数组:
二维数组可以说是数组的数组,是包含数组的数组。
定义格式:
数据类型[][] 数组名 = new 数据类型[二维数组长度][一维数组长度];
int[][] arr = new int [4][5]; 表示建立一个名为arr的二维数组,长度为4,其中每个一维数组的长度为5.
也可以在定义时不注明每个一维数组长度,这时每个一维数组的长度可以不相同。
数据类型[][] 数组名 ={{……},{……},……};
int[][] arr={{12,3,32},{1,3,31,4},{2,4,5,6},{3,7,5}};
二维数组的查询:
arr[2][1]; 这表明查询二维数组的第三个数组的第二个元素。(与一维数组相同,下标索引都是从0开始)
二维数组的遍历:
for(i=0;i<arr.length;i++){ for(j=0;j<arr[i].length;j++){ System.out.print(arr[i][j]+" "); }}
int num = 0;//外层循环用来控制数组循环的圈数for (int i = 0; i < arr.length-1; i++) {
//length-i-1就是第i次比较,每次比较完毕总是打的在后面所以下一次就不必比较了。for (int j = 0; j < arr.length-i-1; j++) {
//将大的元素放后面if(arr[j]>arr[j+1]){num = arr[j];arr[j] = arr[j+1];arr[j+1] = num;}}}2.选择排序
int num = 0;//外层循环用来控制数组循环的圈数for (int i = 0; i < arr.length-1; i++) {for (int j = i+1; j < arr.length; j++) {//将大的元素放后面if(arr[i]>arr[j]){num = arr[i];arr[i] = arr[j];arr[j] = num;}}}
- JAVA SE回顾------数组
- Java(SE)内容回顾
- JAVA SE回顾---集合(1)
- JAVA SE回顾--集合(2)
- JAVA SE回顾及思考(2)——数组的复制与动态扩展
- java se数组
- Java Se----数组
- Java SE基础知识:数组
- 【Java SE】数组
- Java SE 回顾(一) 数据类型&异或
- Java SE 基础之接口回顾
- JAVA SE 面向对象回顾01
- java se 中的数组理解
- 3 java se(3)----数组
- Java SE 基础:多维数组
- 回顾java数组复制
- 回顾java数组复制
- Java SE 第十二、十三讲 Java基础知识回顾
- 6-4 建立学生信息链表(20 分)——尾插建链表_题程序访问是越界——真是醉了,你自己跑下是会抛出异常的
- IDEA 安装以及基本配置
- c++资料
- 面向对象的设计原则
- Android Bitmap和YUV之间的相互转换
- JAVA SE回顾------数组
- 权限系统--通过shiro进行按钮及页面访问url的权限控制
- leetcode 232.Implement Queue using Stacks
- 错误处理error C4996: 'fopen': This function or variable may be unsafe
- 手机播放器界面
- JavaWeb初探
- Linux解压缩命令汇总
- pytorch 问题汇总
- 配置pycharm远程调试的环境(服务器为linux系统)&&服务器上安装tensorflow-gpu及配置cuda环境&&相关问题的解决办法