E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
《JDK源码》
无符号右移一个负数会得到什么结果?
前言最近看
JDK源码
发现代码中竟然会出现无符号右移负数的形式,很有意思。
coderALEX
·
2019-06-06 23:29
java
【java】java高级部分——注解
我们打开
jdk源码
有时
Alearn_
·
2019-05-30 19:28
java
关于我的公众号Alitaba119的价值
我是Kahuna,现任职阿里巴巴,公众号Alitaba119旨在为关注的用户带来成长,成长分为以下几方面:源码深度理解:深度理解
JDK源码
,解释源码里面每一行代码的用意。
Alitaba119
·
2019-05-25 14:51
java
源码
jdk
关于我的公众号Alitaba119的价值
阅读更多我是Kahuna,现任职阿里巴巴,公众号Alitaba119旨在为关注的用户带来成长,成长分为以下几方面:1.源码深度理解:深度理解
JDK源码
,解释源码里面每一行代码的用意。
froest
·
2019-05-25 14:00
java
源码
jdk
领域建模
阿里巴巴
关于我的公众号Alitaba119的价值
阅读更多我是Kahuna,现任职阿里巴巴,公众号Alitaba119旨在为关注的用户带来成长,成长分为以下几方面:1.源码深度理解:深度理解
JDK源码
,解释源码里面每一行代码的用意。
froest
·
2019-05-25 14:00
java
源码
jdk
领域建模
阿里巴巴
Java容器解析系列(11) HashMap 详解
JDK源码
中HashMap的hash方法原理是什么?Whatistheu
公子姓王
·
2019-05-24 19:00
设计模式深入浅出--3.简单工厂模式和工厂方法及它们各自在
jdk源码
中的体现
简单工厂:定义:由一个工厂对象绝对创建出哪一种产品类的实例类型:创建型,但不属于GOF23种设计模式适用场景:工厂类负责创建的对象比较少客户端(应用层)只知道传入工厂类的参数对于如何创建对象(逻辑)不关心优点:只需要传入一个正确的参数,就可以获取你所需要的对象而无须知道其创建细节缺点:工厂类的职责相对过重,增加新的产品需要修改工厂类的判断逻辑,违背开闭原则coding创建一个Video抽象类,来实
键盘源
·
2019-05-24 09:16
设计模式深入浅出
简单工厂模式
简单工厂在jdk源码中的体现
Java设计模式
利用eclipse调试
JDK源码
先看效果图综合网上各种教程,总结如下新建D:/jdk/src、D:/jdk/debug目录src存放源码debug存放编译结果将%JAVA_HOME%/src.zip解压到D:/jdk/src,只保留java、javax、org三个目录即可将%JAVA_HOME%/jre/lib/rt.jar复制到D:/jdk/rt.jar打开cmd,进入D:/jdk目录cdd:jdkd:dir/B/S/X.\s
M了个J
·
2019-05-17 19:00
JDK源码
那些事儿之常用的ArrayList
前面已经讲解集合中的HashMap并且也对其中使用的红黑树结构做了对应的说明,这次就来看下简单一些的另一个集合类,也是日常经常使用到的ArrayList,整体来说,算是比较好理解的集合了,一起来看下前言jdk版本:1.8类定义publicclassArrayListextendsAbstractListimplementsList,RandomAccess,Cloneable,java.io.Se
orange
·
2019-05-11 00:00
arraylist
jdk8
java
JDK源码
分析(11)之 BlockingQueue 相关
本文将主要结合源码对JDK中的阻塞队列进行分析,并比较其各自的特点;一、BlockingQueue概述说到阻塞队列想到的第一个应用场景可能就是生产者消费者模式了,如图所示;根据上图所示,明显在入队和出队的时候,会发生竞争;所以一种很自然的想法就是使用锁,而在JDK中也的确是通过锁来实现的;所以BlockingQueue的源码其实可以当成锁的应用示例来查看;同时JDK也为我们提供了多种不同功能的队列
沙漏半杯
·
2019-05-10 17:32
java
jdk
源码
JDK源码
分析(10)之 Hashtable 相关
本文的目的并不是让你对Hashtable更加了解,然后灵活运用;因为Hashtable的一个历史遗留的类,目前并不建议使用,所以本文主要和HashMap对比,感受同样功能的不同实现,知道什么是好的代码;所以在阅读本文之前最好先了解一下HashMap,可以参考HashMap相关;一、类定义public class Hashtable extends Dictionary implements Map
沙漏半杯
·
2019-05-09 16:33
java
jdk
源码
JDK源码
分析(9)之 WeakHashMap 相关
平时我们使用最多的数据结构肯定是HashMap,但是在使用的时候我们必须知道每个键值对的生命周期,并且手动清除它;但是如果我们不是很清楚它的生命周期,这时候就比较麻烦;通常有这样几种处理方式:由一个线程定时处理,可以是Timer或者ScheduledThreadPoolExecutor;利用重写LinkedHashMap.removeEldestEntry(),实现FIFOCache或者LRUCa
沙漏半杯
·
2019-05-08 11:48
java
jdk
源码
JDK源码
分析(8)之 Reference 完全解读
在阅读本文之前最好对Reference框架有一个整体的把握,可以参考我上一篇文章Reference框架概览;本文主要讲了Reference的子类实现和应用(SoftReference,WeakReference,PhantomReference);Java引用的强弱关系:StrongReference>SoftReference>WeakReference>PhantomReference一、St
沙漏半杯
·
2019-05-07 17:19
java
jdk
源码
JDK源码
分析(7)之 Reference 框架概览
对于Reference类大家可能会比较陌生,平时用的也比较少,对他的印象可能仅停在面试的时候查看引用相关的知识点;但在仔细查看源码后发现Reference还是非常实用的,平时我们使用的类都是强引用的,它的回收完全依赖于GC;但是对于有些类我们想要自己控制的时候就比较麻烦,比如我想在内存还足够的时候就保留,不够的时候就回收,这时使用Reference就能够十分灵活的控制类的存亡了。一、类定义/**
沙漏半杯
·
2019-05-06 14:09
java
jdk
源码
JDK源码
分析(6)之 LinkedHashMap 相关
LinkedHashMap实质是HashMap+LinkedList,提供了顺序访问的功能;所以在看这篇文章之前最好先看一下我之前的两篇文章,HashMap相关和LinkedList相关。一、整体结构1.定义public class LinkedHashMap extends HashMap implements Map {}从上述定义中也能看到LinkedHashMap其实就是继承了HashMa
沙漏半杯
·
2019-05-05 11:33
java
jdk
源码
JDK源码
分析(6)之 LinkedHashMap 相关
LinkedHashMap实质是HashMap+LinkedList,提供了顺序访问的功能;所以在看这篇文章之前最好先看一下我之前的两篇文章,HashMap相关和LinkedList相关。一、整体结构1.定义public class LinkedHashMap extends HashMap implements Map {}从上述定义中也能看到LinkedHashMap其实就是继承了HashMa
沙漏半杯
·
2019-05-05 11:33
java
jdk
源码
JDK源码
那些事儿之HashMap.TreeNode
前面几篇文章已经讲解过HashMap内部实现以及红黑树的基础知识,今天这篇文章就讲解之前HashMap中未讲解的红黑树操作部分,如果没了解红黑树,请去阅读前面的两篇文章,能更好的理解本章所讲解的红黑树源码操作,全文默认读者已经了解红黑树的相关知识,接下来,就以HashMap.TreeNode来说明红黑树的源码操作。前言jdk版本:1.8以HashMap.TreeNode为例是因为之前HashMap
orange
·
2019-05-03 00:00
jdk8
java
JDK源码
分析(5)之 HashMap 相关
HashMap作为我们最常用的数据类型,当然有必要了解一下他内部是实现细节。相比于JDK7在JDK8中引入了红黑树以及hash计算等方面的优化,使得JDK8中的HashMap效率要高于以往的所有版本,本文会详细介绍相关的优化,但是主要还是写JDK8的源码。一、整体结构1.类定义public class HashMap extends AbstractMap implements Map, Clo
沙漏半杯
·
2019-04-30 16:09
java
jdk
源码
JDK源码
分析(12)之 ConcurrentHashMap 详解
本文将主要讲述JDK1.8版本的ConcurrentHashMap,其内部结构和很多的哈希优化算法,都是和JDK1.8版本的HashMap是一样的,所以在阅读本文之前,一定要先了解HashMap,可以参考HashMap相关;另外ConcurrentHashMap中同样有红黑树,这部分可以先不看不影响整体结构把握,有兴趣的可以查看红黑树;一、ConcurrentHashMap结构概述1.整体概述CH
三枣
·
2019-04-29 20:00
详解Java合并数组的两种实现方式
1.System.arraycopy()方法(1)解析通过阅读
JDK源码
,我可以知道方法原型如下:publicstaticnativevoidarraycopy(Objectsrc,intsrcPos,
冷血有情556
·
2019-04-29 16:59
JDK源码
分析(4)之 LinkedList 相关
一、定义public class LinkedList extends AbstractSequentialList implements List, Deque, Cloneable, java.io.Serializable从类定义和图中也能很清晰的看到,LinkedList的结构大致分为三个部分;同时和ArrayList相比,他并没有实现RandomAccess接口,所以他并不支持随机
沙漏半杯
·
2019-04-29 10:42
java
jdk
源码
JDK源码
分析(3)之 ArrayList 相关
一、成员变量private static final int DEFAULT_CAPACITY = 10; // 默认容量private static final Object[] EMPTY_ELEMENTDATA = {}; // 空实例的空数组对象private static final Object[] DEF
沙漏半杯
·
2019-04-27 16:19
java
jdk
源码
线程之Callable、Future 和FutureTask使用及源码分析
一、Callable我们知道启动线程有以下两种方式(
jdk源码
注释中官方定义只有两种启动方式,callable不算线程启动方式)(1)、newThread().start()(2)、newThread(
darendu
·
2019-04-27 14:54
JDK源码
分析(2)之 Array 相关
一、Array是一个是对象吗?首先可以肯定的是,数组是一个对象;但是在推导的过程中还是有些难以理解的问题,比如对于任意一个引用对象A,数组是协变的,所以Object[]是A[]的父类,即Object[]o=A[];数组是一个对象,所以数组的父类是Object,即Objectoo=o;那么A[]、Object[]和Object是什么关系呢?是这样吗?我们可以通过反射来观察一下:private sta
沙漏半杯
·
2019-04-26 10:53
java
jdk
源码
JDK源码
——利用模板方法看设计模式
前言:相信很多人都听过一个问题:把大象关进冰箱门,需要几步?第一,把冰箱门打开;第二,把大象放进去;第三,把冰箱门关上。我们可以看见,这个问题的答案回答的很有步骤。接下来我们介绍一种设计模式——模板方法模式,你会发现,它与这个问题的答案实际上有很多共同之处。一、定义定义一个算法骨架,允许子类为一个或多个步骤提供实现。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法的某些步骤。二、适用场景
Java高级架构狮
·
2019-04-25 20:38
JDK源码
分析(1)之 String 相关
在此之前有无数次下定决心要把JDK的源码大致看一遍,但是每次还没点开就已被一个超链接或者其他事情吸引直接跳开了。直到最近突然意识到,因为对源码的了解不深导致踩了许多莫名其妙的坑,所以再次下定决心要把常用的类全部看一遍。。。一.声明和成员变量(不可变性)public final class String implements java.io.Serializable, Comparable, Cha
沙漏半杯
·
2019-04-25 19:30
java
jdk
String
Java基础系列之你真的懂==与equals的区别吗?
阅读这篇文章之前,我希望你是对Integer和String这两个类是有所了解的,否则可以参考一下博客以加深你对这两个类的理解:1、
jdk源码
阅读笔记-String2、
jdk源码
阅读笔记-Int
rainple
·
2019-04-24 17:00
jdk源码
之线程池
好久没有写博客了,今天来写一个线程池的内容。我们先来看一个简单地例子:ThreadPoolExecutorexecutor=(ThreadPoolExecutor)Executors.newFixedThreadPool(5);executor.execute(newRunning(1));这段代码就是我们在使用线程池的时候最基本的一个使用方式了,而这里出现的几个类,ThreadPoolExecu
Debuger_工藤胖一
·
2019-04-24 17:38
服务端
java源码看一看
聊聊我的知识体系
从上面的图片我们可以看出大致分为三个部分:
JDK源码
、JVM原理、框架源码。
JDK源码
JDK源码
是一切的基础,许多框架都参考了
JDK源码
的实现思路,因此弄懂
JDK源码
是一件非常重要的事情。
陈树义
·
2019-04-23 08:00
JDK的跳表源码实现分析
阅读更多
JDK源码
中的跳表实现类:ConcurrentSkipListMap和ConcurrentSkipListSet。
fly_ever
·
2019-04-22 23:00
聊聊我的知识体系
从上面的图片我们可以看出大致分为三个部分:
JDK源码
、JVM原理、框架源码。
JDK源码
JDK源码
是一切的基础,许多框架都参考了
JDK源码
的实现思路,因此弄懂
JDK源码
是一件非常重要的
陈树义
·
2019-04-22 22:00
JDK源码
阅读(九):JUC之原子类
文章目录Atomic原子数据标量类数组类更新器类复合变量类Atomic原子数据java.util.concurrent包中atomic包中提供了一组原子变量类。其基本的特性就是在多线程环境下,当有多个线程同时执行这些类的实例包含的方法时,具有排他性,即当某个线程进入方法,执行其中的指令时,不会被其他线程打断,而别的线程就像自旋锁一样,一直等到该方法执行完成,才由JVM从等待队列中选择一个另一个线程
huyptina
·
2019-04-16 19:50
JDK源码
阅读(九):JUC之并发集合
文章目录非阻塞队列ConcurrentHashMap实现原理ConcurrentSkipListMapConcurrentSkipListSetConcurrentLinkedQueueConcurrentLinkedDequeCopyOnWriteArrayListCopyOnWriteArraySet阻塞队列ArrayBlockingQueueLinkedBlockingQueueoffer(
huyptina
·
2019-04-16 19:48
#
JDK
8
源码阅读
结合
JDK源码
看设计模式——观察者模式
前言:现在我们生活中已经离不开微信,QQ等交流软件,这对于我们来说不仅是交流,更有在朋友圈中或空间中进行分享自己的生活,同时也可以通过这个渠道知道别人的生活。我们在看朋友圈的时候其实我们扮演的就是一个观察者,朋友圈或空间里的动态可以看作是主体对象。接下来我们就介绍一下观察者模式一、定义定义了对象之间的一对多依赖,让多个观察者对象同时监听某一个主体对象,当主体对象发生变化时,它的所有观察者都会收到通
方块人
·
2019-04-14 23:00
JDK源码
那些事儿之红黑树基础下篇
说到HashMap,就一定要说到红黑树,红黑树作为一种自平衡二叉查找树,是一种用途较广的数据结构,在jdk1.8中使用红黑树提升HashMap的性能,今天就来说一说红黑树,上一讲已经给出插入平衡的调整操作,这一讲就说说更为复杂的删除平衡操作。前言限于篇幅,本文只对红黑树的基础进行说明,暂不涉及源码部分,大部分摘抄自维基百科,这里也贴出对应链接:维基百科(中文):https://zh.wikiped
orange
·
2019-04-13 00:00
数据结构
java
结合
JDK源码
看设计模式——策略模式
前言:现在电商已经成为我们生活中不可或缺的购物渠道,同时各大商家会针对不同的时间做出不同的折扣,这在我们看来就是一种营销手段,也是一种策略,今天我们就来讲讲JDK中的策略模式是怎么样的。一、定义定义了算法家族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化不会影响到使用算法的用户。可以用来消除大量的if...else结构。二、适用场景1、系统有很多类,它们的区别仅在于它们的行为不同2、一
方块人
·
2019-04-12 20:00
JDK源码
分析(11)之 BlockingQueue 相关
本文将主要结合源码对JDK中的阻塞队列进行分析,并比较其各自的特点;一、BlockingQueue概述说到阻塞队列想到的第一个应用场景可能就是生产者消费者模式了,如图所示;根据上图所示,明显在入队和出队的时候,会发生竞争;所以一种很自然的想法就是使用锁,而在JDK中也的确是通过锁来实现的;所以BlockingQueue的源码其实可以当成锁的应用示例来查看;同时JDK也为我们提供了多种不同功能的队列
三枣
·
2019-04-11 11:00
jdk源码
学习 内外部比较器(Comparator、Comparable)
在我对java的学习之初,经常遇到这两个接口,心里大概明白都是起个比较器的作用,但具体到使用场景的时候,尤其是阅读别人一些方法中精简的lambda表达式对这两个接口的应用的时候,感觉真是一脸懵逼。现在是时候做一份总结了~我们先从简单的下手,就是俗称内比较器Comparable,它的源码不要太简单://在官方注解里指出:1.如果指定的对象为空,则应抛出空指针异常//2.如果指定对象的类型禁止与本类的
古剑诛仙
·
2019-04-11 04:57
汉字的hashcode实现
1.问题来源最近想看看
JDK源码
,在看Object.hashCode()方法时,突然遗忘了java对汉字的hash处理,于是想总结下这个简单的问题。
编程吴彦祖
·
2019-04-09 22:12
如何阅读
jdk源码
?
简介这篇文章主要讲述jdk本身的源码该如何阅读,关于各种框架的源码阅读我们后面再一起探讨。笔者认为阅读源码主要包括下面几个步骤。设定目标凡事皆有目的,阅读源码也是一样。从大的方面来说,我们阅读源码的目的是为了提升自己的技术能力,运用到工作中,遇到问题快速定位,升职加薪等等。从小的方面来说,阅读某一段源码的目的就是要搞清楚它的原理,就是死磕,就是那种探索真相的固执。目的是抽象的,目标是具体的,我们阅
彤哥读源码
·
2019-04-07 22:00
如何阅读
jdk源码
?
简介这篇文章主要讲述jdk本身的源码该如何阅读,关于各种框架的源码阅读我们后面再一起探讨。笔者认为阅读源码主要包括下面几个步骤。设定目标凡事皆有目的,阅读源码也是一样。从大的方面来说,我们阅读源码的目的是为了提升自己的技术能力,运用到工作中,遇到问题快速定位,升职加薪等等。从小的方面来说,阅读某一段源码的目的就是要搞清楚它的原理,就是死磕,就是那种探索真相的固执。目的是抽象的,目标是具体的,我们阅
彤哥读源码
·
2019-04-07 22:43
java
源码
阅读
JDK源码
那些事儿之红黑树基础上篇
说到HashMap,就一定要说到红黑树,红黑树作为一种自平衡二叉查找树,是一种用途较广的数据结构,在jdk1.8中使用红黑树提升HashMap的性能,今天就来说一说红黑树。前言限于篇幅,本文只对红黑树的基础进行说明,暂不涉及源码部分,大部分摘抄自维基百科,这里也贴出对应链接:维基百科(中文):https://zh.wikipedia.org/wiki...维基百科:https://en.wikip
orange
·
2019-04-05 00:00
java
结合
JDK源码
看设计模式——简单工厂、工厂方法、抽象工厂
工厂类负责创建的对象较少,客户端只关心传入工厂类的参数,对于如何创建对象的逻辑不关心缺点:如果要新加产品,就需要修改工厂类的判断逻辑,违背软件设计中的开闭原则,且产品类多的话,就会使得简单工厂类比较复杂在
jdk
方块人
·
2019-03-30 18:00
线程池运行模型源码全解析
查看
JDK源码
的方式在IDE中,例如IDEA里,我们可以点击我们样例代码
兜里有辣条
·
2019-03-24 00:00
java
Redis源码和java
jdk源码
中hashcode的不同实现
一.redis实际上是使用了siphash这个比较简单,我说的简单是指redis代码比较少不像jdk一样调用C++代码调用栈非常深。先看这个rehashing.c主要就是dictKeyHash函数,需要调用dict.h头文件中定义的dictGenHashFunction#include"redis.h"#include"dict.h"void_redisAssert(char*x,char*y,i
21aspnet
·
2019-03-22 19:26
Java
算法和数据结构
Redis
JDK源码
——单例模式
JDK源码
中单例模式的应用1、Runtime类Runtime类封装了Java运行时的环境。
董小花
·
2019-03-21 12:26
JDK源码
单例模式
JDK源码
设计模式
JDK 源码阅读 :ByteBuffer
来源:木杉的博客,imushan.com/2018/08/07/java/language/
JDK源码
阅读-ByteBuffer/Buffer是JavaNIO中对于缓冲区的封装。
wx5c876b324f33b
·
2019-03-20 15:39
Java
办公软件
深入理解Java虚拟机 CentOS编译Open
JDK源码
总结
编译的进行参考1.安装mercurial先更新listsudoyumupdate安装mercurialsudoyuminstallmercurial验证安装成功hg命令显示帮助信息hg2.下载Open
JDK
qq_26814945
·
2019-03-14 14:48
Java虚拟机
并发系列(1)之 Thread 详解
梳理Java线程的整体脉络;一、线程概述对于Java中的线程主要是依赖于系统的API实现的,这一点可以从java.lang.Thread;源码中关键的方法都是native方法看出,也可以直接查看Open
JDK
三枣
·
2019-03-14 10:00
JDK源码
研究Jstack,JMap,threaddump,dumpheap的原理
bugs.openjdk.java.net/projects/JDK/issues参加OpenJDK社区:https://bugs.openjdk.java.net/projects/JDK/issuesopen
jdk
21aspnet
·
2019-03-13 19:11
Java
上一页
26
27
28
29
30
31
32
33
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他