1、定义数组时 null和{} 是不同的
2、栈内存、堆内存放什么;
3、对象的内存地址随机分配。 数组地址;;;数组什么是连续的呢
4、异常: 1、编译时异常(语法格式错误) 2、运行时异常(程序员某个地方没想到例如,越界)
5、数据结构就是计算机对数据存储的形式、对数据操作的形式。 精心选择的数据结构可以带来更高的运行或存储效率 数据操作:增删改查。 数组长度一旦确定就不能更改
6、数组中的元素的类型必须一致,数组在内存中是连续的内存空间。数组是一种线性连续存储的数据结构 数组 查询、更改效率高,增删效率低一些
数组会占用两块内存空间 ,栈内存一块,堆内存一块,栈内存保存的是堆内存数组对象的地址
7、数组声明
(1) 静态声明 : 就是预先知道数组中的每位元素分别是什么 数据类型[] 变量名= {类型值1,类型值2,…}; int[] arr = {1,2,3,4,5};
(2) 动态声明:就是预先不知道数组中每位元素分别是什么,不过需要确定数组类型以及长度,先用对应的类型默认值占位 数据类型[] 变量名 = new 数据类型[长度]; int[] arr = new int[5];
8、遍历数组
(1)普通for循环 for(int i = 0; i< arr.length ; i++){
int value = arr[i];
System.out.println(value);
}
(2)增强for循环(foreach语句) for(数据类型 变量 : 数组 ){ System.out.println(变量名) } 把数组中每一位元素拿出来,赋值给 变量
9、数组方面常见异常 : 下标越界: java.lang.ArrayIndexOutOfBoundsException : x
空指针异常:java.lang.NullPointerException 定义数组时如果赋值=null
10、可在调用方法的时候直接传入数组 方法名 ( new 数据类型[]{类型值1,类型值2,…} );
11、二维数组 声明方式 (1) 静态声明Int[][] arr = { {1,2,5,8},{2,7,6,9},{3,1,4,7},{4,7,3,6} } (2) 动态声明 eg: Int[][] arr = new int[5][3]; 列可以是空,但行不能是空(即需要确定顶数组的长度) 遍历二维数组 嵌套for循环 涉及到的经典题型 杨辉三角形
12、传值和传引用的区别: 传值:指的是基本类型的传递 传引用:指的是引用类型的传递
传值之后,如果在对应方法中将值更该,不会影响调用处的值
如果是传引用,被调用方法通过引用,把内存中数据更改的话,调用处再次通过地址找到空间后,值就发生更改了
13、Scanner工具类
Scanner sc = new Scanner(System.in); 创建对象并设置标准输入 System.out.println(“请输入:”); 当设置了Scanner,并有这条语句时,程序执行到这里就会等待用户输入。
String userInput = sc.next(); 多个数据 以空格隔开,next只会获取一个数据 如果有多个空格隔开,多写几行这代码。
String userInput = sc.nextLine(); 获取一行,不需要空格为分隔符
int userInput = sc.nextInt(); 获取整数,必须是纯数字,小数点也不行。
double userInput = sc.nextDouble(); 获取小数,可以有小数,不能有非数字和小数点之外的字符
14、3种交换变量方式 (1) 借助中间变量 int x=10;
int y = 20;
int temp = x;
x = y;
y = temp;
(2) 移位运算交换 int m=2; int n = 1; m = m ^ n; n = m ^ n; m = m ^ n;
(3) 加减运算 int a=10; int b = 15; a=a+b; b = a-b; a=a-b;
day06数组
最新推荐文章于 2023-09-01 17:29:12 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)