Java 10 大装大装 B 写法,看完可以出去吹牛逼了!写法,看完可以出去吹牛逼了!
想不想学习装 B 式的 Java 骚操作花式写法?
没错,本文LZ来教你!
1、集合初始化、集合初始化
集合的创建、赋值一步到位,想不想学?
来,上边跟我一起画个 List,在你下边画一个Map……
List list = new ArrayList() {{
add("www.");
add("javastack.");
add("cn");
}};
Map map = new HashMap() {{
put("1", "www.");
put("2", "javastack.");
put("3", "cn");
}};
哈哈,高大上的写法,LZ以前写过,写法虽然是很装X,然而并没有什么卵用。
2、算术、算术
static {
final int size = -(-128) + 127 + 1;
// Load and use the archived cache if it exists
VM.initializeFromArchive(ByteCache.class);
if (archivedCache == null || archivedCache.length != size) {
Byte[] c = new Byte[size];
byte value = (byte)-128;
for(int i = 0; i < size; i++) {
c[i] = new Byte(value++);
}
archivedCache = c;
}
cache = archivedCache;
}
注意到上面size的写法没有?
明明可以写成:
final int size = 256;
他非要写成:
final int size = -(-128) + 127 + 1;
这么装 B 的写法来自 JDK 包装类java.lang.Byte里面的静态方法。
为什么要这么写呢?
这样的写法在 JDK 里面有很多,大家看到这些写法都会觉得很奇怪,曾有粉丝问我这是为什么。
真正缘由无从考察,但LZ我觉得写 JDK 的大神其实就想告诉你,Byte 的 256 个数是由 -128 ~ 127 这个范围组成的,起到一
个标识数字范围的作用而已。至少 Byte 为什么取这个范围,为什么byte取值-128~127??这篇文章可以解密。
如果你知道其中的更多道道,欢迎留言分享!
3、移位、移位
/**
评论10