![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
鋈巍醭觯
进步一点点
展开
-
Netty-初体验
在深入学习Netty之前,首先编写一段简单的服务端和客户端程序,来体验一下Netty是如何进行交互的。原创 2022-01-29 15:09:15 · 7763 阅读 · 0 评论 -
自定义函数式接口与Lambda原理分析
自定义函数式接口与Lambda原理分析原创 2020-10-13 21:39:35 · 241 阅读 · 0 评论 -
synchronized锁升级示例演示
在说synchronized升级之前,先说明一下java对象的内存布局分为三部分:对象头、实例数据,对齐填充;其中对象头中含有对象自身的运行时数据,如哈希码、GC分代年龄、锁状态标志位、线程持有的锁、偏向线程ID等。在不同的锁状态标志位下有不同的差别,如下图所示: 如何查看对象占用内存的情况呢?OpenJDK 提供了一个非常好用的工具,JOL包,其maven依赖如下: <dependency> <groupId>org.openjdk.jol</groupId>原创 2020-10-08 22:45:24 · 119 阅读 · 0 评论 -
java的引用类型与演示
强引用 强引用是无论在任何情况下,只要强引用关系还存在,即使垃圾收集器进行垃圾回收,甚至抛出OOM,也不会回收掉被引用的对象,如下代码片段: Object obj = new Object(); 软引用 软引用是用来描述一些还有用,但非必须的对象。只被软引用关联着的对象,若JVM内存足够时,即使触发垃圾回收也不会回收该对象;但当JVM内存不够时,系统在发生OOM之前,就会对这些对象进行回收,若回收之后,还是没有足够的空间时,才会抛出OOM。下面我们用示例代码来说明: /** * 软引用 * <原创 2020-09-29 23:21:48 · 476 阅读 · 0 评论 -
线程池优雅关闭
最近项目维护过程中,商户在使用我们对外提供的java sdk的时候,发现应用进行正常停止的时候,不正常停止,从日志中分析发现,sdk内的定时关闭http连接方法无法正常退出,代码片段如下: private final static ScheduledThreadPoolExecutor SCHEDULED = new ScheduledThreadPoolExecutor(1); /** * 定时清理空闲连接,延迟1分钟启动,每5秒清理超过30秒空闲的连接 * @param c原创 2020-10-01 12:36:14 · 195 阅读 · 0 评论 -
线程池shutdown和shutdownNow原理
记录一下最近学习java线程池shutdown和shutdownNow的原理,话不多说,先看看代码示例和运行结果。 shutdown原理 先看一下代码示例: public static void main(String[] args) throws Exception { ThreadPoolExecutor service = new ThreadPoolExecutor(1, 1, 60, TimeUnit.SECONDS, new LinkedB原创 2020-10-01 12:20:23 · 964 阅读 · 0 评论