全菜工程师小辉
全菜工程师小辉
全部文章
Java语言特性
剑指offer最优解Java版(40)
数据库与中间件(3)
框架相关(1)
算法相关(3)
归档
标签
去牛客网
登录
/
注册
全菜工程师小辉的博客
有关后端开发和机器学习相关的干货分享,微信公众号同名
全部文章
/ Java语言特性
(共6篇)
Java中容易被遗忘的default关键字
default关键字 default关键字在JDK8中有两个用处。 1. 在switch语句的时候使用default int day = 8; String dayString; switch (day) { case 1: dayString = "Monday"...
2019-07-09
0
487
快速了解基于AQS实现的Java并发工具类
AQS是AbstractQueuedSynchronizer的简称,类如其名,抽象的队列式的同步器,它是一个Java提高的底层同步工具类,用一个int类型的变量表示同步状态,并提供了一系列的CAS操作来管理这个同步状态,许多同步类实现都依赖于它,如常用的CountDownLatch、Semaphor...
2019-07-06
0
413
详解ConcurrentHashMap及JDK8的优化
由于HashMap在并发中会出现一些问题,所以JDK中提供了并发容器ConcurrentHashMap。有关HashMap并发中的问题和原理,强烈建议查看这篇文章进行复习。 ConcurrentHashMap使用分段锁技术,将整个数据结构分段(默认为16段)进行存储,然后给每一段数据配一把锁(继承...
2019-07-06
0
600
详解并发下的HashMap以及JDK8的优化
HashMap使用链表法避免哈希冲突(相同hash值),当链表长度大于TREEIFY_THRESHOLD(默认为8)时,将链表转换为红黑树。当小于等于UNTREEIFY_THRESHOLD(默认为6)时,又会退化回链表以达到性能均衡。 下图为HashMap的数据结构(数组+链表+红黑树 ) ...
2019-06-29
0
564
TCP粘拆包详解与Netty代码示例
TCP是个“流”协议,所谓流,就是没有界限的一串数据。可以想想河里的流水,是连成一片的,其间并没有分界线。TCP底层并不了解上层业务数据的具体含义,它会根据TCP缓冲区的实际情况进行包的划分,所以在业务上认为,一个完整的包可能会被TCP拆分成多个包进行发送,也有可能把多个小的包封装成一个大的数据包发...
2019-06-27
0
463
安全发布对象-发布与逸出
发布对象 简单来说就是提供一个对象的引用给作用域之外的代码。比如return一个对象,或者作为参数传递到其他类的方法中。 不安全的发布对象示例: @Slf4j @NotThreadSafe public class UnsafePublish { private String[] s...
2019-06-27
0
426