1、一个java的源文件是否可以包含多个类(不是内部类)?
可以有多个类,但是只能有一个public的类,并且public的类名必须与文件名相一致。
2、说说&和&&的区别
两者都可以表示用作逻辑与的运算符,也就是逻辑and,只有当运算符的两边的结果都为true时,整个运算结果才为true,否则,只要有一方为false,那么其结果就是false。
&&在进行逻辑运算时,如果&&前面的运算为false,那么其后面的表达式将不再执行,如(if(s!=null&&s="a"),当s==null时,那么其后面的s="a"表达式将不会执行),&还可以用作位运算符,只有当&操作两边的表达式不是Boolean类型时,&表示按位与操作。
3、数组有没有length()这个方法?String 有没有length这个方法?
数组没有length()这个方法,有length属性。 而String有length()这个方法。
4、final用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可被继承,属性只能被声明一次。
内部类要访问局部变量,局部变量必须定义成为final类型。
finally是异常处理语句结结构的一部分,表示总是执行。
finalize是Object类的一个方法,在垃圾收集执行的时候会被调回对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收。例如关闭文件等。
5、runtime exception异常有哪些?
如果面试官为这个问题,这个主要是考虑的是你的代码量,对于长期写代码的人,应该经常会看到一些runtime exception异常。可以在jdk doc中查看runtime exception类
如:nullPointerException、ClassCastException异常,ArithmeticException - 算术运算异常,IndexOutOfBoundsException - 下标越界异常,NumberFormatException - 数字格式异常等。
6、java中实现多态的机制是什么?
靠的是父类或者接口定义的引用变量可以指向子类或者具体实现类的实例对象,而程序调用的方法是在运行期才动态绑定,就是引用变量所指向
的具体实例对象的方法,也就是内存里正在运行的那个对象的方法,而不是引用变量的类型中定义的方法。
7、内部类可以引用它的包含类的成员吗?有没有什么限制?
完全可以。如果不是静态的内部类,那没有什么限制!
如果把静态嵌套类当做内部类的一种特例,那么在这种情况下是不可以访问外部类的普通成员变量,只能访问外部类中的静态成员变量。
8、是否可以继承String类?
String类是final类,故不能继承。
9、String和StringBuffer的区别?
简单的来说它们可以存储和操作多个字符串,即包含多个字符的字符数据。但这个String类提供了数值不可被改变的字符串,而这个StringBuffer类提供的字符串介意进修改; String覆盖了equal方法和hashCode方法,StringBuffer没有覆盖equals方法和HashCode方法,所以,将StringBufffer对象存进java集合类中时会出现问题。
10、error和exception的区别?
error表示恢复不是不可能,但很困难的情况下的一种严重问题。比如内存溢出。不可能指望程序能处理这样的情况。exception表示一种设计或者实现问题,也就是说,它表示程序能够正常运行,不会发送的情况。