1.abstract 和 static 不能连用
因为static修饰的方法是静态方法,其可以直接被类所调用。
而abstract修饰的方法为抽象方法,即无方法体的方法,不能够被直接调用,需要在子类或实现类中去编写完整的方法处理逻辑后才能使用。
2.abstract和final不能连用
abstract和final不能同时使用,因为abstract的作用是定义抽象方法让子类继承重写的,而final修饰的方法是可以被子类继承,但是不能重写。
final修饰的类不能被子类继承
* 全局成员变量可以直接被static、final同时修饰。
3.类、对象、实例的关系
类是对象的抽象,对象是类的具体化,实例是对象的另一种名称。
4.判断字符串是否相等使用equals方法
5.java变量的初始化之后的默认值
1、整数类型(byte、short、int、long)的基本类型变量的默认值为0。
2、单精度浮点型(float)的基本类型变量的默认值为0.0f。
3、双精度浮点型(double)的基本类型变量的默认值为0.0d。
4、字符型(char)的基本类型变量的默认为 “/u0000”。
5、布尔型的基本类型变量的默认值为 false。
6、引用类型的变量是默认值为 null。
7、数组引用类型的变量的默认值为 null。
6.重写与重载的区别
重写是子类重新编写,或覆盖父类继承下来的方法,也叫方法覆盖,主要用于当父类提供的方法无法满足子类需求时,可在子类中定义和父类相同的方法进行重写。
重写的原则:
- 重写必须存在于继承关系中。
- 所重写的方法名称、参数列表要与父类相同。(重载只是方法名称与父类相同,形参列表与父类不同)
- 所重写的方法访问修饰符权限,需要比父类的更宽泛或与之相同。(public>protected>default>private)
- 所重写的方法返回值类型,需与父类的返回值类型相同或是其子类。
重载指的是,在同一个类中有若干个方法,它们方法名称相同,但参数列表不相同,这种情况叫作方法的重载。
重载的原则:方法名称相同,参数列表不同(包括参数的个数,顺序,类型各不相同)
方法的重载与方法的访问修饰符与返回值类型无关。目的是对构造器进行功能扩展,以应对多业务场景的不同使用需求。
区别:1.方法的重载与方法的访问修饰符与返回值类型无关;重写的方法访问修饰符权限,需要比父类的更宽泛或与之相同,所重写的方法返回值类型,需与父类的返回值类型相同或是其子类。
7.JDK JRE JVM三者的作用及三者关系
关系:JDK包含JRE,而JRE包含JVM
总结:JDK用于java程序的开发,JRE只能运行class而没有编译的功能。
JVM,即java虚拟机,是java运行时的环境
8.this与super关键字作用
*this
1.this出现在实例方法中其实代表的是当前对象。
2.this不能使用在静态方法中。因为静态方法是类级别的方法。
this代表当前对象,静态方法中不存在当前对象。
3.this. 大部分情况下可以省略,但是用来区分局部变量和实例变量的时候不能省略。
*super
它指向了当前对象自己的父类型特征(也就是继承的父类的所有的东西)
在子类对象中,子类想访问父类的东西,可以使用“super.”的方式访问
9.自动装箱和自动拆箱
Integer a2 = Integer.valueOf(12); System.out.println(a2); //自动装箱:可以自动把基本类型的数据转换成对象 Integer a3=12; //自动拆箱:可以自动把包装类型的对象转换成对应的基本数据类型 int a4=a3;