java基础知识五、六、七、八

时间:2021-08-05 20:02:40

第五章

  1. 在较大的数之前先增加较小数是减小误差的一种方法。

第六章

  1. 方法签名(Method Signature)指方法名称、参数类型和参数数量。java编译器根据方法签名决定使用哪个方法。
  2. 调用方法时,java编译器寻找最精确匹配的方法。
  3. 对void方法的调用必须是一条语句

第七章

  • 创建数组

datatype[ ] arrayRefVar= new datatype[arraySize];
或者
datatype arrayRefVar[ ] = new datatype[arraySize];

  • 默认值

数值类型为0
字符类型为’\u0000’                  //u后面为十六进制,必须4位写满
布尔类型为false
引用类型为null

  • 初始化语法

double[ ] myList = {1.9, 2.9, 3, 3.5}//可以将int转化为double类型
或者
double[ ] myList;
myList = new double[ ] {1.9, 2, 3.4, 3.5} //可以将int转化为double类型

注意:使用初始化语法时,必须将声明、创建和初始化放在一条语句中。不然会产生语法错误。如下所示

        double[] a = new double[4];
        a[0] = 1;  //正确
        a= {1,2,3,4};  //错误
        double[] b;  
        b= {1,2,3,4};  //错误
  •  增强的for循环

JDK 1.5引入新的for循环,可以不用下标就可以依次访问数组元素。语法:

for(elementType value : arrayRefVar) {
}

例如
for(int i = 0; i < myList.length; i++) {
     sum += myList[i];
}
等价于
for(double value : myList) {
    sum += value;
}

  •  复制数组的方法
    • 使用循环来复制每个元素
int[ ] sourceArray = {2,3,1,5,10};
int[ ] targetArray = new int[sourceArray.length];
for(int i = 0; i < sourceArray.length; i++){
    targetArray[i] = sourceArray[i];
}
    • 使用System.arraycopy方法:两个数组都预先实例化了

        int[ ] sourceArray = {2,3,1,5,10};
        int[ ] targetArray = new int[sourceArray.length];
        System. arraycopy(sourceArray,0,targetArray,0, sourceArray.length);
    • 调用数组的clone方法赋值:被赋值的数组变量可以没有实例化
        int[ ] sourceArray = {2,3,1,5,10};
        @SuppressWarnings("unused")
        int[ ] targetArray ;
        targetArray= sourceArray.clone();    
  • 可变长参数列表

可以把类型相同但个数可变的参数传递给方法。方法中的参数声明如下
    typeName … parameterName
在方法声明中,指定类型后面跟省略号
只能给方法指定一个可变长参数,同时该参数必须是最后一个参数
Java将可变长参数当数组看待,通过length属性得到可变参数的个数
    print(String... args){   //可看作String [ ]args

           for(String  temp:args)
                  System.out.println(temp);
        System.out.println(args.length);
    }
调用该方法
    print("hello","lisi");

  • Arrays类

sort和parallelsort方法

升序排序

        double[ ] numbers={6.0, 4.4, 1.9, 2.9};
        java.util.Arrays.sort(numbers, 0,4);//给部分数组排序,下表从0到4,包括0,不包括4
        java.util.Arrays.sort(numbers);//给整个数组排序

binarySearch方法

数组必须提前升序排列。在数组中查找关键字,如果找到,返回下标,如果不存在,返回-(这个关键字在数组中应该存放位置下表+1)

        int[ ] numbers={2, 4, 7, 10, 11, 45};
        System.out.println(java.util.Arrays.binarySearch(numbers, 11)); //输出4
        System.out.println(java.util.Arrays.binarySearch(numbers, 12)); //输出-6

 

equals方法

判断两个数组内容是否相等

        int[] list1={2, 4, 7};
        int[] list2={2, 4, 7};
        int[] list3={4, 2, 7};
        System.out.println(java.util.Arrays.equals(list1, list2)); //输出true
        System.out.println(java.util.Arrays.equals(list1, list3)); //输出false

fill方法

填充整个数组或部分数组

        int[] list1={2, 4, 7, 10, 11};
        java.util.Arrays.fill(list1, 5);
        System.out.println(java.util.Arrays.toString(list1)); //[5, 5, 5, 5, 5]
        java.util.Arrays.fill(list1, 1, 3, 6);
        System.out.println(java.util.Arrays.toString(list1)); //[5, 6, 6, 5, 5]

toString方法

        double[ ] numbers={6.0, 4.4, 1.9, 2.9};
        java.util.Arrays.sort(numbers, 0,4);
        System.out.println(java.util.Arrays.toString(numbers));

输出为:[1.9, 2.9, 4.4, 6.0]

 

第八章

二维数组的每个元素(数组)的长度可以不同。

语法new int[ ][ ]是错误的,必须指定第一个下标

        int[][] list1=new int[4][5];
        System.out.println(list1.length); //输出4
        System.out.println(list1[1].length);//输出5