Java 10 大装 B 写法,看完可以出去吹牛逼了!

简介: Java 10 大装 B 写法,看完可以出去吹牛逼了!

想不想学习装 B 式的 Java 骚操作花式写法?

没错,本文栈长来教你!

1、集合初始化

集合的创建、赋值一步到位,想不想学?

来,上边跟我一起画个 List,在你下边画一个Map……image.png哈哈,高大上的写法,栈长以前写过,写法虽然是很装X,然而并没有什么卵用。

2、算术image.png注意到上面 size 的写法没有?

明明可以写成:image.png这么装 B 的写法来自 JDK 包装类 java.lang.Byte 里面的静态方法。


为什么要这么写呢?


这样的写法在 JDK 里面有很多,大家看到这些写法都会觉得很奇怪,Java技术栈微信群里、知识星球里面有曾有粉丝问我这是为什么。


真正缘由无从考察,但栈长我觉得写 JDK 的大神其实就想告诉你,Byte 的 256 个数是由 -128 ~ 127 这个范围组成的,起到一个标识数字范围的作用而已。至少 Byte 为什么取这个范围,为什么byte取值-128~127?? 这篇文章可以解密。


如果你知道其中的更多道道,欢迎留言分享!


3、移位image.png这两个变量来自 java.util.HashMap 源码,你可能也非常好奇为什么不直接写成数字,要弄一个移位骚操作?


这是在告诉开发者,HashMap 的容量大小必须是 2 的幂次,不然会造成空间浪费。另外,HashMap 容量为什么总是为 2 的次幂?,这篇推荐看下。


4、复制变量

image.png而要重新定义一个 vs 来绕一个弯呢?


这样写不是更简单么?


JDK里面大量这样的写法,这是为什么呢?!


那是因为操作局部变量要比读取全局变量要更快,另外,我个人觉得还有一个好处,再申明一下局部变量,可以很明显的看到这个变量的类型,而不要翻到上面或者用鼠标移上去来看变量类型。


另外提一点,上面的复制变量再操作的方式让我想到了 CopyOnWriteArrayList,这也是让当前变量不被其他线程改变保证当前线程变量一致性的一种方式。


写 JDK 源码的都是大神啊,透过源码,我们能学到太多东西!


5、泛型

来看一段泛型的灵活运用:image.png这个泛型方法写得牛 X 吧,泛型 T、R、通配符(?)、上边界(extends)和下边界(super)都用上了!


常用的泛型含义:


T - Type(类型)

R - Result(结果)

K - Key(键)

V - Value(值)

E - Element (元素)

N - Number(数字)

? - 不确定类型

上面的泛型我们应该有常见到吧,边界和通配符不懂的可以看下这篇文章吧:困扰我多年的Java泛型<? extends T> 和 <? super T>,终于搞清楚了。


泛型要学会用,学好能装B。


6、Lambda

Lambda 表达式这是 Java 8 里面添加的新特性,用来简化匿名内部类以及结合函数式接口编程用的。


如下面创建线程的示例:

image.png三个不同的写法,我们再也不用写 new Runnable() 的一大堆 的匿名内部类了,是不是很清爽了!


如果你还不会用 Lambda 表达式,那真的 OUT 了,可以关注微信公众号:Java技术栈,在后台回复:新特性,我已经写了一大堆教程了。


下面是一个 Lambada 真实案例:image.png上述示例省去了 new CommandLineRunner 的匿名内部类的过程。


7、函数式编程

上面有提到函数式编程,这是 Java 8 里面添加的新特性,我之前在公众号里已经写过很多 Java 新特性的教程,这也不是新玩法了,已经被玩烂了。


来看一个真实的案例,来自 Spring Boot 的邮件发送自动配置:

image.png第一次看到这段代码的时候,我内心是拒绝的,很难理解。


上面的 from 和 to 方法分别用到了 Supplier 和 Consumer 函数式接口,还用到了双冒号 :: 结合使用,讳莫如深,还能结合 Lambda 表达式使用。


函数式编程很厉害,虽然会用,但到现在我也觉得很高深,可读性和可理解性太差了,但是,装 X 必学、必用。


8、流关闭image.png没错,你看到的这个关闭流骚操作是 Java 9 的新语法糖,较 Java 7 又简化了 try-with-resources 用法,装 X 的姿势越来越多了。


关于 try-with-resources 的详细介绍及演进过程,大家可以阅读这篇文章:JDK9新特性实战:简化流关闭新姿势,或者可以关注微信公众号:Java技术栈,在后台回复 “新特性” 获取这篇文章完整版。


不知道的可能上来就一顿骂了,你流关闭动作在哪,为什么不关闭流,多跟着栈长学点新知识吧,哈哈。


9、类型推断

关注Java技术栈公众号的老读者应该都看过,Java 10 刚出来的时候,我写过两篇新特性文章:


Java 10的10个新特性,将彻底改变你写代码的方式!

Java 10 实战第 1 篇:局部变量类型推断

来,我再挑两个示例来欣赏下:


示例1:image.png这样写会不会被打?也太省事了!


类型推断出来后,都说 Java 越来越像 Javascript 了,其实就是 Java 10 增加的一种语法糖而已,在编译期间会自动推断实际类型,其编译后的字节码和实际类型一致。


10、模式匹配

instanceof模式是匹配这是 Java 14 推出来的新特性:

image.png匹配后直接创建对象和赋值直接拿来用,不需要再添加强制转换的代码,大大提高了可读性和安全性。具体可以看这篇文章:Java 14 之模式匹配,非常赞的一个新特性!


好了,今天我就装到这了,关注Java技术栈微信公众号,栈长将继续分享好玩的 Java 技术,公众号第一时间推送。


栈长原创和整理不易,觉得文章不错,在看、转发分享给更多的朋友们,总能帮助有需要的人,大家一起流弊~


推荐去我的博客阅读更多:


1.Java JVM、集合、多线程、新特性系列教程


2.Spring MVC、Spring Boot、Spring Cloud 系列教程


3.Maven、Git、Eclipse、Intellij IDEA 系列工具教程


4.Java、后端、架构、阿里巴巴等大厂最新面试题


生活很美好,明天见~


image.png

相关文章
|
5天前
|
JavaScript API iOS开发
DeepSeek Harness下载、安装、配置一篇搞定(2026整理,送常用插件)
DeepSeek Harness(DSH)是DeepSeek于2026年开源的MIT协议AI Agent框架,支持插件化组装模型、工具、沙箱与UI,兼容主流大模型。本文提供免Node.js的桌面端安装包(Win/macOS),含详细图文教程及热门插件推荐。
2524 21
|
6天前
|
iOS开发 Docker MacOS
【2026实测】Docker Desktop下载、安装、汉化、配置教程(附官网安装包)
Docker Desktop 是 Docker 官方推出的桌面容器管理工具,集成引擎、CLI、图形界面与 Kubernetes,支持 Win/macOS/Linux。2026 最新版 4.88.1 强化 ARM 原生运行、镜像加速及资源可视化,附中文汉化与国内镜像配置指南。
1100 3
|
云安全 安全 网络安全
|
5天前
|
Linux 开发工具 iOS开发
Codex保姆级教程(下载+安装+登录+使用,含所有版本,2026最新)
Codex是OpenAI推出的开源AI编程智能体,本地运行,可理解整个代码库,支持自然语言指令改代码、执行命令、跑测试、修Bug,兼容Win/macOS/Linux。(239字)
|
6天前
|
安全 算法 定位技术
《高性价比人生指南》完整原版:普通人用最少的资源,过好这一生的底层逻辑~How To Live Better
📖《高性价比人生指南》是一份基于实证、拒绝焦虑的生存手册,倡导以“人生时薪”为视角,重新计算时间、金钱与精力的成本与收益。它不承诺逆袭,只教人算清账:省下的钱若耗掉时间便亏;买体验比买物品更值;睡眠是最高杠杆的健康投资;关系贵在情绪价值而非表面热络;学习重在改变行为而非自我安慰。核心理念:用低成本、高回报的微小行动,换取长期的选择权——不是成为谁,而是掌控自己人生的主动权。
|
19天前
|
人工智能 API 开发工具
DeepSeek Harness 神插件:白嫖 13 家大厂模型
`dsh-our-free-model` 是 DeepSeek Harness 神级插件:零配置、零API Key、零账号,聚合13家大厂免费模型(含DeepSeek V4.1 Flash、Kimi K3等),支持本地网关、用量看板与自动降级,真正实现“白嫖即用”。
3256 51
|
12天前
|
JavaScript 安全 前端开发
Nodejs Brotli decoder 代码执行漏洞 (CVE-2026-111497)10629
Node.js发布安全更新修复Brotli解码器高危RCE漏洞(CVE-2026-111497),建议受影响版本用户立即升级。
2122 2
|
11天前
|
人工智能 JSON Linux
【保姆级】ComfyUI部署教程(下载+安装+配置+工作流,2026最新)
ComfyUI 是一款开源节点式AI生成工具,支持图像、视频、音频及3D内容创作。通过拖拽连线组合模型加载、提示词、采样等节点,构建可复用、易修改的工作流,兼容SD1.5、SDXL、Flux、Qwen Image等主流模型。

热门文章

最新文章