Java集合类框架学习 5.3—— ConcurrentHashMap(JDK1.8)

以下内容,如有问题,烦请指出,谢谢! 现在看下1.8版本的ConcurrentHashMap,改动很大。目前本人也有些地方没有弄懂,具体来说就是扩容有关的那一块,有几个地方还不太对得上,单独理解是没问题的,联合起来发现存在些矛盾的地方。所以下面的扩容有关的,各位看官还是细看,自己也要想下。 ...

2017-03-05 22:41:40

阅读数 5010

评论数 11

Java集合类框架学习 4.3 —— HashMap(JDK1.8)

以下内容,如有问题,烦请指出,谢谢! 这里看下1.8的HashMap,jdk1.8是个大改版,对于HashMap以及ConcurrentHashMap来说也是个很大的改版。 零、主要改动 相对于1.7: 1、处理hash冲突的方式变化,当一条链表太长时,转化为红黑树保存,提高hash冲...

2017-03-03 21:56:33

阅读数 741

评论数 0

jdk1.8 LongAdder源码学习

LongAdder是jdk8新增的用于并发环境的计数器,目的是为了在高并发情况下,代替AtomicLong/AtomicInt,成为一个用于高并发情况下的高效的通用计数器。 高并发下计数,一般最先想到的应该是AtomicLong/AtomicInt,AtmoicXXX使用硬件级别的指令 CAS 来...

2017-03-05 22:46:49

阅读数 4902

评论数 1

Java集合类框架学习 5.2 —— ConcurrentHashMap(JDK1.7)

以下内容,如有问题,烦请指出,谢谢! jdk1.7的ConcurrentHashMap整体设计、存储结构、思路,和1.6的基本一样,都是用代理给相应的Segment进行对应的操作。设计实现上一个比较大的改变就HashEntry的next指针不再是final的,改为volatile,并且用Un...

2017-03-05 17:22:40

阅读数 475

评论数 0

Java集合类框架学习 5.1 —— ConcurrentHashMap(JDK1.6)

以下内容,如有问题,烦请指出,谢谢! 这一篇讲1.6的ConcurrentHashMap ConcurrentHashMap是Java程序员接触得最多的有关并发和线程安全的类,它兼顾了并发的两个基本点——安全,高效,在很多地方都有用到,每一个Java程序员都应该真正掌握这个类。 虽然1.6版本...

2017-03-05 13:45:14

阅读数 910

评论数 0

简单了解sun.misc.Unsafe

这里简单了解下sun.misc.Unsafe,jdk中的类很多地方都有用到它,它是许多类的实现的关键,知道这个类干嘛的,对一些源码的阅读很有帮助。 sun.misc.Unsafe算是Java留下的后门,能提供相当强大的操作,但是又不提供专业的文档。看名字就知道,sun本身就不推荐使用这个类。一般应...

2017-03-04 23:08:31

阅读数 2618

评论数 1

Java集合类框架学习 4.2 —— HashMap(JDK1.7)

看完1.6的,接下来看下1.7的,改动并不多,稍微过下就行 零、主要改动 相对于1.6: 1、懒初始化 lazy init,默认构造的HashMap底层数组并不会直接初始化,而是先使用空数组,等到实际要添加数据时再真正初始化。 2、引入hashSeed,用于得到更好的hash值,以及在扩容时判...

2017-03-03 21:05:45

阅读数 761

评论数 0

Java集合类框架学习 4.1 —— HashMap(JDK1.6)

这篇开始看HashMap,先从1.6的开始,它是基础。理解了1.6的之后,再看下1.7以及1.8的改进。 public class HashMap extends AbstractMap implements Map, Cloneable, Serializable 一、基本性质 1、基于哈希...

2017-03-03 16:16:06

阅读数 519

评论数 0

为什么HashMap继承了AbstractMap还要实现Map接口

jdk中HashMap的声明如下      public class HashMap extends AbstractMap implements Map, Cloneable, Serializable AbstractMap的声明如下      public abstract class...

2017-03-03 16:13:31

阅读数 4136

评论数 2

Java集合类框架学习 3 —— LinkedList(JDK1.8/JDK1.7/JDK1.6)

这篇简单看下LinkedList。 代码基于jdk1.6_45 jdk1.7_80 jdk1.8_111,三个版本之间并没有什么特别大的改动或者改进。 public class LinkedList extends AbstractSequentialList implements L...

2017-02-25 20:29:55

阅读数 2594

评论数 0

Java集合类框架学习 2 —— ArrayList(JDK1.8/JDK1.7/JDK1.6)

这一篇开始说ArrayList 参考代码为jdk1.6_45 jdk1.7_80 jdk1.8_111中的源码,对比阅读,发现修改的问题以及改进点 public class ArrayList extends AbstractList implements List, RandomAccess...

2017-02-25 19:58:56

阅读数 2988

评论数 0

Java集合类框架学习 1 —— 概述与基础

Java集合类是Java基础中的重中之重,是每个合格的Java程序员都应该真正掌握的重要知识。关于这个本人准备根据之前的学习笔记,整理个几篇。至于网上有很多相关的文章,为什么还要自己写,主要有一下几个原因。 1、认真学习:以前都是博客学习,自己看得不专业系统,这次认真地学习一个。 2、跟上时代:网...

2017-02-11 14:29:20

阅读数 478

评论数 0

从字节码看Java中for-each循环(增强for循环)实现原理

for-each循环是jdk1.5引入的新的语法功能。并不是所有东西都可以使用这个循环的。可以看下Iterable接口的注释,它说明了除了数组外,其他类想要使用for-each循环必须实现这个接口。这一点表明除了数组外的for-each可能底层是由迭代器实现的。 Iterable接口在1.8之前只...

2017-01-15 16:11:47

阅读数 3321

评论数 1

HTTP协议基础(HTTP 1.1)

http协议(目前主要是HTTP 1.1)是目前世界上使用最多的应用层协议,是互联网的基础,同时它也是程序开发中最基础的协议,所有程序员都应该知道http协议。这里根据本人目前的工作学习情况,参考一些规范,简单总结一下HTTP协议的一些基础知识。 主要参考规范: rfc2616 - Hyper...

2017-01-14 22:02:05

阅读数 907

评论数 0

Java浅拷贝和深拷贝

浅拷贝和深拷贝是在编程中很通用的概念。一般来说,对于     B = A.copy 如果除了程序中的全局共享内存、不变对象,A和B表示的对象还存在内存共享,那么这就是浅拷贝;如果除了程序中的全局共享内存、不变对象,A和B表示的对象占用的内存是完全分开,那么这就是深拷贝。因为浅拷贝存在对象(内存)共...

2017-01-14 15:18:33

阅读数 244

评论数 0

Java虚拟机学习笔记(一)——JVM运行时数据区和常见内存错误

本人的“Java虚拟机学习笔记”系列,主要是参考《深入理解Java虚拟机》和《Java虚拟机规范(Java SE 8)》两本书,算是本人的学习笔记,供大家参考,如有问题,烦请指出谢谢! 一、运行时数据区 关于什么是“运行时数据区”,两本书上说得差不多,都很模糊,个人觉得大概就是Java虚拟机中...

2017-01-02 14:44:21

阅读数 1045

评论数 0

谈"http get和post的区别"

——以下内容如有各种问题,烦请指出,谢谢各位^_^——最基本的Java程序员面试题都有这个题 ——http get和post的区别? 不少人大学还没毕业就知道,就算不知道也会去搜,我记得我快毕业那会,简单搜出来,排在前面的大概就这么几个区别: 1、get用于获取数据,post用于提交...

2016-12-11 23:17:37

阅读数 264

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭