![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 56
cy1046090768
这个作者很懒,什么都没留下…
展开
-
HashMap实现分析
在网上看到很多关于HashMap的分析帖子,比较杂乱,于是乎写了些自己的看法。HashMap是链表散列的数据结构,它是数组和链表的结合体,HashMap的基础是一个线性的数组,数组的每一项又存放了一个链表,当我们新建一个HashMap的时候就会初始化一个table数组,这个table数组存放的是Entry类型的数据。 static class Entry<K,V> implements Map.En原创 2016-03-16 00:02:47 · 306 阅读 · 0 评论 -
java类的加载过程
一个java文件从被加载到被卸载这个生命过程,总共要经历4个阶段:加载->链接(验证+准备+解析)->初始化(使用前的准备)->使用->卸载First:加载:这一块虚拟机要完成3件事: 1.通过一个类的全限定名来获取定义此类的二进制字节流。 2.将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构。 3.在java堆中生成一个代表这个类的java.lang.Class对象,原创 2016-03-10 22:53:34 · 599 阅读 · 0 评论 -
jvm内存模型
参照深入JVM这本书1、程序计数器程序计数器(Program Counter Register)是一块较小的内存空间,它的作用可以看做是当前线程所执行的字节码的行号指示器。在虚拟机的概念模型里(仅是概念模型,各种虚拟机可能会通过一些更高效的方式去实现),字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖这个计数器来完原创 2016-03-10 23:17:50 · 487 阅读 · 0 评论 -
java try catch finally 执行顺序
结论: 不管有木有出现异常,finally块中代码都会执行; 当try和catch中有return时,finally仍然会执行; finally是在return后面的表达式运算后执行的(此时并没有返回运算后的值,而是先把要返回的值保存起来,管finally中的代码怎么样,返回的值都不会改变,任然是之前保存的值),所以函数返回值是在finally执行前确定的; finally中最好不要包含return原创 2016-07-31 17:00:12 · 361 阅读 · 0 评论