执行注释

大多数开发人员认为 注释 永远不会在程序中执行,并用于帮助代码理解。但是,它们却 可以被执行

public class Main {public static void main(String[] args) {// \u000d System.out.println("wmyskxz is awesome!");}
}

程序输出:

wmyskxz is awesome!

说明

Java 允许使用 Unicode 字符而不进行编码。这里的 Unicode 字符 \u000d 被 Java 编译器解析为新行,因此可以理解为该 Unicode 字符后面出现的语句会在下一行被执行。


双括号初始化集合

在 Java 中,Set/ List/ Map 等集合对象没有在生命期间初始化值的简单方法 (Java 11 支持了该类操作)。开发人员要么将值显式地传送到集合内,要么为常量集合创建一个静态块。

使用双括号初始化,可以在声明过程中以更少的精力和时间初始化集合。例如:

Set<String> set = new HashSet<String>() {{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 inserted
int 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 自己实现的二分查找方法,局限就是目标数组必须是排序好的 (可以使用 Arrays.sort() 进行排序)


判断数字是偶数还是奇数

通常我们会使用 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;   // Multiply n with 2
n = n >> 1;   // Divide n by 2

判断素数

Java 在 BigInteger 类中内置了 isProbablePrime() 方法。如果此 BigInteger 可能是质数(可以肯定),则返回 true,如果它肯定是复合的,则返回 false

BigInteger.valueOf(1235).isProbablePrime(1)

More..

欢迎补充

参考资料

  1. Interesting and Cool Tricks in Java - https://www.geeksforgeeks.org/interesting-and-cool-tricks-in-java/?ref=leftbar-rightbar

  2. Java tricks for competitive programming (for Java 8) - https://www.geeksforgeeks.org/java-tricks-competitive-programming-java-8/?ref=rp

热门内容:用 float 存储金额,老板说损失从工资里扣!太强了!这款轻量级的数据库中间件完美解决了SpringBoot中分库分表问题
Spring Boot 还能“内存泄露”?排它!
学会 IDEA REST Client后,postman就可以丢掉了...
为什么老外不愿意用 MyBatis?最近面试BAT,整理一份面试资料《Java面试BAT通关手册》,覆盖了Java核心技术、JVM、Java并发、SSM、微服务、数据库、数据结构等等。获取方式:点“在看”,关注公众号并回复 666 领取,更多内容陆续奉上。
明天见(。・ω・。)ノ♡

Java8 中有趣酷炫的小技巧,你用到了那些?相关推荐

  1. Java8 中有趣酷炫的小技巧

    执行注释 大多数开发人员认为 注释 永远不会在程序中执行,并用于帮助代码理解.但是,它们却 可以被执行: public class Main {public static void main(Stri ...

  2. java 有趣注释_Java8 中有趣酷炫的小技巧

    https://mp.weixin.qq.com/s/ZlbcfT-fUoVEctSqBeZWcg Java8 中有趣酷炫的小技巧 执行注释 大多数开发人员认为 注释 永远不会在程序中执行,并用于帮助 ...

  3. Java有趣的小功能_Java8 中有趣酷炫的小技巧你用到了那些

    执行注释 大多数开发人员认为 注释 永远不会在程序中执行,并用于帮助代码理解.但是,它们却 可以被执行:public class Main{ public static void main(Strin ...

  4. java酷炫代码_Java8 中有趣酷炫的小技巧

    执行注释 大多数开发人员认为注释永远不会在程序中执行,并用于帮助代码理解.但是,它们却可以被执行: public class Main { public static void main(String ...

  5. Java 中代码优化的 30 个小技巧(下)

    21 防止死循环 有些小伙伴看到这个标题,可能会感到有点意外,代码中不是应该避免死循环吗?为啥还是会产生死循环? 殊不知有些死循环是我们自己写的,例如下面这段代码: while(true) {if(c ...

  6. 聊聊我们Java中代码优化的30个小技巧

    今天我们一起聊聊Java中代码优化的30个小技巧,希望会对你有所帮助. 1.用String.format拼接字符串 不知道你有没有拼接过字符串,特别是那种有多个参数,字符串比较长的情况. 比如现在有个 ...

  7. 直播系统源码App中Android酷炫礼物动画直播平台源码搭建教程(上篇)

    直播系统源码App中Android酷炫礼物动画直播平台源码搭建教程(上篇) 在当下移动直播火爆的年代,如果你曾经使用过移动端直播应用,相信会被里面那令人惊叹的礼物动画效果迷住,比如像下面这样的效果. ...

  8. 成品app直播源码中Android酷炫礼物动画实现方案(上篇)

    成品app直播源码中Android酷炫礼物动画实现方案(上篇) +在当下移动直播火爆的年代,如果你曾经使用过移动端直播应用,相信会被里面那令人惊叹的礼物动画效果迷住,比如像下面这样的效果. 从开发人员 ...

  9. 直播App中Android酷炫礼物动画如何通过直播程序源码实现方案

    直播App中Android酷炫礼物动画如何通过直播程序源码实现方案 这个动画,如果输出成GIF的话,要3MB,尺寸是750*750.在上一篇文章中已经介绍过几种被否掉的方法,这里再稍作补充说明,如果使 ...

最新文章

  1. Android开发中反编译时出现Unsupported major.minor version 51.0错误的问题
  2. 多种协议数据包的结构
  3. eclipse关闭tomcat服务器热部署
  4. 大数据统计分析平台之一、Kafka单机搭建
  5. 各种模板(数学数论字符串)
  6. caffemodel权值可视化(转)
  7. activiti的springboot模块
  8. 开发者必备英文网站合集
  9. cpu利用率低linux,linux计算,cpu 利用率超低,如何处理?
  10. 5G LTE窄带物联网(NB-IoT) 10
  11. android studio jdy08,JDY-08蓝牙4.0模块+V3.3手册+.pdf
  12. 计算机 大管家 说课稿,精选信息技术说课稿模板集锦九篇
  13. OA软件办公用品分类设置,实现办公用品分类透明化
  14. C语言中 两个分号啥意思,问什么C程序里总是提示缺少分号;,而明明有分号?...
  15. Typora主要常用快捷键
  16. C# 微信支付请求分账
  17. 键盘按d就计算机,电脑为什么一按D就返回桌面?一按M也回桌面、按L直接待机了?:excle按d就返回桌面...
  18. url中的20%、22%、26%、7B%、%7D、28%、29%怎么解析还原成真实的字符
  19. self与static的浅薄理解
  20. 2010浙大报录比及分数

热门文章

  1. Ultra-QuickSort POJ 2299(归并排序)
  2. java I/O总结(收藏)
  3. 如何使用WindowsLiveWriter发文章
  4. 谢文睿:西瓜书 + 南瓜书 吃瓜系列 6. 神经网络
  5. python读取图片并且显示
  6. HOG 特征计算实现
  7. 芯片刀片服务器,使用“刀片服务器”其实不难
  8. 实现AI技术自立自强,国产深度学习框架面临三大难题
  9. GPT-3再进化:通过浏览网页来提高事实准确率
  10. 干货!整理了50个 Pandas 高频使用技巧,强烈建议收藏!