【Java挠头】可变参、foreach、Annotation等特性

简介: 【Java挠头】可变参、foreach、Annotation等特性

–本文摘要–

   1、本文的目标读者:是了解Java基础,想进一步掌握项目中常使用的Java特性的读者。

   2、本文的内容摘要:讲述Java中的一些特性,可变参、foreach循环、Annotation、@Override、@Deprecated、@SuppressWarning。

   【版权声明】归CSDN账户[征途黯然.]/公众号[三黄工作室]原创,禁止任何网站与个人采集或转载。

一、可变参


   可变参的概念是:在方法中不确定需要传递的参数的个数,此时使用可变参的语法,即...

   简单示例如下:

// 普通函数 - 两个数相加
public add(int a, int b){
  return a+b;
}
// 利用方法的重载 - 三个数相加
public add(int a, int b, int c){
  return a+b+c;
}
// 使用可变参,可以任意个数相加。不需要写那么多重载的方法
public add(int ...nums){
  int sum = 0;
  for(int x : nums){
    sum += x;
  }
  return sum;
}

【注意】

1、可变参,这是一种思想。在ES6语法中,可变参很常见;在python等其他语言中也都有这个概念,但是可能写法不同。

2、上升到程序员的修养这块来说,我们应该理解每个技术的思想。从某个语言中的特性,拓展到其他语言的特性,最后总结出所有语言的共性。这样才能保持竞争力。

3、我们在项目中,通常在底层的父类、工具栏中使用可变参,对象是Object或者泛型,并不局限于上例中的int类型。

二、foreach循环


   Java中foreach循环是加强型的for循环,用于简化数组和集合的遍历操作。传统的for循环遍历必须通过下标来控制,foreach循环较为便捷。下面代码是两种写法的对比:

int nums[] = new int[]{1,2,3,4,5};
//传统for
for(int i = 0; i < nums.length; i++){
  ……nums[i]……
}
// foreach循环
foreach(int x : nums){
  ……x……
}

在项目中,foreach使用较多。

三、Annotation(注解)


   注解是Java中的一个强大功能,日常开发中离不开注解。例如SSM中有@Controller、@Service等等,甚至原生的注解@Override、@Deprecated、@SuppressWarning。


   Java新特性中,主要讲解开发常用注解@Override、@Deprecated、@SuppressWarning。

@Override


   准确的重写

   当重写方法时,为了保证子类所重写的方法的确是父类定义过的方法,可以加上@Override注解。这样当我们重写的这个方法出现错误,可以在编译时就检查出来。

@Deprecated


   过期声明

   在某个方法已经被大量使用,现在我们已经新写了一个功能更好的方法时,我们在就方法上加上注解@Deprecated。表明,这个方法已经过期,应该使用更好的方法,这个方法不删除因为还在使用。

@SuppressWarning


   压制警告

这个类似于PHP中的@,在变量前加@可以屏蔽空值警告

   某个方法在编译时可能出现安全警告,大量的安全警告使我们查看控制台出现困扰,我们可以压制警告,不让它打印输出。

   我们一般使用如下代码,来压制常见的两种警告:

@SuppressWarning({"rawtypes", "unchecked"})



相关文章
|
4月前
|
存储 Java
深入探讨了Java集合框架中的HashSet和TreeSet,解析了两者在元素存储上的无序与有序特性。
【10月更文挑战第16天】本文深入探讨了Java集合框架中的HashSet和TreeSet,解析了两者在元素存储上的无序与有序特性。HashSet基于哈希表实现,添加元素时根据哈希值分布,遍历时顺序不可预测;而TreeSet利用红黑树结构,按自然顺序或自定义顺序存储元素,确保遍历时有序输出。文章还提供了示例代码,帮助读者更好地理解这两种集合类型的使用场景和内部机制。
60 3
|
4月前
|
存储 安全 Java
Java Map新玩法:探索HashMap和TreeMap的高级特性,让你的代码更强大!
【10月更文挑战第17天】Java Map新玩法:探索HashMap和TreeMap的高级特性,让你的代码更强大!
106 2
|
4月前
|
存储 Java 数据处理
Java Set接口凭借其独特的“不重复”特性,在集合框架中占据重要地位
【10月更文挑战第16天】Java Set接口凭借其独特的“不重复”特性,在集合框架中占据重要地位。本文通过快速去重和高效查找两个案例,展示了Set如何简化数据处理流程,提升代码效率。使用HashSet可轻松实现数据去重,而contains方法则提供了快速查找的功能,彰显了Set在处理大量数据时的优势。
56 2
|
30天前
|
Java
Java中的控制流语句:if、switch、for、foreach、while、do-while
Java中的控制流语句包括条件判断语句 `if`和 `switch`,以及循环语句 `for`、增强型 `for`(`foreach`)、`while`和 `do-while`。这些语句提供了灵活的方式来控制程序的执行流程,确保代码逻辑清晰且易于维护。掌握这些基本语法,对于编写高效和可读的Java程序至关重要。
56 15
|
2月前
|
存储 Java 开发者
什么是java的Compact Strings特性,什么情况下使用
Java 9引入了紧凑字符串特性,优化了字符串的内存使用。它通过将字符串从UTF-16字符数组改为字节数组存储,根据内容选择更节省内存的编码方式,通常能节省10%至15%的内存。
|
2月前
|
存储 Java 数据挖掘
Java 8 新特性之 Stream API:函数式编程风格的数据处理范式
Java 8 引入的 Stream API 提供了一种新的数据处理方式,支持函数式编程风格,能够高效、简洁地处理集合数据,实现过滤、映射、聚合等操作。
101 6
|
3月前
|
分布式计算 Java API
Java 8引入了流处理和函数式编程两大新特性
Java 8引入了流处理和函数式编程两大新特性。流处理提供了一种声明式的数据处理方式,使代码更简洁易读;函数式编程通过Lambda表达式和函数式接口,简化了代码书写,提高了灵活性。此外,Java 8还引入了Optional类、新的日期时间API等,进一步增强了编程能力。这些新特性使开发者能够编写更高效、更清晰的代码。
50 4
|
4月前
|
存储 Java API
优雅地使用Java Map,通过掌握其高级特性和技巧,让代码更简洁。
【10月更文挑战第19天】本文介绍了如何优雅地使用Java Map,通过掌握其高级特性和技巧,让代码更简洁。内容包括Map的初始化、使用Stream API处理Map、利用merge方法、使用ComputeIfAbsent和ComputeIfPresent,以及Map的默认方法。这些技巧不仅提高了代码的可读性和维护性,还提升了开发效率。
170 3
|
4月前
|
存储 安全 Java
Java Map新玩法:深入探讨HashMap和TreeMap的高级特性
【10月更文挑战第19天】Java Map新玩法:深入探讨HashMap和TreeMap的高级特性,包括初始容量与加载因子的优化、高效的遍历方法、线程安全性处理以及TreeMap的自然排序、自定义排序、范围查询等功能,助你提升代码性能与灵活性。
40 2
|
4月前
|
Java 开发者
在Java集合世界中,Set以其独特的特性脱颖而出,专门应对重复元素
在Java集合世界中,Set以其独特的特性脱颖而出,专门应对重复元素。通过哈希表和红黑树两种模式,Set能够高效地识别并拒绝重复元素的入侵,确保集合的纯净。无论是HashSet还是TreeSet,都能在不同的场景下发挥出色的表现,成为开发者手中的利器。
42 2