Java语法中一些需要总结的点(仅用于个人学习)

1.当字符串和其他类型相加时,基本都是字符串,这与运算顺序有关。

2.Java中用ctrl + d 来结束循环输入。

3.nextLine() 遇到空格不会结束。

4.方法重载

4.1. 方法名必须相同

4.2. 参数列表必须不同(参数的个数不同、参数的类型不同、类型的次序必须不同)

4.3. 与返回值类型是否相同无关

两个方法仅仅只是返回值不同,是构不成方法重载的

5.方法签名

在同一个作用域中不能定义两个相同名称的标识符。

比如:方法中不能定义两个名字一样的变量,那为什么类中就可以定义方法名相同的方法呢?

方法签名即:经过编译器编译修改过之后方法最终的名字。具体方式:方法全路径名+参数列表+返回值类型,构成方法完整的名字。

public class Test {

    public static  int add(int x, int y) {
        return x + y;
    }

    public static double add(double x,double y) {
        return x + y;
    }

    public static void main(String[] args) {
        System.out.println(add(1, 2));
        System.out.println(add(1.5, 2.5));
    }
}

上述代码经过编译之后,然后使用JDK自带的javap反汇编工具查看。

具体操作:1. 先对工程进行编译生成.class字节码文件

2. 在控制台中进入到要查看的.class所在的目录

3. 输入:javap -v 字节码文件名字即可 

6.数组

数组的动态初始化

int[]array=newint[10];

 数组的静态初始化

int[]array1=newint[]{0,1,2,3,4,5,6,7,8,9};

静态初始化可以简写,省去后面的new 类型[ ] 

//注意:虽然省去了newT[],但是编译器编译代码时还是会还原
int[]array1={0,1,2,3,4,5,6,7,8,9};
double[]array2={1.0,2.0,3.0,4.0,5.0};
String[]array3={"hell","Java","!!!"};

 动态初始化和静态初始化可以分为两步,但省略格式是不行的。

int[] array;
array = new int[10];
int[]array2;
array2=newint[]{10,20,30};
//注意省略格式不可以拆分,否则编译失败
//int[]array3;
//array3={1,2,3};

7.什么叫局部变量?

局部变量就是定义在方法内部的变量 

8.Java帮你实现了一个打印数组的方法

int[] array = new int[]{1,2,3,4,5};
System.out.println(Arrays.toString(array));

9.局部变量 引用变量 

10. 

11.传引用一定能改变实参的值吗?不一定 

public static void func1(int[] array) {
        array = new int[]{4,5,6};
    }

    public static void main(String[] args) {
        int a = 3;
        int[] array = new int[a];
        System.out.println("使用前:" + Arrays.toString(array));
        func1(array);
        System.out.println("使用后:" + Arrays.toString(array));
    }
}

这个是因为形参指向了一个新的对象,并没有指向实参所指向的对象。 

12.数组既可以作为参数,也可以作为函数返回值。 

13.拷贝数组的方法

14. 二维数组

public static void main(String[] args) {
     int[][] array = new int[][]{
   
   {1,2,3},{4,5,6}};
     System.out.println(array[0]);
     System.out.println(array[1]);
}

二维数组本质上也就是一维数组,它的元素里存放的是地址, 这个地址指向的又是另一个一维数组。

Java中不可以省略行,但可以省略列。 

15.不规则的二维数组

public static void main(String[] args) {
        int[][] array = new int[2][];
        array[0] = new int[3];
        array[1] = new int[5];
        for (int i = 0; i < array.length; i++) {
            for (int j = 0; j < array[i].length; j++) {
                System.out.print(array[i][j]+ " ");
            }
            System.out.println();
        }
    }

16. private不能修饰类,可以修饰成员方法,成员变量,构造方法.

17. static只能修饰成员变量,不能修饰局部变量,因为成员变量与类有关,而局部变量则不是. 

猜你喜欢

转载自blog.csdn.net/m0_63562631/article/details/132669713