
java
coderate
这个作者很懒,什么都没留下…
展开
-
Java基础---LinkedList源码分析
0. 核心字段transient int size = 0;transient Node<E> first;transient Node<E> last;Node类的定义:private static class Node<E> { E item; Node<E> next; Node<E>...原创 2018-06-18 12:01:06 · 270 阅读 · 0 评论 -
Java基础---ArrayList的源码分析
1. 构造函数1.1 无参构造函数private static final Object[] DEFAULTCAPACITY_EMPTY_ELEMENTDATA = {};public ArrayList() { this.elementData = DEFAULTCAPACITY_EMPTY_ELEMENTDATA;}1.2 初始化容量大小的构造函数public Ar...原创 2018-06-18 10:36:57 · 221 阅读 · 0 评论 -
Java使用wait和notify实现生产者和消费者
1. 使用注意事项永远在synchronized的函数或对象里使用wait、notify和notifyAll,不然Java虚拟机会生成IllegalMonitorStateException。永远在while循环里而不是if语句下使用wait。这样,循环会在线程睡眠前后都检查wait的条件,并在条件实际上并未改变的情况下处理唤醒通知。永远在多线程间共享的对象上使用wait。notify...原创 2018-05-25 18:09:00 · 7336 阅读 · 0 评论 -
Java基础---String的==与equals比较
1.一道题目给出以下代码,请回答出输出内容是什么。String s1 = "Hello";String s2 = "Hello";String s3 = new String(("Hello"));char[] chs = {'H', 'e', 'l', 'l', 'o'};System.out.println(s1 == s2);//trueSystem.out.println..原创 2018-05-18 09:53:40 · 196 阅读 · 0 评论 -
Java内存模型
衡量一个服务性能的高低好坏,每秒事务处理数(TPS)是最重要的指标之一,它代表着一秒内服务端平均能响应的请求总数,而TPS值与程序的并发能力又有非常密切的关系。Java虚拟机规范中试图定义一种Java内存模型(JMM)来屏蔽掉各种硬件和操作系统的内存访问差异,以实现让Java程序在各种平台下都能达到一致的并发效果。Java内存规范规定了所有的变量都存储在主内存中,每条线程都还有自己的工作内存...原创 2018-04-28 10:15:27 · 195 阅读 · 0 评论 -
Java垃圾回收
为什么要了解GC和内存分配? 因为当排查各种内存溢出、内存泄漏问题时,当垃圾收集成为系统达到更高并发量的瓶颈时,我们需要对这些技术实施必要的监控和调节。Java堆和方法区不一样,一个接口中的多个实现类需要的内存不一样,一个方法中的多个分支需要的内存也不一样,我们只有在程序处于运行期间才能知道会创建哪些对象,这部分内存的分配和回收是动态的,垃圾收集器所关注的就是这部分内存。Java语...原创 2018-04-28 10:15:16 · 126 阅读 · 0 评论 -
Java基础---HashMap源码分析
0. 核心字段核心常量static final float DEFAULT_LOAD_FACTOR = 0.75f;static final int TREEIFY_THRESHOLD = 8;static final int UNTREEIFY_THRESHOLD = 6;核心字段transient int size;int threshold;final float...原创 2018-06-18 14:49:06 · 323 阅读 · 0 评论