12 2021 档案

摘要:1 什么时候回收垃圾? 1、什么场景下该使用什么垃圾回收策略? 在对内存要求苛刻的场景:想办法提高对象的回收效率,多回收掉一些对象,腾出更多内存。 在CPU使用率高的情况下:降低高并发时垃圾回收的频率,让CPU更多的去执行你的业务而不是垃圾回收。 2、垃圾回收发生在哪些区域? 堆(回收对象)、方法区 阅读全文
posted @ 2021-12-28 23:58 Awecoder 阅读(375) 评论(0) 推荐(0) 编辑
摘要:逃逸分析:分析变量是否逃出它的作用域 全局变量赋值逃逸 方法返回值逃逸 实例引用逃逸 线程逃逸:赋值给类变量或者可以在其他线程中访问的实例变量 public class EscapeTest { public static SomeClass someClass; // 1 public void 阅读全文
posted @ 2021-12-26 22:27 Awecoder 阅读(184) 评论(0) 推荐(0) 编辑
摘要:编译器优化机制详解 1 字节码是如何执行的? 主要包含解释执行(由解释器一行一行翻译执行)和编译执行(将字节码编译成机器码,直接执行机器码)。 解释执行:优势在于没有编译的等待时间,性能相对编译执行差。 编译执行:运行效率高,比解释执行快一个数量级;会带来额外的开销(CPU,内存) 查看和切换运行模 阅读全文
posted @ 2021-12-26 17:19 Awecoder 阅读(556) 评论(0) 推荐(0) 编辑
摘要:方法内联的思想是,把目标方法的代码复制代发起调用的方法之中,避免发生真实的方法调用。 public class InlineTest { private static int add1(int x1, int x2, int x3, int x4) { return add2(x1, x2) + a 阅读全文
posted @ 2021-12-26 17:17 Awecoder 阅读(378) 评论(1) 推荐(0) 编辑
摘要:SimpleMemory 侧边栏 <script type="text/javascript"> window.cnblogsConfig = { info: { name: 'Awecoder', startDate: '2021-01-01', avatar: 'http://pic.cnblo 阅读全文
posted @ 2021-12-23 07:42 Awecoder 阅读(152) 评论(0) 推荐(0) 编辑
摘要:Spring: Spring是一个轻量级的控制反转(IOC/DI)和面向切面(AOP)的容器框架。 轻量级主要针对最小侵入编程而言,不会强迫实现或继承框架类。 实现解耦:使用DI实现应用对象之间的解耦,使用AOP实现横向关注点(系统服务)与业务逻辑的解耦。 容器:Spring容器负责对象的创建、装配 阅读全文
posted @ 2021-12-12 14:50 Awecoder 阅读(225) 评论(0) 推荐(0) 编辑
摘要:JDBC是Java数据库操作的底层规范,定义连接、查询,不同数据库都提供JDBC驱动。 Druid和HikariCP都是数据源,或者简单点说是数据库连接池。 ShardingShpere是用来做分库分表。 对象与关系数据库存在范式不匹配,因此有了ORM操作。例如粒度(类和表)、是否有继承、唯一性(相 阅读全文
posted @ 2021-12-02 00:04 Awecoder 阅读(338) 评论(0) 推荐(0) 编辑