- 博客(7)
- 收藏
- 关注
原创 浅析JVM垃圾回收算法
既然我们要做垃圾回收,首先我们得搞清楚垃圾的定义是什么?哪些内存是需要回收的?1.1 引用计数法简单的说就是给对象中添加一个引用计数器,每当有一个地方引用它,计数器就加1;当引用失效,计数器就减1;任何时候计数器为0 的对象就是不可能再被使用的。这个方法实现简单,效率高,但是目前主流的虚拟机中并没有选择这个算法来管理内存,其最主要的原因是它很难解决对象之间相互循环引用的问题。上面代码中除了对象objA和objB相互引用着对方之外,这两个对象之间再无任何引用。
2024-02-19 11:24:13
761
1
原创 那些年踩过的坑-RestHighLevelClient初始化问题分析
大家在引入RestHighLevelClient连接同一个ES服务使用单例模式!
2024-02-18 16:23:41
2501
2
原创 Java8-函数式编程
(3)distinct:注意 distinct()方法是依赖Object的equals方法来判断是否是相同对象的,所以注意重写自定义对象的equals方法。reduce的作用是把Stream中的元素给组合起来,我们可以传入一个初始值,它会按照我们的计算方式依次拿流中的元素和在初始化值的基础上进行计算,计算结果再和后面的元素计算。(7)flatMap:map只能把一个对象转成另一个对象来作为流中的元素,而flatMap可以把一个对象转换成多个对象作为流中的元素。3、方法体只有一个参数时,小括号可以省略。
2024-02-17 09:58:49
843
1
原创 初识Netty
网络编程的本质是两个设备之间的数据交换,当然,在计算机网络中,设备主要指计算机。数据传递本身没有多大的难度,不就是把一个设备中的数据发送给两外一个设备,然后接受另外一个设备反馈的数据。现在的网络编程基本上都是基于请求/响应方式的,也就是一个设备发送请求数据给另外一个,然后接收另一个设备的反馈。Netty是一个异步事件驱动的网络应用框架,可以用以快速开发高性能、高可靠性的网络服务器和客户端程序。本质:网络应用程序框架实现:异步、事件驱动特性:高性能、可维护、快速开发用途:开发服务器和客户端。
2024-02-16 20:11:18
1745
1
原创 SpringBoot自动装配原理
如果当前项目很多我们不用的就会被加载到容器中,就很占空间,所以通过configurations = getConfigurationClassFilter().filter(configurations);方法就可以过滤出我们要用到的。可以在@SpringBootApplication去除自己不想用的(exclude=RedisAutoConfiguration.class)去除的逻辑就是以上图中的这几行代码。获取加载 META-INF/spring.factories文件中的自动配置信息。
2024-02-16 19:32:47
1072
原创 那些年踩过的坑-@Schedule实现定时任务
testCronJob本该10s执行一次,但由于testFixedRateJob执行时间较长,且第二个任务使用的fixRate是固定速率 上一次任务执行开始到下一次执行开始的间隔时间固定,单位为ms。若在调度任务执行时,,也就是说定时任务是单线程执行的。这意味着最多同时只有一个任务在执行。当一个任务还在执行时,其他任务会等待其完成,然后按照其预定的执行策略依次执行。这就导致了testCronJob并不能按时执行,可能多次被插队。Spring的@Scheduled的。
2024-02-16 19:14:19
624
原创 深入理解CAS
CAS(Compare And Swap,比较并交换),通常指的是这样一种原子操作:针对一个变量,首先比较它的内存值与某个期望值是否相同,如果相同,就给它赋一个新值。
2024-02-16 11:58:19
757
1
基于Netty框架的demo项目
2024-02-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人