
java
马克吐温
奋斗 努力 不要当咸鱼
展开
-
HashMap原理和rehash解释
采用hash结构的容器,除了采用hash算法来决定集合中元素的位置并通过hash算法来控制集合的大小HashMap的内部实现机制HashMap的内部实现机制是对数据结构中哈希表(Hash Table)的实现,Hash表又叫散列表。Hash表是根据关键码Key来访问其对应的值Value的数据结构,他是通过一个映射函数把关键码映射到表中一个位置来访问该位置的值,从而加快查找原创 2016-09-24 13:06:30 · 23258 阅读 · 0 评论 -
Java动态代理的方式解释
Java动态代理的两种实现方法参考:http://blog.youkuaiyun.com/heyutao007/article/details/49738887 AOP的拦截功能是由java中的动态代理来实现的。说白了,就是在目标类的基础上增加切面逻辑,生成增强的目标类(该切面逻辑或者在目标类函数执行之前,或者目标类函数执行之后,或者在目标类函数抛出异常时候执行。不同的切入时机对应不同的Interce原创 2017-04-04 16:03:02 · 415 阅读 · 0 评论 -
手写实现HashMap代码
了解HashMap底层=数组+链表 HashMap通过链表法来解决hash冲突public interface DIYMap { //Map双列集合 基本功能是 快速取 public V put(K k,V v); //快速取 public V get(K k); //定义一个内部接口 public interface Entry{ public K get原创 2017-05-08 20:44:54 · 6792 阅读 · 3 评论 -
集合迭代时候操作解决方案-ArrayList-Iterator-CopyOnWriteArrayList
1、集合在使用iterator迭代器,迭代集合的时候,不可以对集合类进行操作,否则会通过jdk java代码fail-fast(快速报错机制)抛出异常。fail-fast(快速报错机制)解释(fail-fast机制它是Java集合的一种错误检测机制):集合的内部都维护了一个modCount(版本号),在每一次put、remove的时候,都会对版本号加1。当获取结合的iterator,会原创 2017-05-08 20:30:30 · 974 阅读 · 1 评论 -
哈希表中数组的容量为什么是质数
哈希表中数组的容量为什么是质数 1、HASH函数需要把原始数据均匀地分布到HASH数组里,比如大部分是偶数,这时候如果HASH数组容量是偶数,容易使原始数据HASH后不会均匀分布: 2 4 6 8 10 12这6个数,如果对 6 取余 得到 2 4 0 2 4 0 只会得到3种HASH值,冲突会很多。如果对 7取余 得到 2 4 6 1 3 5 得到6种HASH值,没有原创 2017-05-01 23:53:48 · 4278 阅读 · 0 评论 -
ThreadLocal学习总结
ThreadLocal学习总结 参考:http://m.blog.youkuaiyun.com/article/details?id=10362063ThreadLocal会被他的英文名称误导,其不是一个线程的本地实现版本,它并不是一个Thread,而是ThreadLocalVariable(线程局部变量),命名为ThreadLocalVar更加合适。 线程局部变量(ThreadL原创 2017-04-04 15:25:35 · 434 阅读 · 0 评论 -
通过反编译深入理解Java String及intern(笔记整理二)
主要是通过反编译 javap -v 命令 来看代码的执行String是一个特殊的包装类数据。可以用:String str = new String("abc"); String str = "abc"; 两种的形式来创建,第一种是用new()来新建对象的,它会在存放于堆中。每调用一次就会创建一个新的对象。而第二种是先在栈中创建一个对String类的对象引用变量s原创 2017-03-18 22:24:48 · 459 阅读 · 0 评论 -
Java对象的序列化和反序列化
Java对象的序列化和反序列化详细参见:http://www.cnblogs.com/xdp-gacl/p/3777987.html 一、序列化和反序列化的概念把 对象 转换为字节序列 的过程称为对象的序列化。把 字节序列 恢复为对象 的过程称为对象的反序列化。 二、对象序列化的俩个用途:1)把对象的字节序列永久地保存到硬盘上,通常保存在一个文件中2)在原创 2017-02-23 21:47:33 · 324 阅读 · 0 评论 -
通过反编译深入理解Java String及intern
通过反编译深入理解Java String及intern 一、字符串问题 二、字符串深入分析(对问题三的深入分析,结合jdk6,7的区别) 三、常见面试题解答翻译 2017-02-14 21:48:27 · 380 阅读 · 0 评论 -
java异常分类和常见异常
异常类分两大类型:Error类代表了编译和系统的错误,不允许捕获;Exception类代表了标准Java库方法所激发的异常。Exception类还包含运行异常类Runtime_Exception和非运行异常类Non_RuntimeException这两个直接的子类。运行异常类对应于编译错误,它是指Java程序在运行时产生的由解释器引发的各种异常。运行异常可能出现翻译 2017-02-20 21:51:26 · 7324 阅读 · 1 评论 -
enum枚举应用讲解
枚举的应用主要是,对enum类型,添加自定义的属性,增加构造方法,增加自定义方法(抽象方法),对自定义的属性维护方便详见:参考代码示例31、自定义枚举,剖析枚举原理2、使用枚举enum,查看常用方法3、枚举应用举例4、枚举可以作为快速实现单例的一种方式1、/** * 自定义枚举类 * 枚举相当于一个类,其中也可以定义构造方法、成员变量、普通方法和抽象原创 2017-07-16 17:29:20 · 587 阅读 · 0 评论