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