摘要: 引言 什么都先不说,先看下面这个引入的例子: 再将上面的例子加上一行代码: 是不是感觉莫名其妙,新定义的str2好像和str1没有半毛钱的关系,怎么会影响到有关str1的输出结果呢?其实这都是intern()方法搞的鬼!看完这篇文章,你就会明白。 这中间的原因和Hotspot是有很大关系的,在JVM 阅读全文
posted @ 2018-03-06 18:51 十月十四 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 不知道有没有前辈注意过,当你编写一段“废话式的代码时”会给出一个Dead Code警告,点击警告,那么你所写的废物代码会被编译器消除,那么如果你不理睬这个警告呢?编译后会是什么样的呢?下面我们写点代码,来查看一下编译后的结果,这里使用反编译工具jd-gui.exe。代码如下: 反编译 上面我们知道了 阅读全文
posted @ 2018-03-06 03:56 十月十四 阅读(235) 评论(0) 推荐(0) 编辑
摘要: 在讲解流程控制语句之前,我们先来说一下语句的问题。Java中的语句分为声明和赋值语句,条件和循环语句,调用和返回语句;我们之所以每两个放在一起是有深意的,我们大致将语句分为这三块,并以此为纲来说一下,重点在流程控制语句(条件和循环语句)。 程序就是由一系列的声明、赋值、条件、循环、调用和返回语句组成 阅读全文
posted @ 2018-03-06 03:50 十月十四 阅读(315) 评论(0) 推荐(0) 编辑
摘要: 剖析加强for 很长一段时间对于foreach都有一种误解,那就是foreach只是普通for的包装,底层还是普通for循环,直到深入了解迭代器的时候,才发现自己错了,本节就来探讨一下foreach,深入底层去了解它。下面我们通过一段代码来看一下: 想要了解它的底层实现,自然需要它编译后的代码,下面 阅读全文
posted @ 2018-03-06 02:09 十月十四 阅读(239) 评论(0) 推荐(0) 编辑