执行注释

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

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 中有趣酷炫的小技巧相关推荐

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

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

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

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

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

    11 位运算效率更高 如果你读过 JDK 的源码,比如 ThreadLocal.HashMap 等类,你就会发现,它们的底层都用了位运算. 为什么开发 JDK 的大神们,都喜欢用位运算? 答:因为位运 ...

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

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

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

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

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

    1.用String.format拼接字符串 String.format方法拼接url请求参数,日志打印等字符串. 但不建议在for循环中用它拼接字符串,因为它的执行效率,比使用+号拼接字符串,或者使用 ...

  7. Java 中代码优化的 30 个小技巧(上)

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

  8. python中template是什么意思啊_Python中Template使用的一个小技巧

    Python中Template是string中的一个类,可以将字符串的格式固定下来,重复利用. from string import Template s = Template("there ...

  9. php页面开发,PHP网站开发中常用的8个小技巧

    这篇文章主要介绍了PHP网站开发中常用的8个小技巧,本文讲解了命名.使用.PHP判断Form表单是否提交.PHP 获取字符串长度.PHP超全局对象等内容,需要的朋友可以参考下 PHP是一种用于创建动态 ...

最新文章

  1. 高级数据结构讲解与案例分析
  2. discuz sitemap.php,discuz制作门户的百度sitemap
  3. scala从集合中提取不重复的元素
  4. 与陆毅擦肩而过。。。
  5. 单分支 两路分支和多分支的if结构_JavaScript学习笔记(二)-- 分支结构
  6. android crash分析工具,Android Crash之Native Crash分析
  7. php抓取网络电视源,电视直播源抓取工具箱
  8. linux版锐捷认证客户端,Linux/UNIX锐捷802.1x网络的认证客户端:RuijieClient 0.7发布
  9. 手把手教你安装Sketch破解版和measure插件
  10. win10如何添加linux开机引导,win10 linux 双系统怎么设置开机引导
  11. 制作网页头部用html,HTML网页头部代码实例详解_HTML/Xhtml_网页制作
  12. mac下安装nginx+php+mysql
  13. NFT抢购合集工具(免费)
  14. js给页面添加随机像素噪声背景
  15. 转载:ant自动构建
  16. 【教程】扫描识别工具Dynamic Web TWAIN使用教程:条码读取器(下)
  17. 机械硬盘计算机管理,机械硬盘怎么分区
  18. Java WORD转换PDF 并添加水印 (附赠jar提取链接)
  19. 华为秉持开放合作,用开源生态迎接和共建“新全球化”
  20. python 从4399获取小游戏

热门文章

  1. 通过各种统计方法建立理想的mlb投球前景
  2. EST | 西湖大学鞠峰组提出表型宏基因组学用于超广谱抗生素耐药组的高通量环境检测...
  3. 来听听一位『大龄程序员』的心声
  4. 解决Teamviewer密码总是在变的问题
  5. 天龙八部TLBB系列 - 网单用数据库修改为其他门派
  6. 第三章:晶体三极管及应用电路
  7. Android获取两条线之间的夹角度数
  8. 光纤收发器的原理及应用_浅析光纤收发器的原理与分类
  9. Android培训武汉,武汉安卓培训之Android如何使用样式创建半透明窗体
  10. CTF密码学-编码基础知识点总结