学了一学期的JAVA,临近期末,整理了一些JAVA考试中须要掌握的点,记录在这里。java
一、编译多个JAVA文件,运行程序数组
(1)函数
javac 1.java 2.java java Main
(2)spa
javac .\*.java
java Main
二、JAVA中基本数据类型/占有bit大小.net
byte 8 short 16 int 32 long 64 float 32 double 64 char 16 boolean 不定
java Unicode码储存char,故有2字节。code
boolean的大小取决于上下文。(延伸阅读:https://blog.csdn.net/qq_35181209/article/details/77016508)对象
三、JAVA中遇到的double精度损失问题可使用BigDecimalblog
四、final关键字继承
final关键字修饰类,该类不能被继承接口
final关键字修饰方法,该方法不能被重写
final关键字修饰成员变量,该变量不能被改变(必须被初始化)
五、访问权限
由小到大依次为:
private 同类中
friendly 同包中
protected 同包中,子类,子类的子类
public 所有
六、不等长二维数组
int[][] a=new int[3][]; a[0]=new int[4];
七、可变参数
public void test(String s,int ... a){}
可变参数必须放在最后,访问方式相似于数组:a[0],a[1]...
八、异常的继承关系
参考连接:https://blog.csdn.net/u013252223/article/details/71514620
九、短路
test(0)&&test(1)&&test(2)
相似于上面的判断语句,JAVA会顺序执行,在肯定该语句的值后再也不继续向后执行
十、继承关系中的构造顺序
按前后顺序依次是:
父类静态成员及static块:有对象实例化就执行,只执行一次
子类静态成员及static块:有对象实例化就执行,只执行一次
父类普通成员初始化\代码块执行
父类构造函数
子类普通成员初始化\代码块执行
子类构造函数
成员初始化的顺序取决于定义的位置先后。
十一、单例模式
一种单例模式:
public class Singleton { private static Singleton uniqueInstance = new Singleton(); private Singleton() {} public static Singleton getInstance() { return uniqueInstance; } public void foo() { System.out.println("Aha!"); } }
十二、仅仅方法返回值不一样(参数相同)不能重载,会报错
1三、方法覆盖
(1)子类的异常抛出不能比父类更宽泛(延伸阅读:https://blog.csdn.net/yangyong0717/article/details/78494615)
(2)不能缩小父类方法的访问权限
(3)静态方法不能重写为非静态方法/反之也不行
1四、多态
多态中,属性、静态方法会被隐藏,非静态方法会被覆盖。
被隐藏的方法和变量能够在子类中用super关键字使用(但要有权限)
例如:
Parent partent=new Child();
那么此时调用的是本被隐藏的父类的属性和静态方法。
1五、类继承多个接口时,接口中出现同名函数,他们的返回值不一样而参数相同,则会报错。出现同名变量不访问不会报错,若是试图访问则有错误。
值得一提的是,若是多继承的两个变量同名但被隐藏了,那么不会报错。