当对象通过传值调用时,传递的是这个对象的一个拷贝。因此,即使函数修改
这个对象,也不会影响原对象的值。
当对象通过传引用调用时,对象本身没有被传递,而传递的是对象的一个引用。
因此,外部函数对这个对象的修改,也会反映到任何出现这个对象的地方。
Java 线程
11. 进程与线程的区别 ?
进程是一个程序的执行 即正在运行的程序!然而线程是在进程中独立的执行序
列一个进程可以包含很多线程线程有时被称为轻量级的进程
12. 说下创建线程的不同方式. 你倾向于哪种方式并说明原因 ?
有三种创建线程的方式+
继承 %& 类
实现 $ 接口
通过 '($ 框架创建线程池
首选方式是实现 $ 接口因为它不需要继承 %& 类当你的程序设
计需要多继承时使用接口会有所帮助另外线程池效率是很高的并且实施起
来也很简单
13. 解释下可用的线程状态.
在执行期间线程会处于以下状态中的一种+
Runnable+线程已准备就绪但没有立即运行
Running+处理器正在执行的线程代码
Waiting+处于阻塞状态的线程等待外部某种处理的结束
Sleeping+被强制休眠的线程
Blocked on I/O+等待 6 操作的完成
Blocked on Synchronization+等待取得线程锁
Dead+线程已经执行结束
14. 同步方法与同步块的区别 ?
在 程序中每个对象都拥有一个锁线程可以通过使用 0&7 关
键字来获取一个对象上的锁0&7 关键字可以用于方法级别 粗粒度
锁!或代码块级别 细粒度锁!
15. 在监视器中的线程同步是怎样发生的? 你可以使用哪些级别的同步 ?
, 使用结合了监视器的锁监视器是一个守护者它看管一个同步代码的序列
并且确保在一个时刻只能有一个线程执行同步代码片段每个监视器关联着一
个对象引用只能得到锁的线程才可以执行同步代码