当前位置:首页 > 科技  > 软件

来看看,这些Java编程小技巧肯定有你不知道的

来源: 责编: 时间:2023-11-15 09:20:19 389观看
导读来看看,这些JAVA编程小技巧肯定有你不知道的首发2023-10-24 08:37·知识创富老七大家好,我是老七,点个关注吧,将持续更新更多精彩内容!使用增强的 for 循环增强的 for 循环也称为 for-each 循环,允许您迭代数组或集合,而无需

1TU28资讯网——每日最新资讯28at.com

来看看,这些JAVA编程小技巧肯定有你不知道的

大家好,我是老七,点个关注吧,将持续更新更多精彩内容!1TU28资讯网——每日最新资讯28at.com

1TU28资讯网——每日最新资讯28at.com

使用增强的 for 循环

增强的 for 循环也称为 for-each 循环,允许您迭代数组或集合,而无需手动管理索引。它简化了代码并使其更具可读性。例如:1TU28资讯网——每日最新资讯28at.com

int [] numbers = { 1 , 2 , 3 , 4 , 5 }; for ( int number :numbers) {     // 用 number 做一些事情}

利用Java Streams API

Java 8中引入的Streams API为处理集合提供了强大的函数式操作。它允许您以简洁且富有表现力的方式执行过滤、映射和归约等操作。流可以增强代码可读性并减少样板文件。例如:1TU28资讯网——每日最新资讯28at.com

List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);int sum = numbers.stream()                 .filter(n -> n % 2 == 0)                 .mapToInt(n -> n)                 .sum();

利用 var 关键字(对!你没看错,是var,Java也有了,Java 10+)

这不是JavaScript!该var关键字允许您使用隐式类型推断来声明变量。它减少了显式指定类型的需要,使代码更加简洁。例如:1TU28资讯网——每日最新资讯28at.com

var message = "Hello, world!";var numbers = List.of(1, 2, 3, 4, 5);

使用StringBuilder进行高效的字符串连接

当连接多个字符串时,使用StringBuilder类比重复使用'+'运算符更高效。很多人习惯定义很多个String类型的变量,然后通过“+”来拼接,其实可以试试使用StringBuilder ,来避免了不必要的对象创建并提供了更好的性能。例如:1TU28资讯网——每日最新资讯28at.com

StringBuilder sb = new StringBuilder();sb.append("Hello");sb.append(" ");sb.append("world");String result = sb.toString();

使用三元运算符

使用三元运算符来实现简洁的条件表达式:三元运算符 ( ? :) 允许您以紧凑的形式编写简单的条件表达式。它对于赋值或执行简单的分支逻辑很有用。例如:1TU28资讯网——每日最新资讯28at.com

int x = 10;String message = (x > 5) ? "大于 5" : "小于或等于 5";

使用try-with-resources进行自动资源管理

这个我提过很多次,当使用实现该AutoCloseable接口的资源时,例如文件流或数据库连接,您可以使用try-with-resources语句来确保正确的资源清理,而无需显式关闭它们。例如:1TU28资讯网——每日最新资讯28at.com

try ( FileWriter  writer  =  new  FileWriter ( "myfile.txt" )) {     // 写入文件}

使用<>运算符进行类型推断:

如果可以从赋值上下文推断类型,则<> ( ) 允许您省略泛型类实例化的类型参数。它减少了冗余并使代码更清晰。例如:1TU28资讯网——每日最新资讯28at.com

List <String> names = new ArrayList <>() ; // ArrayList 的类型推断

使用该java.time包进行日期和时间操作

Java 8引入了该java.time包,它为日期和时间操作提供了更全面和直观的API。LocalDate它提供了、LocalTime、LocalDateTime、 和 等类Duration,可简化常见的日期和时间操作。1TU28资讯网——每日最新资讯28at.com

应用方法引用:方法引用允许您通过名称引用方法而不调用它。它们可以使您的代码更加简洁和富有表现力,尤其是在使用函数式接口时。例如:1TU28资讯网——每日最新资讯28at.com

List<String> names = Arrays.asList("zhangsan", "lisi", "wangmazi");names.forEach(System.out::println); //System.out.println()

在接口中使用默认方法

从Java 8开始,接口可以有默认方法,它提供默认的实现。默认方法允许您向接口添加新方法,而不会破坏现有的实现。它们可以方便地向接口添加实用方法或提供默认行为。1TU28资讯网——每日最新资讯28at.com

使用Optional类应用于判空的安全操作

该类Optional通过提供可能包含也可能不包含非空值的容器对象来帮助避免 NullPointerExceptions。它鼓励更明确地处理潜在的空值并减少空检查的需要。用于Optional指示某个值可能不存在并进行相应处理。1TU28资讯网——每日最新资讯28at.com

使用 lambda 表达式进行函数式编程

Java支持使用Lambda 表达式的函数式编程。它们提供了用于实现功能接口的简洁语法。Lambda 表达式在处理流、事件处理或异步编程时特别有用。1TU28资讯网——每日最新资讯28at.com

使用String.format()格式化字符串的方法

该String.format()方法允许您使用占位符和参数创建格式化字符串。它提供了一种便捷的方法来构造具有特定格式要求(例如日期、数字或对齐方式)的字符串。不要再使用拼接字符串的方式输出打印了,试试这个!例如:1TU28资讯网——每日最新资讯28at.com

int x = 10;double y = 3.14;String formatted = String.format("The value of x is %d and y is %.2f", x, y);

明智地使用break 和 continue语句

break语句允许您提前退出循环,而continue语句会跳过循环迭代中的剩余代码。必要时使用这些语句来控制循环中的执行流程,但要小心不要过度使用它们,因为它们会使代码更难理解。1TU28资讯网——每日最新资讯28at.com

使用Map.computeIfAbsent()方法

Java 8 中引入的方法允许您仅在键尚不存在时computeIfAbsent()计算给定键的值。Map它简化了处理需要检查键是否存在并有条件计算值的场景的代码。1TU28资讯网——每日最新资讯28at.com

Map<String, List<String>> map = new HashMap<>();map.computeIfAbsent("key", k -> new ArrayList<>()).add("value");

利用Math类进行常见的数学运算

Math类是Java 中提供了广泛的数学函数和常量的工具类。它包括舍入、绝对值、对数、三角函数等方法。不要编写自己的数学函数,而是直接使用Math类。1TU28资讯网——每日最新资讯28at.com

double x = 3.14;double rounded = Math.round(x);double sineValue = Math.sin(x);

使用Arrays.copyOfRange()方法

如果您需要使用现有数组中的元素子集创建新数组,则该Arrays.copyOfRange()方法可能很有用。它允许您指定开始和结束索引,并返回一个包含指定元素的新数组。1TU28资讯网——每日最新资讯28at.com

int[] sourceArray = {1, 2, 3, 4, 5};int[] newArray = Arrays.copyOfRange(sourceArray, 1, 4); // 创建一个新数组 {2, 3, 4}

多用String.join()方法

该String.join()方法将集合或数组的元素简化为单个字符串。您可以指定要在元素之间插入的分隔符。1TU28资讯网——每日最新资讯28at.com

List<String> names = Arrays.asList("zhagnsan", "lisi", "wangmazi");String joinedNames = String.join(", ", names); // Returns "zhangsan, lisi, wangmazi"

利用类EnumSet来处理枚举集

利用 EnumSet 类处理枚举集:如果需要处理一组枚举值,EnumSet 类提供了高度优化的实现方式。它为枚举提供了高效的存储和操作。在处理枚举常量时,EnumSet 是 HashSet 的高性能替代品。1TU28资讯网——每日最新资讯28at.com

enum Day { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY }Set<Day> weekdays = EnumSet.of(Day.MONDAY, Day.TUESDAY, Day.WEDNESDAY, Day.THURSDAY, Day.FRIDAY);

使用Collections.reverse()反转列表的方法

该类Collections提供了处理集合的实用方法。该reverse()方法允许您反转 中元素的顺序List。1TU28资讯网——每日最新资讯28at.com

List<Integer> numbers = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5));Collections.reverse(numbers); // 就地反转列表

今天的分享就到这里,希望对你有帮助!!1TU28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-25470-0.html来看看,这些Java编程小技巧肯定有你不知道的

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: Python使用VTK系列之渲染流程分析

下一篇: Python 自动化: eip、cen监控数据对接到 grafana

标签:
  • 热门焦点
  • K60至尊版刚预热 一加Ace2 Pro正面硬刚

    Redmi这边刚如火如荼的宣传了K60 Ultra的各种技术和硬件配置,作为竞品的一加也坐不住了。一加中国区总裁李杰发布了两条微博,表示在自家的一加Ace2上早就已经采用了和PixelWo
  • 6月安卓手机性价比榜:Note 12 Turbo断层式碾压

    6月份有一个618,虽然这是京东周年庆的日子,但别的电商也都不约而同的跟进了,反正促销没坏处,厂商和用户都能满意。618期间一些产品也出现了历史低价,那么各个价位段的产品性价比
  • 5月iOS设备好评榜:iPhone 14仅排第43?

    来到新的一月,安兔兔的各个榜单又重新汇总了数据,像安卓阵营的榜单都有着比较大的变动,不过iOS由于设备的更新换代并没有那么快,所以相对来说变化并不大,特别是iOS好评榜,老款设
  • 28个SpringBoot项目中常用注解,日常开发、求职面试不再懵圈

    前言在使用SpringBoot开发中或者在求职面试中都会使用到很多注解或者问到注解相关的知识。本文主要对一些常用的注解进行了总结,同时也会举出具体例子,供大家学习和参考。注解
  • Python异步IO编程的进程/线程通信实现

    这篇文章再讲3种方式,同时讲4中进程间通信的方式一、 Python 中线程间通信的实现方式共享变量共享变量是多个线程可以共同访问的变量。在Python中,可以使用threading模块中的L
  • JVM优化:实战OutOfMemoryError异常

    一、Java堆溢出堆内存中主要存放对象、数组等,只要不断地创建这些对象,并且保证 GC Roots 到对象之间有可达路径来避免垃 圾收集回收机制清除这些对象,当这些对象所占空间超过
  • 微博大门常打开,迎接海外画师漂洋东渡

    作者:互联网那些事&ldquo;起猛了,我能看得懂日语了&rdquo;。&ldquo;为什么日本人说话我能听懂?&rdquo;&ldquo;中文不像中文,日语不像日语,但是我竟然看懂了&rdquo;&hellip;&hell
  • 三星Galaxy Z Fold5官方渲染图曝光:13.4mm折叠厚度依旧感人

    据官方此前宣布,三星将于7月26日在韩国首尔举办Unpacked活动,届时将带来带来包括Galaxy Buds 3、Galaxy Watch 6、Galaxy Tab S9、Galaxy Z Flip 5、
  • 滴滴违法违规被罚80.26亿 共存在16项违法事实

    滴滴违法违规被罚80.26亿 存在16项违法事实开始于2121年7月,历经一年时间,网络安全审查办公室对“滴滴出行”网络安全审查终于有了一个暂时的结束。据“网信
Top