自己总结,欢迎大家进行指定
1.虚拟机是可以执行Java字节码的虚拟机进程
2.Java程序不是直接在电脑上运行的,是在虚拟机上进行的,每个系统平台都是有自己的虚拟机(JVM),所以JAVA语言能跨平台
3.Java不能对父类的的private,static方法进行重写(override)的。(static修饰的方法是编译时静态绑定的,重写是运行时动态绑定的,所以是不能对static修饰的方法进行重写的)
4.static关键字,修饰的属性,或者方法,都是可以在没有该类实例化对象之前进行调用的,(static修饰的属性,方法,是随着类的加载而初始化,所以可以的)
5.代码尝试不用实例来访问非static的变量,编译器会报错,因为这些变量还没有被创建出来
6.基本数据类型向对象包装类型转化(自动装箱),反之是自动拆箱
7.Overload体现的类的多态性,可以改变返回值的类型。Override体现的是两个类的继承性
8.Java支持接口的多实现,不支持类的多继承(只能单继承)
9.接口vs抽象类
• 接口中的方法必须都是抽象方法,属性使用public static final(可以默认不写),方法使用public abstract(默认不写)
• 抽象类中的方法可以不是抽象的,属性也可以是非final修饰。抽象类可以有构造方法,接口中不能有构造方法
• 抽象类中的抽象方法的访问类型可以是public,protected,但接口中的抽象方法只能是public类型的
• 抽象类中可以包含静态(static)方法,接口中不能包含静态(static)方法。
• 一个类只能继承一个抽象类,但是可以实现多个接口,一个接口可以继承多个接口。
• 一个接口可以继承多个接口。