Java 10大骚操作写法,亮瞎boss的双眼!

Java中的特殊符号写法 在Java编程语言中,有一些特殊符号的写法和用法是我们经常会遇到的。这些特殊符号包括小于等于号(≤)、等于号(=)等。本文将详细介绍这些特殊符号的使用,并提供相应的源代码示例。综上所述,小于等于号和等于号是Java中常用的特殊符号。在上面的代码中,我们声明了两个整数变量a和b,并使用小于等于号来比较它们的大小。如果a小于等于b,则输出"a小于等于b";否则输出"a大于b"。需要注意的是,等于号(=)表示赋值操作,而不是比较操作。在上面的代码中,我们将变量a的值赋给变量b,即b = a。最后输出b的值为5。 阅读详情

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

没错,一文交会你!

1、集合初始化

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

来,上边跟我一起画个 List,在你下边画一个Map……

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

 

哈哈,高大上的写法,栈长以前写过,写法虽然是很装X,然而并没有什么卵用。

2、算术

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

 

注意到上面size的写法没有?

明明可以写成:

final int size = 256;

他非要写成:

final int size = -(-128) + 127 + 1;

这么装 B 的写法来自 JDK 包装类java.lang.Byte里面的静态方法。

为什么要这么写呢?

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

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

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

3、移位

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

 

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

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

4、复制变量

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

 

以上同样来自java.util.HashMap的源码,为什么不直接用values:

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

 

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

这样写不是更简单么?

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

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

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

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

5、泛型

来看一段泛型的灵活运用:

public <R> Observable<R> compose(Transformer<? super T, ? extends R> transformer) {
    return ((Transformer<T, R>) transformer).call(this);
}

这个泛型方法写得牛 X 吧,泛型 T、R、通配符(?)、上边界(extends)和下边界(super)都用上了!

常用的泛型含义:

  • T - Type(类型)
  • R - Result(结果)
  • K - Key(键)
  • V - Value(值)
  • E - Element (元素)
  • N - Number(数字)
  • ? - 不确定类型

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

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

6、Lambda

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

如下面创建线程的示例:

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

 

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

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

下面是一个Lambada真实案例:

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

 

上述示例省去了 newCommandLineRunner的匿名内部类的过程。

7、函数式编程

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

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

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

 

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

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

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

8、流关闭

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

 

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

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

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

9、类型推断

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

  • Java 10的10个新特性,将彻底改变你写代码的方式!
  • Java 10 实战第 1 篇:局部变量类型推断

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

示例1:

var javastack = "javastack";

示例2:

private static void testLoop() {
    for (var i = 0; i < 3; i++) {
        for (var m = 10; m < 15; m++) {
            System.out.println(i + m);
        }
    }
}

这样写会不会被打?也太省事了!

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

10、模式匹配

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

if (object instanceof Kid kid) {
    // ...
} else if (object instanceof Kiddle kiddle) {
    // ...
}

匹配后直接创建对象和赋值直接拿来用,不需要再添加强制转换的代码,大大提高了可读性和安全性。具体可以看这篇文章:Java 14 之模式匹配(后续会发布,差点东西没整理完),非常赞的一个新特性!

写出漂亮代码的七种方法 首先我想说明我本文阐述的是纯粹从美学的角度来写出代码,而非技术、逻辑等。以下为写出漂亮代码的七种方法: 1, 尽快结束 if语句 例如下面这个JavaScript语句,看起来就很恐怖: 立即下载

相关推荐

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以前

java高级语法

1.Collection 集合框架: Collection接口:单列集合,用来存储一个的对象 1.list接口: 有序,可重复的数据, --->"动态 " 数组 ArrayList:作为List的主要实现类,线程不安全的,效率高,底层用Object[] elementData存储 LinkList:对于频繁的插入删除操作,使用linkliist比arraylsit效率高,底层使用双向列表存储 V

Mr. Ding的小博客 2425

Synopsys的CoreConsultant使用简析

CoreConsultant使用简析

weixin_58165606的博客 1万+

如何高逼格的写java代码

记录一些了解的高逼格、好用的java代码 欢迎大家补充,共同学习

景川的博客 5409

别再让信号‘撞墙’了!手把手教你用嘉立创阻抗计算器搞定PCB高速线(附免费压层结构选择)

本文详细介绍了如何使用嘉立创阻抗计算器解决PCB高速线设计中的阻抗匹配问题,避免信号反射和传输损耗。通过免费压层结构选择和五步计算法,帮助工程师快速掌握USB3.0差分线等高速信号的设计技巧,提升PCB设计效率和信号质量。

weixin_30736301的博客 278

手把手教你用RoboTwin训练RDT模型:从环境配置到实战微调(避坑指南)

本文提供了一份详尽的避坑指南,手把手教你如何在RoboTwin开源仿真环境中,从零开始配置环境、采集数据并完成RDT视觉语言动作模型的实战微调。文章涵盖了环境搭建、数据流水线构建、模型配置与训练等关键步骤,旨在帮助研究者和开发者高效利用仿真数据,低成本探索具身智能应用。

weixin_29094979的博客 131

别让数据库拖垮你的Java项目,优化秘籍在此!

本文系统介绍了Java项目中数据库优化的关键要点。首先分析了数据库性能的核心指标:查询速度、吞吐量、并发度和可用性,通过电商平台、社交媒体和企业内部系统等典型场景说明性能指标的重要性。 在应用场景方面,重点阐述了电商平台订单查询、社交媒体用户信息获取等高频操作中的优化策略,包括索引创建、缓存技术应用和分库分表等具体方法。文章通过响应时间对比,展示了优化前后的显著性能提升。 针对Java开发中的数据库优化,提供了SQL语句优化、索引设计、连接池配置等实用技巧,帮助开发者提升系统性能,改善用户体验。

m0_73590302的博客 1482

Weaxor勒索病毒实战分析:从加密算法到防御策略(附检测工具清单)

本文对Weaxor勒索病毒进行了深度实战剖析,详细拆解了其采用ChaCha20与AES-CTR的混合加密算法、横向移动手法及数据回传行为。文章重点分析了其密钥生成机制的“漏洞修复”,并提供了从主机加固、网络监控到基于IOC威胁狩猎的立体化企业级防御策略与检测工具清单。

weixin_29233333的博客 260

霸榜GitHub周榜!Java面试福音,逼自己一周背完上岸大厂!

有很多朋友都觉的现在Java面试题太难了,而且没有一份比较新的、全面的Java面试题。于是我尝试着把这份面试题放到GitHub,没想到大部分都是咱们中国的Java选手,外国人看到后都怀疑人生:“中国人这么卷的吗(Is that how the Chinese roll it?)”你不去卷,别人就去卷。那你自然卷不赢,然后回来抱怨说Java环境太差。就像抖音段子上,大学四年在宿舍打游戏,等到找工作的时候却怀疑自己不够努力,那是你确实不太够努力,以为自己学完大学四年的课程就能够找到工作了。

程序员高级码农的博客 409

第2章 数据库关系模型-单元测验-数据库原理及应用

第2章 数据库关系模型---数据库与机器学习 作业 常用的关系查询操作包括选择、投影、连接、并、交等。 v 实体完整性是指关系表的属性组成必须是完整的。 x 自然连接是一种等值连接。 v 在参照完整性中,可以定义级联操作。 v 用户自定义完整性可以实施数据的业务约束。 v 每个关系是一个二维表,但二维表不一定是关系。 v 关系中复合键至少包含两个属性。 v 代理键是为了唯一标识关系的不同元组,需要在表单或报表中显示出来。 x ...

aiqq136的博客 5723

基于STM32与HRTIM的四开关Buck-Boost双向DC-DC电源设计实战(附源码、仿真与设计解析)

本文详细介绍了基于STM32F334的HRTIM高分辨率定时器实现四开关Buck-Boost双向DC-DC电源的设计实战。通过精准的PWM控制、双环PID算法和智能模式切换逻辑,解决了电压震荡与效率优化等关键问题,并提供了完整的源码、PSIM仿真及参数计算,为高性能电源设计提供了实用参考。

7z8x2c4v6b9的博客 299

java tts引擎_让Java说话-用Java实现语音引擎

为应用程序加上语音能力有什么好处呢?粗略地讲,是为了趣味,它适合所有注重趣味的应用,比如游戏。当然,从更严肃的角度来讲,它还涉及到应用的可用性问题。注意,这里我考虑的不仅是可视化界面固有的不足,而且还有这样一些情形:一些时候,让双眼离开当前的工作很不方便,甚至是不合法的。比如,假设有一个带语音功能的浏览器,你就可以在外出散步或开车上班的同时,用听的方式浏览自己喜爱的网站。[@more@]为应用程序...

weixin_33636371的博客 1219

从零搭建Synopsys EDA环境:Ubuntu系统下的完整安装与避坑指南

本文详细介绍了在Ubuntu系统下从零搭建Synopsys EDA环境的完整流程,包括系统配置、安装文件准备、核心工具安装、License配置及常见问题排查。特别针对数字IC设计场景,提供了VCS、Verdi、Design Compiler等EDA Tools的安装避坑指南和性能优化建议,帮助开发者高效搭建稳定的开发环境。

weixin_33738982的博客 491

我的世界java材质包推荐下载_我的世界材质包排行-Minecraft材质包-我的世界高清材质包下载大全-Minecraft中文分享站...

96.6MB / 2019-09-18 17:26:58 / v1.10.2《我的世界伪风光材质包》是一个非常好用的材质包,里面可以清晰的反映出光影,让玩家满足视觉享受,它里面包括很多光影风光材质,喜欢得人可以下载看看哦!接下来小编就来给大家介绍一下这个组件材质包的相关内容。96.6MB / 2019-09-17 16:05:19 / v1.14《我的世界梨子材质包》梨子材质是一款16x的极简风格...

weixin_30320081的博客 7615

【深度学习驱动流体力学】采集OpenFOAM仿真数据作为AI模型训练数据集与卷积神经网络搭建到预测(一站式完整代码实现)

采集OpenFOAM仿真数据作为AI模型训练数据集与卷积神经网络搭建到预测(一站式完整代码实现)

源代码杀手的博客 1414

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

用Java实现语音引擎

为应用程序加上语音能力有什么好处呢?粗略地讲,是为了趣味,它适合所有注重趣味的 应用,比如游戏。当然,从更严肃的角度来讲,它还涉及到应用的可用性问题。注意,这 里我考虑的不仅是可视化界面固有的不足,而且还有这样一些情形:一些时候,让双眼离 开当前的工作很不方便,甚至是不合法的。比如,假设有一个带语音功能的浏览器,你就 可以在外出散步或开车上班的同时,用听的方式浏览自己喜爱的网站。  ...

Fbote 239

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

java上传一段语音_在java程序中加入语音功能,例如给段字符串“A101”,就能发出声音,请大家帮帮忙,谢谢...

展开全部为应62616964757a686964616fe59b9ee7ad9431333335303530用程序加上语音能力有什么好处呢?粗略地讲,是为了趣味,它适合所有注重趣味的应用,比如游戏。当然,从更严肃的角度来讲,它还涉及到应用的可用性问题。注意,这里我考虑的不仅是可视化界面固有的不足,而且还有这样一些情形:一些时候,让双眼离开当前的工作很不方便,甚至是不合法的。比如,假设有一个带语音功...

weixin_33188115的博客 486

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

让Java说话-用Java实现语音引擎(转)

??为应用程序加上语音能力有什么好处呢?粗略地讲,是为了趣味,它适合所有注重趣味的应用,比如游戏。当然,从更严肃的角度来讲,它还涉及到应用的可用性问题。注意,这里我考虑的不仅是可视化界面固有的不足,而且还有这样一些情形:一些时候...

cqwf95925的博客 426

一个java面试官的感慨来源于网络

一直都没有想到,可以有机会可以面试他人,很感谢现在的公司,给我不少的机会可以尝试从不同方面尝试一些工作,在入职现公司之前也作为面试者参加过不少面试,不过还好,面试通过率都还好,大部分是待遇谈不拢。现在换个位置想想,感慨良多。还记得有一次去面试做题,和我同来面试的家伙笔试题全是抄我的,我看他待遇填得比我高得多,我晕,这种人都有,呵呵。    面试过JAVA程序员最多,从刚毕业的到毕业了

lixin521year的专栏 1939

和java面试不得不说的故事

一直都没有想到,可以有机会可以面试他人,很感谢现在的公司,给我不少的机会可以尝试从不同方面尝试一些工作,在入职现公司之前也作为面试者参加过不少面试,不过还好,面试通过率都还好,大部分是待遇谈不拢.现在换个位置想想,感慨良多.还记得有一次去面试做题,和我同来面试的家伙笔试题全是抄我的,我看他待遇填得比我高得多,我晕,这种人都有,呵呵. 面试过JAVA程序员最多,从刚毕业的到毕业了几年的,都有,其中...

weixin_30650859的博客 87

致敬测试工程师:“拿着12K的工资,做着20K的事,还要操着30K的心!”

今天,跟大家谈一个很现实的话题! 你的工资有多少? 在评论区打出来,统一都说月薪哈!能说年薪的,怕自己的小心脏扛不住。 测试工程师:给多少工资,干多少事 我们不是经常会看到一个关于西游记的“悖论”吗: 为什么孙悟空初期大闹天宫的时候那么厉害?因为他自己当老板,打一群天庭的打工仔。 为什么取经路上又变得不行了?作为一个打工仔,去跟一群出来自己创业的妖怪打架 很多程序员想跟老板说,但又不太敢说,实际却在做的一件事。 事实却是: “拿着12K的工资,做着20K的事,还要操着30K的心

751

题解 | #删除字符串中出现次数最少的字符#

广州才30多万一点,春招的第一个offer,感觉给的有点低,而且测开大家都不推荐,大概率不会去,不知。杭州阿里的大佬们看过来,小女看上一个男生,姓唐,应该是搞算法的,P6有没有好兄弟帮我找找他,最好能有。从准备暑期实习到现在也得有半年了,四百多人的信息院,我知道的就两个哥们是在找技术岗实习的,其他人全在。实习还没找到,家里出事了非科班专业(化工天坑),稀里糊涂的考上了材料研究生,做了生物方向的科研,生化。双非硕,陆陆续续半个月在boss上沟通400多次,只投了个位数的简历,大部分都是打招呼就已读不回了,

2301_79125642的博客 858
上一篇: 有缘再见了,蘑菇街
下一篇: 程序员都会犯的十个错误
Java斗帝之路
博客等级 码龄7年 2392粉丝 687原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值