先上别人的源码分析http://www.cnblogs.com/roucheng/p/jdkfenxi.html 具体需要注意的几点: 1、默认new ArrayList()时创建一个长度为0的数组。当添加新元素的时候,如果是这种方式添加的则直接将数组长度扩展到10。 ...
分类:
其他好文 时间:
2016-10-08 13:56:01
阅读次数:
145
简述:int与Integer的区别: 对于它们,我们可能只是知道简单的区别。Integer是int的一个封装类,int的初始值为0,而Integer的初始值为null。但是他们之间真的仅仅只有这些区别吗?我觉得答案是否定的,于是我决定深入到jdk源码中一探究竟。看看Integer与int到底有什么区 ...
分类:
其他好文 时间:
2016-10-06 00:04:32
阅读次数:
178
1、首先下载jdk源码文件.tar.gz文件 2、以root用火解压 sudo tar -zxvf .tar.gz 3、在etc/profile文件添加如下内容即可 4、装之前使用java -version 看一下有没有OpenJdk,如果有请先卸载,在进行安装。我是新装的系统,查看后没有 5、之后 ...
分类:
系统相关 时间:
2016-10-02 13:06:50
阅读次数:
168
我有一个不知道是好还是不好的习惯,搞不懂的一些玩意儿,喜欢调试然后单步执行看这玩意儿到底是怎么运行的. 今天看到正则表达式的时候,appendReplacement()这个方法怎么也看不明白它是怎么工作的,于是想调试源码单步执行,然后watch几个关键的变量看看. 刚开始的时候,eclipse里调试 ...
分类:
其他好文 时间:
2016-10-02 06:42:20
阅读次数:
203
之前我们实现了迭代器模式,很多编程语言实际上已经内置了迭代器类,比如Java就为我们实现了迭代器Iterator。我们首先来看Iterator中的源码。 通过JDK源码我们发现Iterator是一个接口,包含三个方法:hasNext、next、remove。 Iterator是一个接口,那如何来创建 ...
分类:
编程语言 时间:
2016-09-30 07:45:37
阅读次数:
173
转载请注明源地址:http://www.cnblogs.com/lighten/p/5906359.html 1. 编译环境的准备 1.1 JDK源码下载 OpenJDK是JAVA发展史中的一个开源项目,本文以OpenJDK8为例进行编译。OpenJDK的官网为:http://openjdk.jav ...
分类:
编程语言 时间:
2016-09-25 18:40:00
阅读次数:
1154
对于观察者模式,其实Java已经为我们提供了已有的接口和类。对于订阅者(Subscribe,观察者)Java为我们提供了一个接口,JDK源码如下: 和我们上一篇实现的观察者一样,仅提供一个update方法用于接收通知者的通知做出相应改变。 我们再来看看Java为我们提供了一个怎样的通知者(Publi ...
分类:
编程语言 时间:
2016-09-15 01:00:15
阅读次数:
236
一直想好好看看jdk的源码,虽然可以直接解压jdk下的src看,但是终究不方便!后来发现可以导入到eclipse中,就在网上找了一些方法,下面就和大家分共享: step1:打开eclipse选择Window->Preference step2:选择Java->Installed JREs step3 ...
分类:
系统相关 时间:
2016-09-06 10:33:47
阅读次数:
247
在进一步解读String类时,先了解下内存分配和数据存储的。 数据存储 1.寄存器:最快的存储区,位于处理器的内部。由于寄存器的数量有限,所以寄存器是按需分配。 2.堆栈:位于RAM中,但是通过堆栈指针可以从处理器哪里获得直接支持。堆栈指针向下移动,则分配新的内存;堆栈指针向上移动释放内存。 注:堆 ...
分类:
其他好文 时间:
2016-09-01 02:12:44
阅读次数:
177
最近在学习java多线程方面的东西,在此希望把自己学到的东西做做总结,要想搞清楚实现原理,源码是最好的老师,因此这篇我打算从实践+源码角度来进行分析以下几个问题:
(1):Calla...
分类:
其他好文 时间:
2016-08-31 19:05:12
阅读次数:
319