当前位置: 首页 > news >正文

4.11日报

synchronized 和 ReentrantLock 区别是什么?
synchronized 早期的实现比较低效,对比 ReentrantLock,大多数场景性能都相差较大,但是在 Java 6 中对 synchronized 进行了非常多的改进。

主要区别如下:

ReentrantLock 使用起来比较灵活,但是必须有释放锁的配合动作;
ReentrantLock 必须手动获取与释放锁,而 synchronized 不需要手动释放和开启锁;
ReentrantLock 只适用于代码块锁,而 synchronized 可用于修饰方法、代码块等。
56. 说一下 atomic 的原理?
atomic 主要利用 CAS (Compare And Wwap) 和 volatile 和 native 方法来保证原子操作,从而避免 synchronized 的高开销,执行效率大为提升。

反射
57. 什么是反射?
反射是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为 Java 语言的反射机制。

58. 什么是 Java 序列化?什么情况下需要序列化?
Java 序列化是为了保存各种对象在内存中的状态,并且可以把保存的对象状态再读出来。

以下情况需要使用 Java 序列化:

想把的内存中的对象状态保存到一个文件中或者数据库中时候;
想用套接字在网络上传送对象的时候;
想通过RMI(远程方法调用)传输对象的时候。
59. 动态代理是什么?有哪些应用?
动态代理是运行时动态生成代理类。

动态代理的应用有 spring aop、hibernate 数据查询、测试框架的后端 mock、rpc,Java注解对象获取等。

60. 怎么实现动态代理?
JDK 原生动态代理和 cglib 动态代理。JDK 原生动态代理是基于接口实现的,而 cglib 是基于继承当前类的子类实现的。

对象拷贝
61. 为什么要使用克隆?
克隆的对象可能包含一些已经修改过的属性,而 new 出来的对象的属性都还是初始化时候的值,所以当需要一个新的对象来保存当前对象的“状态”就靠克隆方法了。

62. 如何实现对象克隆?
实现 Cloneable 接口并重写 Object 类中的 clone() 方法。
实现 Serializable 接口,通过对象的序列化和反序列化实现克隆,可以实现真正的深度克隆。
63. 深拷贝和浅拷贝区别是什么?
浅克隆:当对象被复制时只复制它本身和其中包含的值类型的成员变量,而引用类型的成员对象并没有复制。
深克隆:除了对象本身被复制外,对象所包含的所有成员变量也将复制。
Java Web
64. JSP 和 servlet 有什么区别?
JSP 是 servlet 技术的扩展,本质上就是 servlet 的简易方式。servlet 和 JSP 最主要的不同点在于,servlet 的应用逻辑是在 Java 文件中,并且完全从表示层中的 html 里分离开来,而 JSP 的情况是 Java 和 html 可以组合成一个扩展名为 JSP 的文件。JSP 侧重于视图,servlet 主要用于控制逻辑。
 

http://www.lryc.cn/news/59777.html

相关文章:

  • 【LeetCode每日一题: 1039. 多边形三角剖分的最低得分 | 暴力递归=>记忆化搜索=>动态规划 | 区间dp 】
  • Okio 网络提速
  • 自动驾驶企业面临哪些数据安全挑战?
  • Doris(2):Doris编译部署
  • 使用MyBatis实现简单查询
  • C指针(*point)[4]和char *point[4]
  • 【Bard】谷歌的人工智能工具—Bard初体验
  • 2022国赛30:windows脚本题解析
  • Excel常用函数公式20例
  • 233:vue+openlayers绘制渐变填充色的圆形、多边形
  • Flink的窗口机制
  • 了解分布式Session
  • 仿真创新大赛—国三省一 智能鱼缸(proteus)(stm32)
  • 【ARMv8 编程】A64 数据处理指令——位域字节操作指令
  • ctfshow 愚人杯菜狗杯部分题目(flasksession伪造ssti)
  • linux拓展笔记——【补充学习知识点】
  • 为何银行各岗位之间的薪酬差别如此之大?
  • TensorFlow 深度学习第二版:1~5
  • 微前端micro-app的使用
  • 【JUC】Java内存模型之JMM
  • Win11快速打开便签和使用技巧分享
  • CSS:横向导航栏
  • 视频动态库测试及心得
  • 陶泓达:4.18午间欧盘黄金原油最新精准操作建议!
  • 环境变量相关知识
  • 如何快速入门ChatGPT
  • Akka定时任务schedule()方法
  • Python实现处理和分析大规模文本数据集,包括数据清洗、标注和预处理
  • 灌区量测水系统
  • 3.3 泰勒公式