JAVA04

1、数组:存储同一数据类型的元素的容器A:数据类型[] 数组名;(推荐的使用方式) B:数据类型 数组名[];

int[] arr;	定义了一个int类型的数组,数组名是arr
int arr[];	定义了一个int类型的变量,变量名是arr数组
数组初始化:
 * 	A:所谓的初始化,其实就是为数组开辟内存空间,并为数组中的每个元素赋予初始值。
 * 	B:如何进行初始化呢?我们有两种方式对数组进行初始化
 * 		a:动态初始化	只给出长度,由系统给出初始化值---int[] arr = new int[3]
 * 		b:静态初始化	给出初始化值,由系统决定长度---int[] arr = {1,2,3};
 * 动态初始化:
 * 		数据类型[] 数组名 = new 数据类型[数组长度];

默认初始化值:
	 * 		整数 : 0
	 * 		小数 : 0.0
	 * 		字符 : \u0000		特殊的空白字符
	 * 		布尔 : false
	 * 		引用数据类型 : null
         
int[] arr = new int[10];		
		 /* [I@5d290ef4
		 * 
		 * 		@ : 分隔符
		 * 		[ : 当前是一个数组类型, 几个空括号代表的是几维数组
		 * 		I : 当前数组中存储的数据类型(int)
		 * 		5d290ef4 : 十六进制[地址值]
		 */	
		System.out.println(arr);     //   [I@5d290ef4
            //  [I@5d290ef4,连续打印的话,每次都不一样,因为每次开创的内存空间地址不一定一样
		/*
		 * int : 数组中存储的元素, 数据类型
		 * [] : 当前的变量是一个数组变量. 
		 * arr : 数组名, 合法的标识符即可
		 * new : 在内存中开辟一块空间
		 * [10] : 开辟的空间, 里面有10个小格子, 可以存储10个数据.
		 */

2、每当new,就会在内存中开辟一个空间

3、除了基本数据类型,其他的打印引用,打印出来的都是内存地址值,_

栈内存 : 方法运行时进入的内存, 局部变量进入方法中,使用完毕直接回收
堆内存 : new出来的数据都会进堆内存, 堆内存中的数据都会有[地址值],垃圾回收机制空闲时回收
方法区 : .class文件加载时进入的内存(反射)
--------------------
寄存器	:  交给CPU去使用
本地方法区	:  调用操作系统本地资源(API)的一些功能,或者自己写的方法

4、程序运行时,先将一个的字节码文**(.class)**件加载进方法区,然后JVM会自动调用main方法,main方法就会进入到桟内存中,new出来的进入堆内存中,_

5、什么是引用数据类型? 在堆内存中产生了地址值的数据,该地址值被变量所引用了,String是引用数据类型的!! 引用数据类型默认初始化值是null

String s = "abc";
String s = new String("abc");//这两个是等价的,辅助String的特殊

6、Arrays.sort

package com.heima.array3;

import java.util.Arrays;

public class Demo3_Array {
	public static void main(String[] args) {
		int[] arr = { 22, 11, 55, 44, 33 };
		//排序了
		Arrays.sort(arr);
		for (int i = 0; i < arr.length; i++) {
			System.out.println(arr[i]);
		}
	}
}

7、二维数组

//动态初始化
package com.heima.array3;

public class Demo4_ArrayArray {
	public static void main(String[] args) {
		// 当前是一个二维数组, 数组名叫arr, 可以存储2个一维数组, 每一个一维数组可以存储3个int数据
		int[][] arr = new int[2][3];	
		// 二维数组操作元素的方式:
		// 数组名[索引]	-> 一维数组整个容器
		// 数组名[索引][索引] -> 获取一位数组中, 索引对应的元素
		arr[0][0] = 11;
		arr[0][1] = 22;
		arr[0][2] = 33;
		
		arr[1][0] = 111;
		arr[1][1] = 222;
		arr[1][2] = 333;		
		System.out.println(arr[1][1]);   //22
	}
}
//静态初始化
package com.heima.array3;

public class Demo5_ArrayArray {
	public static void main(String[] args) {
		int[][] arr = {{11,22,33},{44,55,66}};
		
		// 二维数组的遍历
		// 外循环, 获取到的是每一个一维数组
		for (int i = 0; i < arr.length; i++) {
			// arr[i] : 代表的就是每一个一维数组
			// 内循环, 获取到的是每一个一维数组对应的元素
			for(int j = 0; j < arr[i].length; j++){
				System.out.println(arr[i][j]);
			}
		}
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值