1. final关键字有哪些用法?
修饰类、方法和变量。
(1) final变量是只读的,不允许改变其引用,与static共用可声明常量。JVM会对final变量进行优化,比如常量折叠。
(2) final方法不能被子类覆盖。final方法比非final方法要快,因为在编译的时候已经静态绑定了,不需要在运行时再动态绑定。
(3) final类是不可变类,不能被继承,常用于功能比较完整的类。比如String。
2. throws,和throw有什么区别?
(1) throw是语句抛出一个异常,后面跟对象。
(2) throws是方法可能抛出异常的声明,后面跟异常类型。
3. this的用法?
this是自身的一个对象,代表对象本身,指向对象本身的一个指针。this()需放在构造方法的第一行。
(1) 引用对象成员;
(2)当形参和成员变量重名时,引用对象变量;
(3)引用构造函数。
4. super的用法?
super是指向离自己最近的一个父类对象的一个指针。super()需放在构造方法的第一行。
(1) 引用父类成员,super.父类成员变量
(2) 当子类成员变量或方法与父类成员变量或方法重名时,引用父类成员变量或者成员方法;
(3) 引用父类构造函数。
5. Java访问控制符含义以及不写时的区别?
6. switch 语句中的表达式可以是什么类型数据?
byte、char、short、int、enmu。
JDK1.7开始支持java.lang.String。