Collections.shuffle()源码分析
摘要:Java.util.Collections类下有一个静态的shuffle()方法,如下: 1)static void shuffle(List<?> list) 使用默认随机源对列表进行置换,所有置换发生的可能性都是大致相等的。 2)static void shuffle(List<?> list,
阅读全文
posted @
2017-06-21 23:14
kosamino
阅读(3626)
推荐(0) 编辑
java集合继承关系图
摘要:面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合就是存储对象最常用的一种方式。 数组虽然也可以存储对象,但长度是固定的;集合长度是可变的,数组中可以存储基本数据类型,集合只能存储对象。 集合类的特点:集合只用于存储对象,集合长度是可变的,集合可以存储不同
阅读全文
posted @
2017-06-21 01:24
kosamino
阅读(58508)
推荐(13) 编辑
ArrayList和LinkedList的区别
摘要:ArrayList和Vector使用了数组的实现,可以认为ArrayList或者Vector封装了对内部数组的操作,比如向数组中添加,删除,插入新的元素或者数据的扩展和重定向。 LinkedList使用了循环双向链表数据结构。与基于数组ArrayList相比,这是两种截然不同的实现技术,这也决定了它
阅读全文
posted @
2017-06-21 00:14
kosamino
阅读(685)
推荐(0) 编辑
ArrayList的实现原理
摘要:目录: 一、 ArrayList概述 二、 ArrayList的实现 1) 私有属性 2) 构造方法 3) 元素存储 4) 元素读取 5) 元素删除 6) 调整数组容量 7)转为静态数组toArray 总结 一、 ArrayList概述: ArrayList是基于数组实现的,是一个动态数组,其容量能
阅读全文
posted @
2017-06-20 00:38
kosamino
阅读(457)
推荐(0) 编辑
session以及分布式服务器session共享
摘要:一、session的本质 http协议是无状态的,即你连续访问某个网页100次和访问1次对服务器来说是没有区别对待的,因为它记不住你。 那么,在一些场合,确实需要服务器记住当前用户怎么办?比如用户登录邮箱后,接下来要收邮件、写邮件,总不能每次操作都让用户输入用户名和密码吧,为了解决这个问题,sess
阅读全文
posted @
2017-06-14 01:29
kosamino
阅读(409)
推荐(0) 编辑
静态代理和动态代理
摘要:一、代理概念 为某个对象提供一个代理,以控制对这个对象的访问。 代理类和委托类有共同的父类或父接口,这样在任何使用委托类对象的地方都可以用代理对象替代。代理类负责请求的预处理、过滤、将请求分派给委托类处理、以及委托类执行完请求后的后续处理。 图1:代理模式 从图中可以看出,代理接口(Subject)
阅读全文
posted @
2017-06-14 01:10
kosamino
阅读(306)
推荐(0) 编辑
Java动态代理机制详解(类加载,JDK 和CGLIB,Javassist,ASM)
摘要:class文件简介及加载 Java编译器编译好Java文件之后,产生.class 文件在磁盘中。这种class文件是二进制文件,内容是只有JVM虚拟机能够识别的机器码。JVM虚拟机读取字节码文件,取出二进制数据,加载到内存中,解析.class 文件内的信息,生成对应的 Class对象: class字
阅读全文
posted @
2017-06-14 00:48
kosamino
阅读(1858)
推荐(2) 编辑
HashMap的hash冲突解决方案
摘要:Hash函数 非哈希表的特点:关键字在表中的位置和它之间不存在一个确定的关系,查找的过程为给定值一次和各个关键字进行比较,查找的效率取决于和给定值进行比较的次数。 哈希表的特点:关键字在表中位置和它之间存在一种确定的关系。 哈希函数:一般情况下,需要在关键字与它在表中的存储位置之间建立一个函数关系,
阅读全文
posted @
2017-06-11 16:58
kosamino
阅读(23481)
推荐(1) 编辑
HashMap实现原理及源码分析
摘要:HashMap实现原理及源码分析 哈希表(hash table)也叫散列表,是一种非常重要的数据结构,应用场景及其丰富,许多缓存技术(比如memcached)的核心其实就是在内存中维护一张大的哈希表,而HashMap的实现原理也常常出现在各类的面试题中,重要性可见一斑。本文会对java集合框架中的对
阅读全文
posted @
2017-06-11 15:08
kosamino
阅读(520)
推荐(0) 编辑
Map、Set、List集合差别及联系详解
摘要:提到集合之前,先说说数组Array和集合的区别: (1)数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型) (2)JAVA集合可以存储和操作数目不固定的一组数据。 (3)若程序时不知道究竟需要多少对象,需要在空间不足时自动扩增容量,则需要使用容器类库,array不适用。 F
阅读全文
posted @
2017-06-05 23:08
kosamino
阅读(37807)
推荐(4) 编辑