java酷炫代码_Java8 中有趣酷炫的小技巧
执行注释
大多数开发人员认为注释永远不会在程序中执行,并用于帮助代码理解。但是,它们却可以被执行:
public class Main { public static void main(String[] args) { // System.out.println("wmyskxz is awesome!"); }}
程序输出:
wmyskxz is awesome!
Java 允许使用 Unicode 字符而不进行编码。这里的 Unicode 字符 被 Java 编译器解析为新行,因此可以理解为该 Unicode 字符后面出现的语句会在下一行被执行。
双括号初始化集合
在 Java 中,Set/ List/ Map等集合对象没有在生命期间初始化值的简单方法 。开发人员要么将值显式地传送到集合内,要么为常量集合创建一个静态块。
使用双括号初始化,可以在声明过程中以更少的精力和时间初始化集合。例如:
Set set = new HashSet() {{ add("wmyskxz"); add("is"); add("awesome"); add("!");} };System.out.println(set);
程序输出:
[awesome, !, wmyskxz, is]
“
在Java 11中,你可以使用Set.of("wmyskxz", "is", "awesome", "!")代替,这里仅仅讨论Java 8
另外对于ArrayList集合类型还是有简单初始化方法的:Arrays.asList()
获取数组插入数字元素的下标
有一个很酷的技巧,可以找到可以在数组中插入所请求元素的位置:
int[] arr = new int[] { 1, 3, 4, 5, 6 };// 2 has to be insertedint pos = Arrays.binarySearch(arr, 2);System.out.print("Element has to be inserted at: " + ~pos);
程序输出:
Element has to be inserted at: 1
Arrays.binarySearch()是 JDK 自己实现的二分查找方法,局限就是目标数组必须是排序好的 。
判断数字是偶数还是奇数
通常我们会使用num % 2 == 0来判断数字是奇数还是偶数。下面的技巧尽管并不比上述方法好多少,但在考虑大数时,效率会高很多:
System.out.println((num & 1) == 0 ? "EVEN" : "ODD" );
示例:
int num = 2;System.out.println((num & 1) == 0 ? "EVEN" : "ODD");// 输出 EVENnum = -1;System.out.println((num & 1) == 0 ? "EVEN" : "ODD");// 输出 ODD快速乘或除 2
二进制中,乘以2表示将所有位向左移动,除以2表示向右移动。
n = n 1; // Divide n by 2判断素数
Java 在BigInteger类中内置了isProbablePrime()方法。如果此 BigInteger 可能是质数(可以肯定),则返回true,如果它肯定是复合的,则返回false。
BigInteger.valueOf(1235).isProbablePrime(1)More..
欢迎补充
参考资料
Interesting and Cool Tricks in Java
Java tricks for competitive programming (for Java 8)
java酷炫代码_Java8 中有趣酷炫的小技巧相关推荐
- java 有趣注释_Java8 中有趣酷炫的小技巧
https://mp.weixin.qq.com/s/ZlbcfT-fUoVEctSqBeZWcg Java8 中有趣酷炫的小技巧 执行注释 大多数开发人员认为 注释 永远不会在程序中执行,并用于帮助 ...
- Java有趣的小功能_Java8 中有趣酷炫的小技巧你用到了那些
执行注释 大多数开发人员认为 注释 永远不会在程序中执行,并用于帮助代码理解.但是,它们却 可以被执行:public class Main{ public static void main(Strin ...
- Java 中代码优化的 30 个小技巧(中)
11 位运算效率更高 如果你读过 JDK 的源码,比如 ThreadLocal.HashMap 等类,你就会发现,它们的底层都用了位运算. 为什么开发 JDK 的大神们,都喜欢用位运算? 答:因为位运 ...
- Java 中代码优化的 30 个小技巧(下)
21 防止死循环 有些小伙伴看到这个标题,可能会感到有点意外,代码中不是应该避免死循环吗?为啥还是会产生死循环? 殊不知有些死循环是我们自己写的,例如下面这段代码: while(true) {if(c ...
- 聊聊我们Java中代码优化的30个小技巧
今天我们一起聊聊Java中代码优化的30个小技巧,希望会对你有所帮助. 1.用String.format拼接字符串 不知道你有没有拼接过字符串,特别是那种有多个参数,字符串比较长的情况. 比如现在有个 ...
- Java中代码优化的30个小技巧
1.用String.format拼接字符串 String.format方法拼接url请求参数,日志打印等字符串. 但不建议在for循环中用它拼接字符串,因为它的执行效率,比使用+号拼接字符串,或者使用 ...
- Java 中代码优化的 30 个小技巧(上)
前言 今天我们一起聊聊 Java 中代码优化的 30 个小技巧,希望会对你有所帮助. 1 用 String.format 拼接字符串 不知道你有没有拼接过字符串,特别是那种有多个参数,字符串比较长的情 ...
- python中template是什么意思啊_Python中Template使用的一个小技巧
Python中Template是string中的一个类,可以将字符串的格式固定下来,重复利用. from string import Template s = Template("there ...
- php页面开发,PHP网站开发中常用的8个小技巧
这篇文章主要介绍了PHP网站开发中常用的8个小技巧,本文讲解了命名.使用.PHP判断Form表单是否提交.PHP 获取字符串长度.PHP超全局对象等内容,需要的朋友可以参考下 PHP是一种用于创建动态 ...
最新文章
- 高级数据结构讲解与案例分析
- discuz sitemap.php,discuz制作门户的百度sitemap
- scala从集合中提取不重复的元素
- 与陆毅擦肩而过。。。
- 单分支 两路分支和多分支的if结构_JavaScript学习笔记(二)-- 分支结构
- android crash分析工具,Android Crash之Native Crash分析
- php抓取网络电视源,电视直播源抓取工具箱
- linux版锐捷认证客户端,Linux/UNIX锐捷802.1x网络的认证客户端:RuijieClient 0.7发布
- 手把手教你安装Sketch破解版和measure插件
- win10如何添加linux开机引导,win10 linux 双系统怎么设置开机引导
- 制作网页头部用html,HTML网页头部代码实例详解_HTML/Xhtml_网页制作
- mac下安装nginx+php+mysql
- NFT抢购合集工具(免费)
- js给页面添加随机像素噪声背景
- 转载:ant自动构建
- 【教程】扫描识别工具Dynamic Web TWAIN使用教程:条码读取器(下)
- 机械硬盘计算机管理,机械硬盘怎么分区
- Java WORD转换PDF 并添加水印 (附赠jar提取链接)
- 华为秉持开放合作,用开源生态迎接和共建“新全球化”
- python 从4399获取小游戏