美文网首页Java互联网科技
用了这么长时间的JDK你发现bug了吗?

用了这么长时间的JDK你发现bug了吗?

作者: Java高级架构狮 | 来源:发表于2019-04-28 22:08 被阅读2次

用了这么长时间的JDK了,有没有老铁发现JDK的bug呢?从最早版本的JDK1.2到现在普及开的JDK1.8以来,JAVA经历了这么多年的风风雨雨, 依然坚持在一线上,是不是感觉很神奇,但是,有没有多少人去主动的去看JDK的源码?还有你写好的代码编译出来的class类,有多少兄弟们 去看这里面的内容呢?公司老大让我加了一点功能,然后编译成class类,我发现里面的代码和我写的竟然不一样,人家那排版做的,两个字 “完美”。于是突发奇想,看看JDK有没有什么BUG来让我们娱乐一下,于是就写下了这么一篇文章来记录自己的心得体会!

兴趣来了,这就有继续的欲望了,我就开始查资料并且自己手动做了测试下面我们就来汇总一下这些存在在我们开发中的一些些小小的BUG吧

JDK的Bug1–数组切割


字符串的分割,大家都用过把,split这个方法大家应该都熟悉的,但是有没有人去试过这个split去通过点来进行切割的时候会出现什么问题呢? 我们做个测试具体代码图如下:

在我们的印象中打印的结果肯定是3,但是实际情况和我们想的却完全的不一样,

打印结果却是0,但是相同的情况下我们是用其他的符号去进行切割呢?

这次打印结果却是和我们记忆中的结果完全相符了。

打印结果却是三,这是JDK的一个bug,我也不知道他为什么对点是这么的独特,难道是传统的偏爱?

所以在此得提醒做开发的各位小伙伴了,我们在使用字符串的split的时候,尽量的不要去使用点,也就是“.” ,否则你会发现有时候写了半天的代码,你自己竟然都不知道错误竟然是因为JDK的一个小的Bug所引起来的, 那时候估计你想把高斯林弄死的心都有。当然了,我是使用的现在用的最多的JDK1.8,如果说JDK1.8之后的版本, 对这个进行修复的话,各位大哥能给我提个醒也成,感谢!

JDK的Bug2–三元运算符


基本数据类型的三元运算符是可以赋值为Null的,编辑器是不会给我们报错的,但是 当程序运行的时候就会出现错误了,我们来看一下代码展示

在我们编辑代码的时候是一点不出错,但是当我们条件成立的时候就会有这种错误。

其实这个错误很容易理解,为什么呢?三元运算符,哪有这么搞得,很少会出现这种不符合常理的错误,这只能说写代码的兄弟思路很开阔,但是 也不排除会有这种情况的出现。所以得长点心,不能瞎搞不是?

JDK中不算Bug的Bug–ArrayList可通过构造函数传入非指定泛型的List并在get时出错

为什么标题会写不算Bug的Bug呢?因为这个比上面的还离谱。这是网上的网友发现的。

我们可以先看看代码展示

JSONArray arr = new JSONArray();
//com.alibaba.fastjson.JSONArray
arr.add("s");
List<long> list = new ArrayList<>(arr);
list.get(0);
//Exception cannot cast String to Long

在看到这段代码的第一时间,我就想弄死这个写代码的兄弟,你前面的泛型和后边的传入的非指定的这种,好像没有人会这么写吧, 不过后来想了一下,也不能弄死人家不是,这代码确实不报错呀!想来想去,还是觉得兄弟你有理,这个确实属于一个Bug, 但是这是写代码的人不怎么会遇到的错误问题。所以我把它放到了第三个。

总结


总结起来其实蛮简单的,JDK我们用了这么多年,毕竟也算是稳定的很,作为一个开发者,要去尝试一下这些好玩的东西,说不定什么时候就能 自己模仿出一个JDK来也说不定不是,所以Bug很多时候都是自己写出来的,作为一个合格的开发者要把自己的代码写的简单,逻辑严谨, 少出一些笑话,实现功能就可以了。

希望各位干程序员的老铁们,继续一直坚持下去。

相关文章

  • 用了这么长时间的JDK你发现bug了吗?

    用了这么长时间的JDK了,有没有老铁发现JDK的bug呢?从最早版本的JDK1.2到现在普及开的JDK1.8以来,...

  • 喜欢你,我用了这么长时间!

    “其实你可以慢一点,”星期八同学经常这么说。“至少给自己留点空间嘛” 星期一小姐每天都很忙。 忙着早上拿着一个煎饼...

  • JDK 的 3 个 bug

    JDK 的 3 个 bug 1.Annotation引用非空enum数组返回空数组 首次发现时的环境:JDK 1....

  • NIO中存在的bug—epoll空轮询

    IO&NIO介绍 NIO中epoll空轮询表现 bug原因 JDK bug列表中有两个相关的bug报告: JDK-...

  • 你可能不知道的小知识-bug为什么叫bug

    学了这么长时间的计算机,敲了很多行的代码,当然也很熟悉bug这个单词了。今天就来聊聊bug的来历。(bug就是指是...

  • 时间都去哪了?

    现代人的生活充斥着各种各样的高科技产品。在我们不知不觉之中占用了我们大部分的时间。你发现了吗?我们已经很长时间...

  • NIO的epoll空轮询bug

    NIO的epoll空轮询bug JDK NIO的BUG,例如臭名昭著的epoll bug,它会导致Selector...

  • 2019.05.06 丰盛日记

    今天用了一个上午准备给初一孩子讲的情绪管理胶片。为什么用了这么长时间呢?发现自己的老模式总是启动,总想把胶片的内容...

  • 感想 摘抄 2019-08-28(二百零四)

    游戏的BUG令人头疼,你的BUG也令人头疼;游戏的更新令人期待,你的更新让人发指。 过了这么多年,我终于发现了那些...

  • 今天的你,进步了吗

    1、今天你读书了吗? 读了多长时间? 用心了吗? 学到什么了吗? 2、今天你运动了吗? ...

网友评论

    本文标题:用了这么长时间的JDK你发现bug了吗?

    本文链接:https://www.haomeiwen.com/subject/bcssnqtx.html