- 浏览: 249350 次
- 性别:
- 来自: 北京
博客专栏
-
Java并发包源码解析
浏览量:98092
最新评论
-
746238836:
整个RingBuffer内部做了大量的缓存行填充,前后各填充了 ...
disruptor-3.3.2源码解析(2)-队列 -
xiangshouxiyang:
群加不了。。。
Jdk1.7 ForkJoin框架源码解析汇总 -
有贝无患:
acquire方法里面为什么tryAcquire会被调用多次 ...
Jdk1.6 JUC源码解析(6)-locks-AbstractQueuedSynchronizer -
zwy_qz:
library_call.cpp 里面的内联操作 inline ...
Jdk1.6 JUC源码解析(1)-atomic-AtomicXXX -
sunwang810812:
您好,正在学习您的文章,中间有一段,一直没明白:“privat ...
Jdk1.6 JUC源码解析(6)-locks-AbstractQueuedSynchronizer
文章列表
总结这个类之前,首先看一下Java引用的相关知识。Java的引用分为四种:强引用、软引用、弱引用和虚引用。
强引用:就是常见的代码中的引用,如Object o = new Object();存在强引用的对象不会被垃圾收集器回收。所以我们会在一些代码中看到显示切断强引用,以便回收相关对象的情况。
public void clear() {
modCount++;
// Let gc do its work
for (int i = 0; i < size; i++)
elementData[i] = null;
siz ...
今天遇到一个小需求:由于java.util.Properties读取属性文件时会忽略注释,当写回去的时候,注释都没了。恰好一个项目中的配置文件会在部署后被某个Java程序修改一下,但修改了之后注释全没了,可能会给以后的参数 ...
本篇总结一下两个常用的集合类HashSet和LinkedHashSet。
它们都实现了相同接口java.util.Set。Set表示一种元素无序且不可重复的集合;之前总结过的java.util.List表示一种元素可重复且有序的集合。它们都扩展自java ...
这篇总结一下java.util.IdentityHashMap。从类名上可以猜到,这个类本质应该还是一个散列表,只是前面有Identity修饰,是一种特殊的HashMap。
简单的说,IdentityHashMap和HashMap的区别在于对key的比较。
HashMap中会调用key的hashCode方法,hashCode方法可能会根据具体情况进行重写。在比较key时会用equals方法进行比较,equals方法也可能被重写。
public V put(K key, V value) {
if (key == nul ...
前面总结了java.util.HashMap,这篇来看一下HashMap的一个子类——java.util.LinkedHashMap。
先读了一下源码的注释,首先LinkedHashMap中所有的Entry组成了一个双向链表,该链表定义了内部数据的迭代顺序,通常是按key插入的顺序(最近插入的放到链表的末尾,覆盖操作不会影响链表顺序)。LinkedHashMap还提供了构造方法LinkedHashMap(int,float,boolean),如果第三个参数为true,那么内部数据的迭代顺序是按访问的某种顺序(访问时间由远到近),最近访问的数据会放到链表的末尾。这样 ...
开发中常常会用到这样一种数据结构,根据一个关键字,找到所需的信息。这个过程有点像查字典,拿到一个key,去字典表中查找对应的value。Java1.0版本提供了这样的类java.util.Dictionary(抽象类),基本上支持字典表的操 ...
表、栈和队列是三种基本的数据结构,前面总结的ArrayList和LinkedList可以作为任意一种数据结构来使用,当然由于实现方式的不同,操作的效率也会不同。
这篇要看一下java.util.ArrayDeque。从命名上看,它是一个由数组实现的双端队列。还是先看一下它实现了哪些接口。
public class ArrayDeque<E> extends AbstractCollection<E>
implements Deque<E>, Cloneable, Ser ...
ArrayList的插入和删除元素的操作会花费线性时间,那么有没有插入和删除元素比较省时的集合呢,看下LinkedList这个实现。
老样子,先看看它实现了那些接口。
public class LinkedList<E>
extends AbstractSequentialList<E>
implements List<E>, Deque<E>, Cloneable, java.io.Serializable
之前看过的接口不看了。先看下java.util.Deque。
...
工作中经常会用到Java的集合类,最近不忙了,把相关知识总结一下,便于理解记忆。
打开java.util.ArrayList的源代码,首先映入眼帘的是@author Josh Bloch(相对于源码,本人更喜欢看故事 ,每次看到一份源码, ...
由于客户环境为64位windows系统,开发环境一直用32位。tomcat使用6.0.20非安装版。部署时发现在64位系统下,注册服务后无法正常启动服务(直接运行startup.bat可以成功启动tomcat),日志中报错信息为:
引用
[174 javajni.c] [error] %1 不是有效的 Win32 应用程序。
[994 prunsrv.c] [error] Failed creating java D:\java\jre\bin\server\jvm.dll
[1269 prunsrv.c] [error] ServiceStart returned 1
...
工作中有一段时间经常使用Java的正则表达式,整理一下,做个总结。
JDK中提供了2个类来支持正则表达式,分别是java.util.regex.Pattern和java.util.regex.Matcher。前者表示一个模式,后者表示一个匹配器。
我们在日常使用中,一般会根据需要,建立一个模式。模式的构建通过下面方法:
public static Pattern compile(String regex) {
return new Pattern(regex, 0);
}
或者
public stat ...
Java获取网络时间
- 博客分类:
- 琐碎
最近项目中涉及到一个时间验证的问题,需要根据当前时间来验证业务数据是否过期。所以直接写代码如下:
new java.util.Date().getTime();
结果测试的时候出现了问题,怎么验证都是过期。后来发现是服务器主机时间不对。也就是说如果服务器时间不准确或者被篡改,那么验证这部分会出现问题。所以决定采用获取网络当前时间来代替获取系统当前时间。
搜索了一下,原来获取网络时间有一个协议:Network Time Protocol(NTP: 网络时间协议 )。
协议有了,那么java有没有相关实现呢。当然也有了。apac ...