
基础
wugemao
这个作者很懒,什么都没留下…
展开
-
多路复用IO与NIO
最近在学习NIO相关知识,发现需要掌握的知识点非常多,当做笔记记录就下。在学NIO之前得先去了解IO模型(1)同步阻塞IO(BlockingIO):即传统的IO模型。(2)同步非阻塞IO(Non-blockingIO):默认创建的socket都是阻塞的,非阻塞IO要求socket被设置为NONBLOCK。注意这里所说的NIO并非Java的NIO(NewIO)库。(3)多路复用...转载 2019-11-11 15:08:06 · 446 阅读 · 0 评论 -
A FIRST LOOK INTO ZGC
ZGCis a new garbage collector recently open-sourced by Oracle for the OpenJDK. It was mainly written byPer Liden. ZGC is similar toShenandoahor Azul’s C4 that focus on reducing pause-times while s...转载 2019-04-01 17:32:38 · 355 阅读 · 0 评论 -
ZGC
http://dinfuehr.github.io/blog/a-first-look-into-zgc/转载 2019-04-01 17:10:35 · 549 阅读 · 0 评论 -
HashMap详解
HashMap默认初始容量为16,默认加载因子为0.75.,HashMap数据存储在Node数组中。 /** * The table, initialized on first use, and resized as * necessary. When allocated, length is always a power of two. * (We als...原创 2018-08-23 11:12:36 · 118 阅读 · 0 评论 -
ArrayList扩容
初始化时调用构造方法底层数组elementData指向空数组,容量为0。/*** Shared empty array instance used for default sized empty instances. We* distinguish this from EMPTY_ELEMENTDATA to know how much to inflate when* first e...原创 2018-08-23 09:45:46 · 306 阅读 · 0 评论 -
Java对象克隆——浅克隆和深克隆的区别
在Java中对象的克隆有深克隆和浅克隆之分。有这种区分的原因是Java中分为基本数据类型和引用数据类型,对于不同的数据类型在内存中的存储的区域是不同的。基本数据类型存储在栈中,引用数据类型存储在堆中。 什么是克隆克隆就是依据已经有的数据,创造一份新的完全一样的数据拷贝。实现克隆有多种方式,可以手工的new出一个新的对象,然后将原来的对象信息一个一个的set到新的对象中。还有就是使用cl...转载 2018-09-29 10:35:49 · 130 阅读 · 0 评论 -
转:JDK1.8-Stream()使用详解
为什么需要 StreamStream 作为 Java 8 的一大亮点,它与 java.io 包里的 InputStream 和 OutputStream 是完全不同的概念。它也不同于 StAX 对 XML 解析的 Stream,也不是 Amazon Kinesis 对大数据实时处理的 Stream。Java 8 中的 Stream 是对集合(Collection)对象功能的增强,它专注于对集...转载 2019-04-01 13:49:52 · 220 阅读 · 0 评论 -
java集合——Queue
Queue接口定义了队列数据结构,元素是有序的(按插入顺序),先进先出。Queue接口相关的部分UML类图如下:DeQueueDeQueue(Double-ended queue)为接口,继承了Queue接口,创建双向队列,灵活性更强,可以前向或后向迭代,在队头队尾均可心插入或删除元素。它的两个主要实现类是ArrayDeque和LinkedList。ArrayDeque (底层使用...转载 2018-11-08 10:14:31 · 213 阅读 · 0 评论 -
CAS原理分析
在JDK 5之前Java语言是靠synchronized关键字保证同步的,这会导致有锁(后面的章节还会谈到锁)。锁机制存在以下问题:(1)在多线程竞争下,加锁、释放锁会导致比较多的上下文切换和调度延时,引起性能问题。(2)一个线程持有锁会导致其它所有需要此锁的线程挂起。(3)如果一个优先级高的线程等待一个优先级低的线程释放锁会导致优先级倒置,引起性能风险。volatile是不错...转载 2018-09-29 15:55:23 · 146 阅读 · 0 评论 -
HTTP协议详解
当今web程序的开发技术真是百家争鸣,ASP.NET, PHP, JSP,Perl, AJAX 等等。 无论Web技术在未来如何发展,理解Web程序之间通信的基本协议相当重要, 因为它让我们理解了Web应用程序的内部工作. 本文将对HTTP协议进行详细的实例讲解,内容较多,希望大家耐心看。也希望对大家的开发工作或者测试工作有所帮助。使用Fiddler工具非常方便地捕获HTTP Request和HT...转载 2018-09-29 14:32:45 · 287 阅读 · 0 评论 -
JDK1.8 HashMap源码分析
一、HashMap概述 在JDK1.8之前,HashMap采用数组+链表实现,即使用链表处理冲突,同一hash值的节点都存储在一个链表里。但是当位于一个桶中的元素较多,即hash值相等的元素较多时,通过key值依次查找的效率较低。而JDK1.8中,HashMap采用数组+链表+红黑树实现,当链表长度超过阈值(8)时,将链表转换为红黑树,这样大大减少了查找时间。 下图中代...转载 2018-08-09 17:45:10 · 115 阅读 · 0 评论