1, java是否允许多继承。
java1.8之后,可以用interface 的 default方法实现多继承。
2,JVM如何实现try-with-resources特性?
必须针对实现AutoCloseable。
java 字节码。 调用的 invokeVirtual
javap -p -v 。class
3,
String s1 = “abc”; // #1
Stirng s2 = new String(“abc”); // #2
s2.intern(); // s2引用没有变化
System。 s1==s2?
s2.intern() 看一下doc,如果内容相同则返回已经存在的#1
s1==s2.intern() 这样会相等。
答案: false;
// 变量,对象,引用
// 变量:局部变量,成员变量(实力,static) Label标签(变量名称,变量类型,引用指向)
// 引用:强,软,弱,虚
4,flag变量为何?
try{
if(flag) {
while(true) {
}
} else {
System.exit(1);
}
} finally {
System.out.pringln(“In F”);
}
D,以上都不是。
但是flag是boolean类型的话,则可以运行进去。
如果Boolean flag=null;这样的话,则会跑np,会进入finally中。
第三个:Java异常处理
5,
try {
throwNPE();
} catch (NullPointException | RuntimeException e) {
System.out.println(e.getMessage())
}
throwNPE() {
throw new RuntimeExcepton(“throw”);
}
输出什么? 答案:编译错误。
第一个考点,mupti catch。
第二个考点:NullPointException | RuntimeException 这两个是包含关系,不能写两次。
Java集合:
Vetor values = new Vetor<>(asList(1,2,3));
remove(values);
for(Object value: values) {
remove(value);
}
编译错误。
ConcurentModificationException
误区:1,Vector不是Collection。
2,ConcurrentModificationExcetpin 不回在线程安全集合出现
如何改一下 CopyReadOrWrite则,成功。
fast-fail设计?
java并发问题
9String是否是线程安全的?为什么?
答案:不是。
通过反射修改。
String s = ”abd“;
String hashCode的不是线程安全。
int hashcode() 没有vilitale。
10,
Map<String, Integer> map = new HashMap<>();
map.put(“A”,1);
action(map);
Future futrue = executorService.submit(()–>map.get(“A”));
int i = furuen,get();
i == 1?
以上答案都不是
最接进的是true。
子进程在启动的时候,已经能读取父进程的变量了。