Java基础07
目录
1.两种for循环的表示情况:
2.三种数组表示方式(一维和二维):
3.switch
⭐两个重要的问题⭐
⭐①什么是switch击穿?
⭐②switch可以选择哪些类型?
4.continue
5.【大数值】BigInteger 和 BigDecimal
6.length属性
7.Java中有自带的排序方法:sort() --从小到大排序
1.两种for循环的表示情况:
for(int i=0;i<10;i++){
System.out.println("---");
System.out.println("+++");
}
上面的表达形式,等同于如下图片(作用效果相同,只是表达方式不同):
2.三种数组表示方式(一维和二维):
一维数组int类型:
int[] arr={1,2,3,4,5};
for(int x:arr){
System.out.println(x);
}
上面的表达方式其实等同于(如下):
for(int i=0;i<arr.length;i++){
int x=arr[i];
}
效果相同,只是表示形式会更加简便,下面的两种类型以此类推。
一维数组String类型:
String[] arr2={"as","de","dgr"};
for(String y:arr2){
System.out.println(y);
}
二维数组int类型:
int[][] arr3={
{1,2,3,4},
{4,3,6,2},
{1,2,4}
}
for(int[] x:arr3){//逐层剖析
for(int z:x){
System.out.println(z+",");
}
System.out.println("");//表示换行
}
3.switch
一个switch的例子:
int a=10;
String b="3qu";
int c=22;
switch(a){
case 10:
System.out.println("10");
break;
case 10:
System.out.println("20");
break;
case 20:
System.out.println("30");
break;
case 30:
System.out.println("40");
break;
default:
System.out.println("50");
break;
}
⭐两个重要的问题⭐
⭐①什么是switch击穿?
如图下图:
每个case中都有一个break,如果没有这个break,就不会跳出case,直到遇见break为止。
⭐②switch可以选择哪些类型?
【注意:枚举法就是一个集合中的所有成员一一列出的过程或结果】
4.continue
【引入:一次break就可以打破一次循环(如果循环嵌套循环,只会打破内层循环)】
而continue只是跳出单次循环,然后接着进行循环。
如下:
5.【大数值】BigInteger 和 BigDecimal
【封装的数值,没有像long空间限制,可以无限大】
将普通类型转换成大数值:
【补充:如果valueOf()中放的数值是int或float这种基本类型,那么只能扩容到2^64,但是如果里面是字符串类型,那么就可以扩容到无限大,没有限制】
6.length属性
高级语言都具备这种属性,但是C语言没有这种功能
初始化--首次赋值
浅拷贝--指向相同(所以在修改浅拷贝数据时,原数据也会发生改变)
深拷贝--自己开辟内存,把自己的值拷贝一份存在自己的内存(此时修改拷贝体,就不会影响原数值)
【补充:深拷贝除了用上面这种方式,还可以用Arrays.copyOf(arr,length)】
7.Java中有自带的排序方法:sort() --从小到大排序
int[] arr={1,4,5,2,5,7,8,2,4};
float[] arr2={22.52F,-12.74F,44.8F};
Arrays.sort(arr);
Arrays.sort(arr2);
//sort()还可以给字符串排序(按照字符串的首位依次的编码排序)
String[] arr3={"de","gtr","dewa","jurd"};
Arrays.sort(arr3);
倒叙排序--从大到小
Integer[] arr={1,4,6,7,3,8,5,3};//想用倒叙,要用Integer类型
Arrays.sort(arr,(a,b)-b-a);//方法①
Arrays.sort(arr2,Collections.reverseOrder());//方法②
Java中有自带的打印方法:Arrays.toString()
Java中对象里值的排序
Person x1=new Person(10,177);
Person x2=new Person(20,167);
Person x3=new Person(15,173);
Person[] arr4={x1,x2,x3};
Arrays.sort(arr4,(a,b)-->a.height-b.height);
//此处的(a,b)对a-b,就是表示正序,从小到大
Arrays.binarySearch(arr,value),返回查找到数据的下标值(注意是从0开始的)