因为不知道存活到JDK8中有哪些著名的Bug?难道这就是老板不给我涨薪的原因?

点关注,不迷路;持续更新Java相关技术及资讯!!!
内容源于群友投稿!感谢支持!

在CopyOnWriteArrayList 和ArrayList 的构造函数中:

你连存活到JDK8中著名的Bug都不清楚,我怎么敢招聘你

6260652 这个编号代表JDK bug库中的编号

http://bugs.java.com/bugdatabase/view_bug.do?bug_id=6260652

http://bugs.java.com/bugdatabase/view_bug.do?bug_id=6515694

这2个bug是同一个问题。这个bug是什么意思呢?

test1

你连存活到JDK8中著名的Bug都不清楚,我怎么敢招聘你

SubClass 继承自BaseClass,由于SubClass数组中每一个元素都是SubClass对象,所以BaseClass[]
baseArray =
subArray;这种强制类型转换不会报错。这其实就是java对象的向上转型,子类数组转换成父类数组是允许的。但是由于数组中元素类型都是SubClass类型的,所以
baseArray[0] = new
BaseClass();会报错java.lang.ArrayStoreException。这也就是说假如我们有1个Object[]数组,并不代表着我们可以将Object对象存进去,这取决于数组中元素实际的类型。

test2

你连存活到JDK8中著名的Bug都不清楚,我怎么敢招聘你

List list =
Arrays.asList(“abc”);需要注意,可以知道返回的实际类型是java.util.Arrays$ArrayList,而不是ArrayList。我们调用

Object[] objArray =
list.toArray();返回是String[]数组,所以我们不能将Object对象,放到objArray数组中。

test3

你连存活到JDK8中著名的Bug都不清楚,我怎么敢招聘你

ArrayList对象的toArray()返回就是Object[]数组,所以我们可以将任意对象存放到返回的Object[]数组中。

通过test2和test3可以看出,如果我们有1个List stringList对象,当我们调用Object[]
objectArray = stringList.toArray();的时候,objectArray
并不一定能够放置Object对象。这就是源码中的注释:c.toArray might (incorrectly) not return
Object[] (see
6260652)。为了考虑这种情况,所以源码中进行了if判断,来防止错误的数组对象导致异常。Arrays.copyOf(elementData,
size, Object[].class);这个方法就是用来创建1个Object[]数组,这样数组中就可以存放任意对象了。

一份视频可以让你在短时间内找到工作,你信吗?我信了,你精通,你也可以

靠这份视频,毕业生成功逆转全垒打

前一段时间,有一个学员,要我给他做一下面试指导,这位仁兄,怎么说呢,投了300家公司,才换来一次的面试机会,(这可把我惊呆了)也可能因为他才大四吧,没有正式的工作经验,正好,把我前几天讲的一个讲解Tomcat源码的视频以及配套的文档抛给他,没想到,几天过后,他突然来找我,说面试上了,然后他跟我说,他除了自己的技术之外,面试的时候,好多知识点问的都是我给他的视频跟文档中的,把面试官说的一愣一愣的,然后他就顺利进了一家公司,成功逆转全垒打,所以来感谢我。点此免费领取

你连存活到JDK8中著名的Bug都不清楚,我怎么敢招聘你

学习,也是有技巧的,我总结了如下几点

  1. 有自己的规划,给自己制定一个学习时间,在什么时间学完什么东西,可以以跳槽作为学习目标和检测学习结果的实践.
  2. 有相应的学习架构,现在很多的人感觉都在学习,但是学的知识比较小众或者在市面上已经接近被淘汰,这样的学习基本都是浪费时间
  3. 贪多不烂,最好有精准的学习,这个时候,有一个老师傅带你,他的经验会帮你节省很多时间,也可以帮你少走很多弯路
  4. 坚持不懈,真的,应为Java算是老牌编程语言,虽然有python这样异军突起的语言,但是短时间内,java的能量还是相当的大的,但是这样也导致,想要进军java或者有更好的发展,对你的考验也会随之提升,所以,在学习的时候,需要学到的东西的很多,这样的话就要你坚持不懈,一直学习,每天积累一点,日积月累,就会有很显著的效果的

好了,说了这么多,接下来,我就把那份帮助学员征服面试官的视频资料贡献出来和大家分享,有需要的朋友点击此处获取

接下来展示一下文档中的解析部分

一,JVM

你连存活到JDK8中著名的Bug都不清楚,我怎么敢招聘你

JVM 是可运行 Java 代码的假想计算机 ,包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收,堆 和 一个存储方法域。JVM 是运行在操作系统之上的,它与硬件没有直接的交互。

二,Spring 原理

你连存活到JDK8中著名的Bug都不清楚,我怎么敢招聘你

它是一个全面的、企业应用开发站式的解决方案, 贯穿表现层、业务层、持久层。但是Spring仍然可以和其他的框架无缝整合

三,Tomcat

你连存活到JDK8中著名的Bug都不清楚,我怎么敢招聘你

你连存活到JDK8中著名的Bug都不清楚,我怎么敢招聘你

四、MySQL

你连存活到JDK8中著名的Bug都不清楚,我怎么敢招聘你

你连存活到JDK8中著名的Bug都不清楚,我怎么敢招聘你

dubbo

你连存活到JDK8中著名的Bug都不清楚,我怎么敢招聘你

你连存活到JDK8中著名的Bug都不清楚,我怎么敢招聘你

由于篇幅有限,我只是截取一部分文档中会含有的知识点,接下来会截取出文档中含有的知识点,有需要的可以点此免费领取

猜你喜欢

转载自blog.csdn.net/yueyunyin/article/details/108642833