重要的知识点总结

1、源文件的声明

源文件指的就是.java的文件

说明:

  • 每一个源文件可以定义多个类,但是只能有一个public类,可以有多个非public类
  • 源文件的名称应该和public类名一样
  • 内部类的访问权限可以是public、protected、default、private(内部类和普通类一样定义)
//源文件名称为TestClassName.java
public class TestClassName {

    //内部类
    public class InnerClass{   }
    protected class InnerClass1{   }
    private class InnerClass2{   }
    class InnerClass3{   }
    
}

class TestClassName1{

}

class TestClassName2{

}

2、基本类型和引用类型

8种基本类型中有6中数字类型,1种布尔型,1种字符型,默认值及其范围如下表:

基本类型 取值范围 默认值
byte -128(-2^7)~127(2^7-1) 0
short -32768(-2^15)~32767(2^15 - 1) 0
int -2,147,483,648(-2^31)~2,147,483,647(2^31 - 1) 0
long -9,223,372,036,854,775,808(-2^63)~9,223,372,036,854,775,807(2^63 -1) 0L
float
1.4E-45~3.4028235E38
0.0f
double  
4.9E-324~1.7976931348623157E308
0.0d
boolean   false
char   'u0000'

 引用类型:

  • String、数组、对象都是引用类型
  • 所有的引用类型的默认值都是null

常量:

  • 用final关键字修饰
  • 一般用大写来表示
final double PI = 3.14;

3、变量的分类

局部变量:

  • 声明在方法、构造方法或者语句块中,且只在这些范围内可见
  • 方法、构造方法或者语句块被执行时被创建,执行完成后被销毁(生命周期)
  • 访问修饰符不能用于局部变量
  • 局部变量没有默认值,被声明后,必须经过初始化才能被使用
public class TestClass {
    String str_1;   //成员变量
   static String str; //静态变量

    public void method() {
        String str_2; //局部变量

        // System.out.println(str_2);  //报错,必须初始化才能使用
        str_2 = "hello world";
        System.out.println(str_2);

        System.out.println(str_1);
    }
}

成员变量:

  • 声明在类内,但在方法、构造方法或者语句块之外
  • 成员变量在对象创建的时候创建,在对象被销毁的时候销毁(生命周期)
  • 成员变量可是声明在使用之前或者使用之后,因为成员变量在对象被创建的时候创建,而使用是在对象被创建之后
  • 访问修饰符可以修饰成员变量
  • 成员变量有默认值,数值类型的默认值是0,布尔类型的是false,引用类型的是null

静态变量:

  • 声明在类中并且被static修饰,在方法之外
  • 静态变量在第一次访问的时候被创建,在程序结束的时候被销毁(生命周期)
  • 无论对象创建多少次,静态变量只有一份
  • 默认值和成员变量相同
  • 访问可以通过类名.变量名的方式访问

4、访问修饰符

类中的成员变量和类不写访问修饰符则默认为default

接口里的变量都隐式声明为public static final,而接口里的方法默认情况下访问权限为 public。

5、非访问修饰符

static:用来修饰类、方法和变量

final:用来修饰类、方法和变量。final修饰的类不能被继承,final修饰的方法不能被子类重写,final修饰的变量不能再被修改

abstract:用来修饰类和方法

synchronized和volatile:作用于多线程

transient:修饰成员变量时,表示该变量不被序列化

6、instanceof运算符

该运算符的作用是检查对象是否是某种类型

String name = "chenia";
boolean res = name instanceof String;

7、参数的的传递

java 基本数据类型传递参数时是值传递 ;引用类型传递参数时是引用传递 。

doIt1()输出的是1 2 3 4 5,数组虽然是引用传递 ,但是将引用 z = null 只是将引用z不指向任何对象 ,并不会对原先指向的对象数据进行修改 

doIt2()输出的是99 2 3 4 5,因为对数组进行修改了

public class Test{
    public static void main ( String[] args ){
        int[] myArray = {1, 2, 3, 4, 5};
        doIt1( myArray );
        for(int j=0; j<myArray.length; j++)
            System.out.print( myArray[j] + " " );  //1 2 3 4 5  

        doIt2( myArray );
        for(int j=0; j<myArray.length; j++)
            System.out.print( myArray[j] + " " ); //99 2 3 4 5
    }

    public static void doIt1( int[] z ) {
        z = null ;
    }

    public static void doIt2( int[] z ){
        int[] A = z;
        A[0] = 99;
    }

 

posted @ 2020-10-22 10:09  jernia  阅读(49)  评论(0编辑  收藏  举报