JxtaMulticastSocket覆写了java.net.MulticastSocket的bind方法: @Override public void bind(SocketAddress addr) throws SocketException { if (isBound()) { throw new SocketException("Already bound"); } }   要求在JxtaMulticastSocket的构造函数中会调用bind方法,确保构造函数调用时sock…
一.前言 上篇认真的分析了在JDK7下的HashMap, 如果还没看过的或者忘记了的可以先去回顾下,这样可以更好的了解JDK8下的HashMap基于JDK7做了什么改动.分析JDK8下的HashMap 主要是因为JDK8在目前使用已成主流,且其在某些性能程度远远大于JDK7.下面逐一分析.   二.内部结构 其实大部分结构跟JDK7是一样的, 比如是基于数组+链表的形式构成的.下面主要分析下引入新的变量或者有改变的: 2.1 容器:数组 transient Node<K,V>[] table;…
[z]http://lovestblog.cn/blog/2016/04/24/classloader-unload/ 概述 这篇文章基于最近在排查的一个问题,花了我们团队不少时间来排查这个问题,现象是有一些类加载器是作为key放到WeakHashMap里的,但是经历过多次full gc之后,依然坚挺地存在内存里,但是从代码上来说这些类加载器是应该被回收的,因为没有任何强引用可以到达这些类加载器了,于是我们做了内存dump,分析了下内存,发现除了一个WeakHashMap外并没有别的GC ROO…
JDK8中Object类提供的方法: package java.lang; /** * Class {@code Object} is the root of the class hierarchy. * Every class has {@code Object} as a superclass. All objects, * including arrays, implement the methods of this class. * * @author unascribed * @see…
接口 在java8中,接口可以定义变量和方法,其中变量必须为 public && static && final: 方法必须为public && (abstract || default || static). jdk8只能通过接口类调用接口中的静态方法,但是对于default方法来说,如果两个接口中定义了相同方法签名的default方法,且实现类同时继承了两个接口.则在编译时会报错.此时可以让实现类重写该方法. 抽象类 包含一个或多个抽象方法的类,必须被申…
参考这里 修改pom.xml webx的依赖改为3..6版 <dependency> <groupId>com.alibaba.citrus</groupId> <artifactId>citrus-webx-all</artifactId> <version></version> </dependency> 添加velocity的依赖,我用了1. <dependency> <groupId&…
由于JDK8的doc生成机制比之前的要严谨许多,导致项目用maven打包的时候出错 解决办法: 添加-Xdoclint:none配置 完整配置如下:   <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> <version>2.9</version> <executions…
一. ArrayList class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable ​ ArrayList是基于数组实现的,是一个动态数组,其容量能够自动增长 ​ ArrayList是线程不安全的 ​ 实现了RandomAccess接口,所以支持快速访问, ​ 实现了Cloneable 接口, 能够被克隆 ​ 实…
下载jdk8安装包,地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html下载7-zip解压工具包并安装,地址:32位版:http://downloads.sourceforge.net/sevenzip/7z920.exe64位版:http://downloads.sourceforge.net/sevenzip/7z920-x64.msi将下载所得java安装包放到将要安装的…
1. HashMap 在JDK 7 与 JDK8 下的差别 顺便理一下HashMap.get(Object key)的几个关键步骤,作为后面讨论的基础. 1.1 获取key的HashCode并二次加工 因为对原Key的hashCode质量没信心,怕会存在大量冲突,HashMap进行了二次加工. JDK7的做法: h ^= (h >>> 20) ^ (h >>> 12);return h ^ (h >>> 7) ^ (h >>> 4);…