Java基础篇+源码分析:让自己不在简单
主要讲解Java基础,附带源码分析
黄金鸡米花
这个作者很懒,什么都没留下…
展开
-
【Java集合篇】jdk8的HashMap源码分析
文章目录前言:Java7的HashMap链接:一.HashMap底层是怎么存储的?Entry是什么?1.Node是什么(JDK7中的Entry)?2.默认大小:3.为什么Java8的HashMap是数组+链表+红黑树?二、构造器1.调用无参构造器,底层table实例化了吗?2.调用有参构造器,底层table实例化了吗?3.总结三、put方法:底层数组的实例化,就在这里啊!!!!1.调用无参构造器后,第一次调用put方法2.何时采用红黑树?四.jdk8中的几个重要的常量五.jdk7到jdk8为什么要进行修改?原创 2020-07-13 17:33:23 · 468 阅读 · 5 评论 -
【Java集合篇】jdk7的HashMap源码分析
文章目录前言:一.HashMap底层是怎么存储的?Entry是什么?1.默认大小:2.Entry是什么?3.为什么Java7的HashMap是数组+链表二、构造器1.调用无参构造器,底层数组长度是多少?2.调用一个参数的构造器,指定长度为15,底层数组长度是15吗?3.核心构造器,答案就在其中。。4.总结三、put方法1.put方法流程图:2.为什么HashMap可以添加null元素?(强烈建议从put方法开始阅读)3.为什么HashMap中的元素一定要重写hashCode()和equals()?(强烈建议原创 2020-07-11 10:08:51 · 697 阅读 · 7 评论 -
Java int128转换为byte为啥是-128?
class BinaryTest{ public static void main(String[] args){ int intNumber=128;//定义一个int的值 byte byteNumber=(byte)intNumber;//将int值转换为byte类型 System.out.println(byteNumber); }}运行结果:知识铺垫:...原创 2019-12-27 15:38:15 · 2302 阅读 · 7 评论 -
Java num+=1、num++与num=num+1的区别(通俗易懂,附带例子)
知识预热:(看到最后有彩蛋)1、在Java中,默认的整形常量的类型是int类型。2、如果int类型转换为short类型,那么不强制转换必定会报错。那么问题来了:已知条件:short num=10;情况一:num=num+2;情况二:num+=1;请问上面的两种情况是否会报错?如果不会那么结果是多少呢?情况一:情况二:总结:1、情况一:因为在Java中常量的默认...原创 2019-12-28 09:14:00 · 7614 阅读 · 9 评论 -
【Java集合篇】对比JDK7和8深度剖析ArrayList(只要看,就能懂)
前言:如果作为java开发工程师,大家都使用过List的主要实现类ArrayList,那么你真的懂他吗?1.ArrayList是单列的、存储有序的、可重复的、线程不安全的,但是你知道为什么吗?2.是不是感觉ArrayList与数组非常相似? 那么为什么ArrayList不会下标越界呢?那ArrayList底层做了什么呢?3.如题:从java7到java8进行了哪些迭代?为什么要这样做?java8的ArrayList是什么样子的?java7的ArrayList是什么样子的?4原创 2020-07-05 20:29:42 · 1433 阅读 · 9 评论