Java疑难杂症
文章平均质量分 92
汤高
喜欢开源的框架技术、乐于研究其底层源码,把个人从学习到工作中用到的所有技术梳理总结,也分享给所有爱学习新技术的朋友们,相互交流,一起进步
展开
-
Java类加载原理机制
1.类的加载过程 JVM将类加载过程分为三个步骤:装载(Load),链接(Link)和初始化(Initialize)链接又分为三个步骤,如下图所示:1) 装载:查找并加载类的二进制数据;2)链接:验证:确保被加载类的正确性;准备:为类的静态变量分配内存,并将其初始化为默认值;解析:把类中的符号引用转换为直接引用;3)初始化:为类的静态变量赋予正确的原创 2016-05-24 22:11:47 · 976 阅读 · 0 评论 -
Java HashCode详解
一、为什么要有Hash算法Java中的集合有两类,一类是List,一类是Set。List内的元素是有序的,元素可以重复。Set元素无序,但元素不可重复。要想保证元素不重复,两个元素是否重复应该依据什么来判断呢?用Object.equals方法。但若每增加一个元素就检查一次,那么当元素很多时,后添加到集合中的元素比较的次数就非常多了。也就是说若集合中已有1000个元素,那么第1001个元素加入集原创 2016-05-26 11:33:09 · 3076 阅读 · 1 评论 -
Java 内存区域和GC机制
Java垃圾回收概况 Java GC(Garbage Collection,垃圾收集,垃圾回收)机制,是Java与C++/C的主要区别之一,作为Java开发者,一般不需要专门编写内存回收和垃圾清理代 码,对内存泄露和溢出的问题,也不需要像C程序员那样战战兢兢。这是因为在Java虚拟机中,存在自动内存管理和垃圾清扫机制。概括地说,该机制对 JVM(Java Virtual Machine)中的转载 2016-05-18 19:22:29 · 801 阅读 · 0 评论 -
hash算法原理详解
一.概念哈希表就是一种以 键-值(key-indexed) 存储数据的结构,我们只要输入待查找的值即key,即可查找到其对应的值。哈希的思路很简单,如果所有的键都是整数,那么就可以使用一个简单的无序数组来实现:将键作为索引,值即为其对应的值,这样就可以快速访问任意键的值。这是对于简单的键的情况,我们将其扩展到可以处理更加复杂的类型的键。使用哈希查找有两个步骤:1. 使用哈希函数将被原创 2016-05-19 22:35:01 · 246402 阅读 · 23 评论 -
JVM指令集及各指令的详细使用说明
一、JVM指令助记符1)操作数栈变量到操作数栈:iload,iload_,lload,lload_,fload,fload_,dload,dload_,aload,aload_操作数栈到变量:istore,istore_,lstore,lstore_,fstore,fstore_,dstore,dstor_,astore,astore_常数到操作数栈:bipush,sipush转载 2016-11-21 16:43:00 · 6661 阅读 · 0 评论 -
JDK动态代理的底层实现原理
代理模式定义存在一个代理对象,并且这个代理对象持有真实对象的引用,以实现对真实对象的访问控制。举个例子,现在公司一般都有VPN,使我们在家也能访问到公司的内网(比如连接公司的数据库等),实现居家办公。这里VPN相当于一个代理,而公司内网相当于被代理对象,也就是真实对象。我们不能直接访问公司内网(真实对象),但是我们通过VPN(代理对象),输入身份信息,确认无误后就可以访问到公司内网。这就是原创 2017-09-29 10:59:22 · 8203 阅读 · 4 评论