不一样角度的javaSE知识点小汇总

目录

一、Java中能出现语句的位置

1、方法的内部(抽象方法除外)

2、类的内部(属性或赋值语句)

3、代码块

4、构造方法:

5、内部类,匿名类,lambda表达式

二、语句什么时候被执行

1.语句写了就会被执行?

1)方法重载执行那个方法?

2)当有方法重写时,执行那个方法?

总结:语句被执行触发的常见情况:

三、类的加载,对象的实例化,方法的调用

1、什么时候会进行类的加载(类被用到&&类还未被加载过)

2、对象的实例化

执行顺序:

总结:方法中的语句,一定是被调用时才能执行

四、数据

1、直接接触到的数据(变量,字面量,数据元素)

2、基本类型和引用类型

3、数据存放在内存的哪里?

五、引用和对象

1、对象是什么? 保存该对象的属性信息  ps:方法不在对象中保存

 2、基本类型

3、引用类型


一、Java中能出现语句的位置

1、方法的内部(抽象方法除外)

静态方法:只能使用静态属性和调用静态方法,可以直接通过类名被调用

普通方法:可以使用静态属性和非静态属性,可以调用任意方法,必须实例化对象后,通过对象调用

2、类的内部(属性或赋值语句)

class Demo{

int g=getNum(); 定义属性时便执行了getNum方法(语句)

}

3、代码块

1)构造代码块

2)静态代码块

4、构造方法:

方法名必须和类名一致,没有返回值

class A{

A(){

hello();

}

}

5、内部类,匿名类,lambda表达式

二、语句什么时候被执行

1.语句写了就会被执行?

方法中的语句只有被调用才会被执行!

1)方法重载执行那个方法?

跟传参类型一致的方法

2)当有方法重写时,执行那个方法?

子类实例化时会触发父类的实例化

class A{
    int a=2;//A类实例化一个对象时会被执行
}
class A{
    static int a=2;//A类被加载时会执行
}

同样的,被代码块包含的部分也是A类实例化对象时会执行,静态代码块部分则是被加载时会执行

总结:语句被执行触发的常见情况:

1):某个类被加载,会触发一批语句的执行

2):某个类实例化对象,会触发一批语句的执行

3):某个类中的方法被调用,会触发一批语句的执行

三、类的加载,对象的实例化,方法的调用

1、什么时候会进行类的加载(类被用到&&类还未被加载过)

1):用到了类中的静态属性||调用了类的静态方法

2):用该类实例化一个对象

3):用到子类会触发父类(包含接口)

执行顺序:静态属性定义中的赋值语句-->静态代码块中的语句(按照书写顺序依次执行)

父类的所有加载语句执行完才会执行子类的加载语句!

2、对象的实例化

1)对象的实例化可能会触发类的加载(有可能类已经加载过了)

2)类的加载完成后紧跟着对象的实例化

3)类的加载完成可能不会对象的实例化(访问类的静态属性,调用类的静态方法)

4)和对象实例化有关的语句:(属性定义时的赋值语句,构造代码块中的语句,构造方法中的语句)

执行顺序:

1)属性定义和构造代码(按照书写顺序)

2)1完成后执行构造方法中的语句

3)子类的实例化时,必须要求父类所有实例化语句完成后才执行子类

总结:方法中的语句,一定是被调用时才能执行

1)静态方法:有类就够了,可以调用

2)普通方法:必须先通过类实例化出对象,通过对象去调用

3)特殊的main方法,被JVM调用

四、数据

1、直接接触到的数据(变量,字面量,数据元素)

2、基本类型和引用类型

不一样角度的javaSE知识点小汇总

 引用类型:null,“xxx”

基本类型:1,1L,1.0,1.0F,‘c’,true,false

数组元素类型:byte[] short[] int[] 引用类型作为数组对象 数组本身作为数组元素类型

3、数据存放在内存的哪里?

不一样角度的javaSE知识点小汇总

 1)JVM中,针对一个java进程,内存主要分成几个区域:栈区,堆区,方法区

对象在堆区             引用在什么区域? answer:不确定,需要其他条件

                               变量在什么区域? answer:根据变量的种类来明确

变量的种类:  局部变量(方法定义的变参,方法的形参,catch()定义的变量

局部变量:只存在于该方法执行时创建的栈帧中,属于栈区。

对象的属性:存在于属性附着的对象上,对象存在于堆区

类的静态属性:存在于静态属性附着的类上,类存在于方法区

数组的元素:数组的元素存在于元素附着的数组对象上,还是堆区

ps:只看数据类型(引用类型还是基本类型)无法决定变量存在于何处

方法的某次执行需要的数据,以栈帧的形式放在栈区。

对象放放在堆区

类的数据逻辑上放在方法区

语句数据(指令数据,字节码数据,方法)随着类,放置在方法区

不一样角度的javaSE知识点小汇总

五、引用和对象

1、对象是什么? 保存该对象的属性信息  ps:方法不在对象中保存

 不一样角度的javaSE知识点小汇总

 2、基本类型

不一样角度的javaSE知识点小汇总

3、引用类型

引用的类型是间接使用的 ,引用类型可以存对象的地址,但不要求必须存对象的地址

不一样角度的javaSE知识点小汇总

 不一样角度的javaSE知识点小汇总

 数据究竟存在何处是由其变量的种类决定的,和数据的类型无关

上一篇:JavaSE入门笔记(仅个人参考使用)


下一篇:javase进阶01抽象类