这是我参与「掘金日新计划 · 2 月更文挑战」的第 3 天,点击查看活动详情。我们直接来到hotspot的代码,为了高效我直接在github搜的,github网页版hotspot源码,当然也可以在oracle下载源码阅读,oracle下载hotspot源码。
因为 JMH 是 JDK9 自带的,如果是 JDK9 之前的版本需要加入如下依赖:编写基准测试。接下来,创建一个 JMH 测试类,用来判断 + 和 StringBuilder.append 两种字符串拼接哪个耗时更短,具体代码如下所示:其中需要测试的方法用 @Benchmark 注解标识,这些注解的具体含义将在下面介绍。
当一个线程修改了一个volatile变量的值,这个修改对其他线程是立即可见的,也就是说,如果一个线程修改了一个volatile修饰的变量的值,那么其他线程在读取这个变量的值时会立刻看到最新修改的值,而不会使用之前的缓存值。
【官方通报:淫秽漫画作者JM制贩淫秽暴力漫画被刑拘】23日,@扫黄打非 通报:近期,网民反映淫秽漫画作者JM,通过互联网涉嫌非法销售淫秽色情、血腥暴力漫画。全国“扫黄打非”办公室接到举报线索,部署辽宁省“扫黄打非”部门核查侦办。
全国“扫黄打非”办公室23日通报,根据网民反映淫秽漫画作者JM通过互联网涉嫌非法销售淫秽色情、血腥暴力漫画《战争即和平》《帝国社会》线索,全国“扫黄打非”办第一时间部署辽宁省“扫黄打非”部门查办。目前,蒋某某(JM为其化名)因涉嫌制作淫秽物品牟利罪被沈阳公安机关刑事拘留。
Java栈 Java Stack:Java栈总是与线程关联在一起的,每当创建一个线程,JVM就会为该线程创建对应的Java栈,在这个Java栈中又会包含多个栈帧,这些栈帧是与每个方法关联起来的,每运行一个方法就创建一个栈帧,每个栈帧会含有一些局部变量、操作栈和方法返回值等信息。