9-23易科 日志
数组
数组是具有相同的数据类型,且按照一定次序排列的一组变量的集合体
用一个变量表示一组数据
Java中数组在内存中分配一段连续的空间,这段空间中存储的数据个数是固定的
数组元素
构成一个数组的每个数据叫做数组元素
数组下标
下标是数组中的位置,在一个数组中,数组下标使用整数来表示的,从1开始依次累加
数组大小
数组中元素的个数叫做数组的大小,也叫数组的长度
定义数组
数组类型[] 数组名; int[] arr;
数组类型 数组名[]; int arr[];
为数组元素分配内存
数组名=new 数组类型[数组长度] arr =new int[10]
提示:数组长度是在为数组元素分配内存时确定的,数组长度一旦确定,数组长度不可更改
编码经验:通常都使用for循环为数组初始化,将for循环的循环变量i当做数组的下标
冒泡排序
案例:
Scanner input=new Scanner(System.in);
// int[] arr=new int[5];
// for(int i=0;i
// arr[i]=input.nextInt();
// }
// for(int i=0;i
// int temp=arr[i];
// arr[i]=arr[i+1];
// arr[i+1]=temp;
// }
// }
// }
// for(int i=0;i<arr.length;i++) {
// System.out.println(arr[i]);
//
// }
常见问题
下标越界异常
public static void main(String[]args){
int[]score=new int[]{67,68,93,11};
System.out.println("第5个学生的成绩是"+score[5]);
}
public static void main(String[]args){
int[]score=null;
System.out.println("第5个学生的成绩是"+score[0]);
}
常见的语法错误
等号左边的中括号中不允许写长度
直接为数组元素初始化时不允许指定数组长度
直接初始化数组元素的代码必须写在一行
Arrays的应用
Arrays.equals(arr1,arr2):判断arr1和arr2的长度及元素是否相等 返回值boolern类型
Arrays.sort.(arr):对数组arr中的元素进行排序
Arrays.toString(arr):将数组arr转化为字符串
Arrays.fill(arr,value):将数组中的元素都替换成value的值
Arrays.copyf(arr,4):将数组赋值成一个长度为设定值的新数组
如果新长度小于被复制的长度,就取前面的值,如果大于被复制的长度则多余的长度取默认值0
二维数组
二维数组实际上也是一维数组
心得体会
循环嵌套用的不熟练
原码:不对其进行操作的二进制表达式
反码:1.正数的反码是其本身
2.负数的反码,符号位不变,其他位置取反
补码:1.正数的补码与原码一致
2.负数的补码,是反码+1
左移<< 右移>>
1 <<:左移操作,在不越界的情况下,x<<n等于x乘以2的n次幂
2 >>:右移操作,在不越界的情况下,x>>n等于x除以2的n次幂
从键盘中输入数据
1 导入Scanner类
import.java.util.Scanner;
2 创建Scanner对象
Scanner input=new Scanner(System.in);
3 从键盘上获取用户输入的数据
input.next() 获取一个字符串
input.nextInt() 获取一个整数
input.nextdouble() 获取一个双精度浮点数
input.nexthasNext() 判断是否有输入数据,有则返回true,没有返回false
运算符的优先级
1 优先级最低的是赋值运算符,其次是条件运算符
2 单目运算符包括!~ ++ -- 优先级最高
3 在表达式中()的优先级最高,先对括号里的进行运算
4 结合性从右往左的只有赋值运算符 、单目运算符、三目运算符
5 优先级顺序-->算数运算符>关系运算符>逻辑运算符
if控制语句
1 单分支if结构
if(表达式){
语句
}
近期评论