default 预设
Match 数学工具类
enum 枚举
Arrays.toString().sout toString方法,输出
Math.round(x *100)*1.0/100 保留两位小数
10.for i; 建立一个10次的for循环
数组名,for i; 遍历数组
Array.equals(array1,array2) 比较两个数组
数组定义格式
数据类型 [ ] 变量名;
int [ ] arr; 定义了一个数组,只能存放int类型相匹配的数据
public class Demo04数组的静态初始化 {
public static void main(String[] args) {
int [] brr = {1,2,3,4,5,6,7,8,9};
int a = brr[0];
System.out.println(a);
System.out.println("----------");
for (int i = 0; i < 9; i++) {
System.out.println(brr[i]);
}
System.out.println("---------------");
int [] crr = {1,2,3,4,5,6,7,8,9,0};
int l = crr.length;
System.out.println(l);
int length = brr.length;
System.out.println(length);
//取出数组中所有元素 打印到控制台
for (int i = 0; i < crr.length; i++) {
System.out.println(crr[i]);
}
}
}
数组的动态初始化
数组的动态初始化:
数据类型 [ ] 数组名 = new 数据类型 [ 长度 ];
public class Demo02数组的动态初始化 {
public static void main(String[] args) {
//定义一个长度为3的int类型的数据
int [] arr = new int[3];
//定义一个长度为5的float类型的数组
float [] brr = new float[5];
}
}
动态初始化数组的基本操作(取值 赋值)
public class Demo03动态初始化数组的基本操作 {
public static void main(String[] args) {
//动态初始化一个长度为5的int类型的数组
int [] arr = new int[5];//数组的长度为5 只能存放int类型相匹配数据,他的索引是0 1 2 3 4
//取值:格式:数组的数据类型 变量名 = 数组名[索引];
int a = arr[0];//取出0索引对应的数值 存放到变量a中
//打印a
System.out.println(a);
int b= arr[1];
System.out.println(b);
int c= arr[2];
System.out.println(c);
int d= arr[3];
System.out.println(d);
int e= arr[4];
System.out.println(e);
System.out.println("--------");
for (int i = 0; i < 5; i++) {
int f = arr[i];
System.out.println(f);
}
System.out.println("------------------");
//赋值:格式:arr[索引] = 值;
arr[0] = 10;
arr[1] = 20;
arr[2] = 30;
arr[3] = 40;
arr[4] = 50;
for (int i = 0; i < 5; i++) {
int x = arr[i];
System.out.println(x);
}
}
}
动态初始化数组的默认值
byte short int long 数组 默认值是 0
float double 数组 默认值是 0.0
boolean 数组 默认值是 false
char 数组 默认值是’u0000’
public class Demo05动态初始化数组有默认值 {
public static void main(String[] args) {
//int 数组 默认值是0
int[] arr = new int[3];
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
System.out.println("-----------");
//byte 数组 默认值是0
byte [] brr = new byte[3];
for (int i = 0; i < brr.length; i++) {
System.out.println(brr[i]);
}
System.out.println("-----------");
short [] crr = new short[3];
for (int i = 0; i < crr.length; i++) {
System.out.println(crr[i]);
}
System.out.println("------------");
long [] drr = new long[3];
for (int i = 0; i < drr.length; i++) {
System.out.println(drr[i]);
}
System.out.println("------------");
float[] err = new float[3];
for (int i = 0; i < err.length; i++) {
System.out.println(err[i]);
}
System.out.println("------------");
double[] frr = new double[3];
for (int i = 0; i < frr.length; i++) {
System.out.println(frr[i]);
}
System.out.println("------------");
boolean [] grr = new boolean[3];
for (int i = 0; i < grr.length; i++) {
System.out.println(grr[i]);
}
System.out.println("---------");
char[] hrr = new char[3];
for (int i = 0; i < hrr.length; i++) {
System.out.println(hrr[i]);
}
System.out.println("---------");
//数组 类 接口
String [] irr = new String[3];
for (int i = 0; i < irr.length; i++) {
System.out.println(irr[i]);
}
}
}
遍历数组
public class Demo06练习 {
public static void main(String[] args) {
int[] arr = {11,22,33,44,55};
//使用循环最方便 选择for循环
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
}
求数组最大值
public class Demo07求数组的最大值 {
public static void main(String[] args) {
int [] arr = {5,44,33,55,22};
//定义最大值
int max = arr[0];
//使用循环遍历数组
for (int i = 0; i < arr.length; i++) {
//和最大值比较
if (arr[i]>max){
//更新最大值
max = arr[i];
}
}
System.out.println("数组中元素的最大值是:"+max);
}
}
求数组最小值
public class Demo08求数组的最小值 {
public static void main(String[] args) {
int [] arr = {5,44,33,55,22};
//1.定义最小值
int min = arr[0];
//2.使用for循环遍历数组
for (int i = 0; i < arr.length; i++) {
//3.比较
if (arr[i]
求数组元素和/平均值
public class Demo09求数组元素和求平均值 {
public static void main(String[] args) {
int[] arr = {5, 44, 33, 55, 22};
//1.定义求和变量 存储最终和
int sum = 0;
//2.使用循环遍历数组,获取数组中的元素,和求和变量累加
for (int i = 0; i < arr.length; i++) {
sum+=arr[i];
}
//3.打印最终和
System.out.println("数组中所有元素的和:"+sum);
//4.求平均值
double avg = sum*1.0/arr.length;
System.out.println("数组中元素的平局值:"+avg);
}
}
冒泡排序
public class Demo10冒泡排序 {
public static void main(String[] args) {
int[] arr = {5, 4, 3, 2, 1};
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr.length-1; j++) {
if (arr[j]>arr[j+1]){
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
//打印数组的元素
System.out.println(Arrays.toString(arr));
}
}
练习题 数组查找
public class Demo11数组查找 {
public static void main(String[] args) {
int []arr = {19, 28, 37, 46, 50};
//1.键盘录入
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个整数:");
int num = scanner.nextInt();
//2.查找键盘录入的数据在数组中的索引 如果不存输出-1
//定义一个变量用来存存数组的索引
int index = -1;
for (int i = 0; i < arr.length; i++) {
if (num == arr[i]){
index = i;
}
}
System.out.println(num+"在数组中索引"+index);
}
}
练习题 评委打分
import java.util.Arrays;
import java.util.Scanner;
public class Demo12评委打分 {
public static void main(String[] args) {
//定义数组
int [] arr = new int[6];
//键盘录入6个成绩
Scanner scanner = new Scanner(System.in);
for (int i = 0; i < arr.length; i++) {
System.out.println("请第"+(i+1)+"个评委打分:");
int score = scanner.nextInt();
if (score>=0&&score<=100){
arr[i] = score;
}else {
System.out.println("您的打分不和法!");
i--;
}
}
System.out.println(Arrays.toString(arr));
// 3.求最大值最小值
int max = arr[0];
for (int i = 0; i < arr.length; i++) {
if (arr[i]>max){
max = arr[i];
}
}
System.out.println("max = "+max);
int min = arr[0];
for (int i = 0; i < arr.length; i++) {
if (arr[i]
数组的内存分配
栈内存
方法运行时,进入的内存
堆内存
new出来的内容都会进入堆内存,并且会存在地址值
方法区
字节码文件(.class文件)加载时进入的内存
本地方法栈:
调用操作系统相关资源
寄存器
交给CPU去使用两个数组指向各自对内存,无论谁修改自己堆内存中的数据,最后取值的时候,取得是修改后的最新值多个数组指向同一片堆内存,无论谁修改堆内存中的值,再去取值的时候取得是修改后的最新值
数组在操作中出现的问题
public class Demo04数组在操作中出现问题 {
public static void main(String[] args) {
//1.访问了数组不存在索引 .ArrayIndexOutOfBoundsException 数组索引越界异常
int [] arr = new int[3];
//System.out.println(arr[3]);//.ArrayIndexOutOfBoundsException
//2.空指针异常 NullPointerException
System.out.println(arr);
arr = null;
System.out.println(arr[0]);
}
}



