目录
2.String s = "Hello";s = s + " world!";这两行代码执行后,原始的 String 对象中的内容到底变了没有?
4.String s = new String("xyz");创建了几个 String Object? 二者之间有什么区别?( xyz 是字面量)
6.try{}里有一个 return 语句,那么紧跟在这个 try 后的 finally {}里的 code 会不会被执行,什么时候被执行,在 return 前还是后?
7.final, finally, finalize 的区别
12.当一个线程进入一个对象的一个 synchronized 方法后,其它线程是否可进入此对象的其它方法?
1.String 是最基本的数据类型吗?
不是,java.lang.String 类是 final 类型的。
2.String s = "Hello";s = s + " world!";这两行代码执行后,原始的 String 对象中的内容到底变了没有?
没有。因为 String被设计成不可变(immutable)类,所以它的所有对象都是不可变对象。
3.是否可以继承 String 类
String 类是 final 类故不可以继承。
4.String s = new String("xyz");创建了几个 String Object? 二者之间有什么区别?( xyz 是字面量)
创建了2个对象。一个放在常量区,不管写多少遍,都是同一个。New String 每写一遍,就创建一个新。
5.String 和 StringBuffer 的区别
1.string是被final所修饰的一个固定的一个字符串。
2.StringBuffer是字符串的容器,可进行修改。
6.try{}里有一个 return 语句,那么紧跟在这个 try 后的 finally {}里的 code 会不会被执行,什么时候被执行,在 return 前还是后?
try catch结构,finally的代码必然会执行,try先执行,如果里面有返回值return,那么中断,执行完finally中代码再唤醒中断代码。
7.final, finally, finalize 的区别
final修饰类但不能够被继承,修饰方法不可以被重写,修饰变量不可以改变引用指向。代表最终的。
finally 是异常处理语句结构的一部分,表示总是执行。
finalize是垃圾回收机制中的一个方法
8.运行时异常与一般异常有何异同?
运行时异常不需要声明或者是捕捉。
一般异常在编译器就声明或捕捉异常。
9.error 和 exception有什么区别?
error为错误,不能通过程序来解决。
exception为异常,表示程序运行正常就不会发生。
10.sleep() 和 wait()有什么区别?
sleep()主动被唤醒,wait()是手动唤醒。
11.同步和异步有何异同,在什么情况下分别使用他们?
同步一次性只能做一件事,异步同一时间点可以做多种事情。
如果想提高效率则使用多线程,想保证安全性使用同步。
12.当一个线程进入一个对象的一个 synchronized 方法后,其它线程是否可进入此对象的其它方法?
1.其他方法前是否加了 synchronized 关键字,如果没加,则能。
2.如果这个方法内部调用了 wait,则可以进入其他 synchronized 方法。
3.如果其他个方法都加了 synchronized 关键字,并且内部没有调用 wait,则不能
13.多线程有几种实现方法?同步有几种实现方法?
多线程有两种实现方法,分别是继承 Thread 类与实现 Runnable 接口。
同步的实现方面有两种,分别是 synchronized,wait与notify
14.启动一个线程是用 run()还是 start()?
run()放的是执行的代码块,start()则是开启线程 。