Java 面试题:ArrayList、NullPointerException、String 和 char[] 数组
Java 面试题:ArrayList、NullPointerException、String 和 char[] 数组
以下是一些常见的 Java 面试题,涉及 ArrayList 的创建、NullPointerException 异常的处理、String 和 char[] 数组的操作等知识点。通过示例代码和答案解析,帮助您更好地理解相关概念。
一.单选
1.下面那一项是正确的?
A.ArrayList myList = new Object();
B.List myList = new ArrayList();
C.ArrayList myList = new List();
D.List myList = new List();
**答案:B**
**解析:**
- ArrayList 是 List 接口的实现类,因此可以使用 List 类型的引用指向 ArrayList 对象。
- 选项 A 和 C 错误,因为 ArrayList 无法直接实例化 Object 类或 List 接口。
- 选项 D 错误,因为 List 是一个接口,不能直接实例化。
2.根据下面的代码,如果 String s = null;会抛出 NullPointerException 异常的有
① If((s!=null) &(s.length()>0))...
② If((s!=null) && (s.length()>0))...
③ If((s==null) | (s.length()==0))...
④ If((s==null) || (s.length() == 0))..
A 1和2 B .2和4 C.1和3 D.3和4
**答案:C**
**解析:**
- 在 Java 中,& 和 && 都是逻辑与运算符,但 && 具有短路特性,如果第一个操作数为 false,则不会执行第二个操作数。
- 在代码示例中,当 s 为 null 时,s.length() 会抛出 NullPointerException 异常。因此,使用 & 运算符的选项 1 和 3 会抛出异常。
- 选项 2 和 4 使用 && 运算符,由于第一个操作数 s 为 null,会短路,不会执行 s.length(),因此不会抛出异常。
3.指出下列程序运行的结果是
public class Example{
String str = new String('good');
char[] ch = {'a','b','c'};
public static void main(String[] args) {
Example ex = new Example();
ex.change(ex.str,ex.ch);
System.out.println(ex.str + ' and ');
System.out.println(ex.ch);
}
public void change(String str,char ch[]) {
str = 'test ok';
ch[0] = 'g';
}
}
A good and abc B good and gbc
C test ok and abc D test ok and gbc
**答案:C**
**解析:**
- 在 change() 方法中,str 参数接收的是 str 对象的引用,而不是 str 对象本身。因此,在 change() 方法中修改 str 的值,实际上是创建了一个新的 String 对象,并将其赋值给 str 参数,并没有修改原对象。
- 而 ch 参数接收的是 ch 数组的引用,修改 ch 数组的值会直接修改原数组。
二.总结
本篇内容涵盖了 Java 中 ArrayList 的创建、NullPointerException 异常的处理、String 和 char[] 数组的操作等面试常考知识点。通过示例代码和答案解析,帮助您更好地理解相关概念。希望对您有所帮助!
原文地址: https://www.cveoy.top/t/topic/pxB2 著作权归作者所有。请勿转载和采集!