logo头像

BUG本天成,妙手偶得之

JAVA中有趣的移位操作

<<, >>, >>> 这些符号什么意思?有哪些容易被遗漏的细节? 上次介绍了JAVA中有趣的位运算,知道了位运算是直接对一个整形的二进制位进行操作,效率上比起加减乘除高不少,因此常运用在...

JAVA中有趣的位运算

&, |, ^, ~ 这些符号什么意思?有什么妙用?一起来感受它们的神奇吧~ 当我们看一些源码的时候,经常会看到诸如 &、|、^、~ 的符号,这些就是位运算符。 位运算是直接对一个整形的二进制位进行操作,效率上比起...

源码分析 - JVM关闭钩子的注册和调用

通过关闭钩子,我们可以在应用关闭时做一些自定义的操作,让程序更优雅的结束。 JAVA程序运行在虚拟机上(JVM),JAVA程序执行完成,JVM也随之关闭。关闭的方式有多种,根据其行为的文明程度可大概分为两种: 正常关闭 所有普...

JAVA泛型与类型擦除

泛型的本质是参数化类型,这种参数类型可以用在类、接口和方法的创建中。泛型是在JAVA 1.5版本中才引入的,它能和以前的版本兼容的原因是泛型信息只存在于代码编译阶段,在进入 JVM 之前,与泛型相关的信息会被擦除掉,即类型擦除。 ...

JAVA中的String真的不可变吗

String是不可变的吗?是的!真想变?也行~ 我们都知道,String是不可变对象,即一旦创建,那么就不能改变它的状态。对此,我们来分析一波。 String的内部构造小心翼翼进入String的内部,我们可以看到它是一个final...