知了堂Java | Java基础面试题(9)
28.ThreadLocal 是什么?有哪些使用场景?
线程局部变量是局限于线程内部的变量,属于线程自身所有,不在多个线程间共享。Java提供 ThreadLocal类来支持线程局部变量,是一种实现线程安全的方式。但是在管理环境下(如 web 服务 器)使用线程局部变量的时候要特别小心,在这种情况下,工作线程的生命周期比任何应用变量的生命 周期都要长。任何线程局部变量一旦在工作完成后没有释放,Java 应用就存在内存泄露的风险
29.什么是 java 序列化?什么情况下需要序列化?
简单说就是为了保存在内存中的各种对象的状态(也就是实例变量,不是方法),并且可以把保存的对 象状态再读出来。虽然你可以用你自己的各种各样的方法来保存object states,但是Java给你提供一种 应该比你自己好的保存对象状态的机制,那就是序列化 什么情况下需要序列化:
(1)当你想把的内存中的对象状态保存到一个文件中或者数据库中时候;
(2)当你想用套接字在网络上传送对象的时候;
(3)当你想通过RMI传输对象的时候;