执行注释

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

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

热门内容:
  • 切记!MySQL中ORDER BY与LIMIT 不要一起用,有大坑

  • 为什么国内流行的 MyBatis ,国外 Java 工程师却不愿意使用?

  • 干掉Navicat:正版,MySQL官方客户端真香!

  • JDK 16 即将发布,新特性速览!

最近面试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. 2022-2028年中国钢铁冶炼行业市场研究及前瞻分析报告
  2. 网易云信3.3.0版本更新啦!
  3. HTML5 API详解(3):为何网页上要增加Battery电池状态API
  4. 手语识别_如何使用转移学习进行手语识别
  5. C++中数字与字符串之间的转换
  6. 内联函数、默认参数和函数占位参数
  7. 绑定数据源注意的地方
  8. 手机版豆丁书房下载的文档在哪儿
  9. 图解设计模式:工厂类
  10. python和r语言生物信息学_R语言和Python哪个适合生物信息学?
  11. word上怎么把图片拼接到一起_word怎么将图片合并
  12. 博客专家申请规则变更调整
  13. 中国有多少家银行?(最全名单统计)
  14. c# 图片裁剪并画中线
  15. django集成Sphinx,为项目自动生成文档
  16. 集合及集合的交,并与差
  17. softmaxsigmoid
  18. woo语言使用sockets模拟http请求
  19. skype 无法更新安装
  20. Kaggle Faster Data Science Education coursera

热门文章

  1. 2018-3-5 (论文—网络评论中结构化信息处理的应用于研究)笔记三(互信息,信息增益,期望交叉熵,基于词频的方法,CHI统计)
  2. MongoDB 学习使用
  3. 软件发布版本的业界规则?
  4. 2018 蓝桥杯省赛 B 组模拟赛(一)-年龄
  5. Go环境搭建、Sublime Text 3 安装Go语言相关插件gosublime
  6. 软件工程实践第一次作业
  7. iOS 后台挂起的一些坑
  8. 呼叫中心的服务水平管理
  9. jQuery UI vs Kendo UI jQuery Mobile vs Kendo UI Mobile
  10. 芯片刀片服务器,使用“刀片服务器”其实不难