
JDK源码解析
飞翔的小宇宙
天下事有难易乎?为之,则难者亦易矣;不为,则易者亦难矣。 人之为学有难易乎?学之,则难者亦易矣;不学,则易者亦难矣。
展开
-
hashCode的实现原理
public int hashCode() { int h= hash; if (h== 0 && value.length > 0) { char val[] = value; for (int i = 0; i < value.length; i++) { h = 31 * h + val[i]; }原创 2018-02-06 14:53:45 · 9844 阅读 · 0 评论 -
序列化的方式以及序列化可能产生的异常
原创 2018-02-08 17:28:46 · 1990 阅读 · 0 评论 -
深入了解JVM的底层原理
引言:什么是JVM? JVM在整个jdk(java 运行环境)中处于最底层,负责与操作系统的交互,用来屏蔽操作系统环境,提供一个完整的Java运行环境,因此也就虚拟计算机. 操作系统装入JVM是通过jdk中Java.exe来完成,通过下面4步来完成JVM环境. 1.创建JVM装载环境和配置 2.装载JVM.dll 3.初始化JVM.dll并挂界到JNIENV(JNI调用接口)实例 ...原创 2018-03-08 10:38:44 · 21461 阅读 · 1 评论 -
HashMap与HashTable的区别以及ConcurrentHashMap的一些底层原理剖析
一 hashmap和hashtable的区别: 1.时间上: hashtable是JDK1.1的产物,hashmap是JDK1.2的产物,每个版本都在进化。 2.公开的方法: 下面这张图片画出了HashMap和HashTable的类继承体系,并列出了这两个类的可供外部调用的公开方法: 从上图中可以看出,两个类的继承体系有些不同。虽然都实现了Ma...原创 2018-03-02 15:14:13 · 1132 阅读 · 2 评论 -
浅谈ThreadLocal,以及相应的使用
在这里本人想提前说明白JDK1.2产生的ThreadLocal的这个工具类可以很简洁地编写出优美的多线程程序,是线程的局部变量。 关于其变量 所以,在Java中编写线程局部变量的代码相对来说要笨拙一些,因此造成线程局部变量没有在Java开发者中得到很好的普及。 ThreadLocal的接口方法 ThreadLocal类接口很简单,只有4个方法,我们先来了解一下: void set(...原创 2018-02-24 09:52:24 · 288 阅读 · 0 评论 -
ArrryList与linkedList的区别以及ArrayList的源码实现原理
Java中ArrayList和LinkedList区别1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。 2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。 3.对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。Arra...原创 2018-03-03 16:25:13 · 2987 阅读 · 0 评论 -
Threadlocal与Synchronized的区别
相同: ThreadLocal和线程同步机制都是为了解决多线程中相同变量的访问冲突问题。 不同: Synchronized同步机制采用了“以时间换空间”的方式,仅提供一份变量,让不同的线程排队访问;而ThreadLocal采用了“以空间换时间”的方式,每一个线程都提供了一份变量,因此可以同时访问而互不影响。以时间换空间->即枷锁方式,某个区域代码或变...原创 2018-07-09 08:29:35 · 660 阅读 · 0 评论 -
手写ArrayList的实现
一.引言众所周知ArrayList是一种数组的实现方式,也就说明其有序有下标不肯重复,查询快增删慢的特点,今天有时间就研究了一下其实现方法并手写了一些,实现原理草考一下链接实现原理二.demo实践1.首先创建一个NewList接口 package org.ligh.arraylist; /** * Created by ${ligh} on 2019/2/15 上午9:...原创 2019-02-15 10:44:08 · 1566 阅读 · 2 评论