1.可变参数

public void add(int... nums){int sum = 0;for(int i=0; i<nums.length; i++){sum += nums[i];}System.out.println(sum);
}

注意:当有多种参数时,可变参数放在最后

2.foreach

public void add(int[] nums){int sum = 0;for(int num : nums){sum += num;}System.out.println(sum);
}

注意:foreach最早在C#中使用;用于替换for循环

3.静态导入

package xyz.pascall.study;
import static java.util.Calendar.*;public class StaticImport {public static void main(String[] args) {System.out.println(DAY_OF_MONTH);}
}

注意:在导入包下方法的时候,一定要添加static关键词;使用时直接指定方法名即可

4.泛型

package xyz.pascall.study;import java.util.List;
import java.util.Map;public class StaticImport {public static void main(String[] args) {String name = new GenericityDemoOne<String>("小明").getT();System.out.println(name);}
}/*** 简单泛型使用* @author zhang** @param <T>*/
class GenericityDemoOne<T>{private T t;public GenericityDemoOne(T t) {this.t = t;}public T getT() {return t;}
}/*** 泛型在方法上使用* @author zhang**/
abstract class GenericityDemoTwo{/*** 泛型在方法上声明* @param t*/public static <T extends Object> void show(T t) {System.out.println(t);}/*** 通配符使用,泛型在方法参数上声明* @param list*/public static void show(List<? extends Object> list) {System.out.println(list);}/*** 泛型在抽象方法上使用* @param map*/public abstract <S, I> void show(Map<S, I> map);
}

注意:

  • 类在定义的时候使用一个标记,该标记为数据类型;
  • 泛型解决向下类型转化出错问题;
  • 泛型不能为基本数据类型,是能使引用数据类型;
  • 通配符“?”,可以配置不同类型的泛型;
  • ? extends 类:设置泛型上限(可在 声明和方法参数 上使用)
  • ? super 类:设置泛型下限(可在 方法参数 上使用)
  • 泛型可以定义类和接口,使用泛型时,注意声明泛型(通配符除外)
  • JDK 1.7及以后,在实例化泛型类型时,可以不用在右边声明数据类型(List<String> list = new ArrayList<>();)

5.枚举

package xyz.pascall.study;public class Enumeration {public static void main(String[] args) {Color red = Color.RED;System.out.println(red.getName());}
}/*** 枚举* @author zhang**/
enum Color{/*** 定义实例化Color类*/RED("红色"), GREEN("绿色");// 定义枚举属性private String name;private Color(String name) {this.name = name;}public String getName() {return name;}
}

注意:

  • 枚举类中定义的实例化必须放在类中最上面;
  • enum和Enum关系:enum是关键词,Enum是类;用enum定义的枚举=一个类继承了Enum抽象类;
  • Enum类的构造方法使用protected关键词修饰,属于构造方法私有化;
  • 枚举支持switch,枚举属于高级的多例模式

6.Annotation(JDK 1.5最大特色)

package xyz.pascall.study;/** Annotation中三种基本注解使用*/
public class AnnotationDemo{/*** Override:用于准确覆写父类的方法,否则编译时出错*/@Overridepublic String toString() {// TODO Auto-generated method stubreturn super.toString();}/*** Deprecated:用于声明方法过期*/@Deprecatedpublic void sayHello() {System.out.println("Hello");}/*** SuppressWarnings:用于压制多个警告*/@SuppressWarnings("unused")private String title;
}

注意:

  • Annotation利用注解的形式来实现程序的不同功能;
  • Annotation有三种基本注解:@Override, @Deprecated, @SuppressWarnings

转载于:https://www.cnblogs.com/pascall/p/9796888.html

JDK 1.5新特性相关推荐

  1. JDK 14的新特性:更加好用的NullPointerExceptions

    JDK 14的新特性:更加好用的NullPointerExceptions 让99%的java程序员都头痛的异常就是NullPointerExceptions了.NullPointerExceptio ...

  2. JDK 14的新特性:instanceof模式匹配

    JDK 14的新特性:instanceof模式匹配 JDK14在2020年的3月正式发布了.可惜的是正式特性只包含了最新的Switch表达式,而Records,patterns,text blocks ...

  3. JDK 5 ~ 10 新特性倾情整理

    转载自 JDK 5 ~ 10 新特性倾情整理 最近连 JDK11都在准备发布的路上了,大家都整明白了吗?也许现在大部分人还在用6-8,8的新特性都没用熟,9刚出不久,10-11就不用说了. 为了大家对 ...

  4. 各个JDK版本的新特性

    一.各个JDK版本的新特性 (1)JDK 5 : 1 . 自动装箱 2 . 泛型 3 . 动态注释 4 . 枚举 5 . 可变长参数 6 . 遍历循环 7 . 改进了 Java 的内存模型 8 . 提 ...

  5. JDK各版本新特性(更新到Java20)

    Hello,I'm Shendi 每当Java出新版本我会第一时间更新 目录 各版本JDK下载 JDK 1.0 1996-01-23 Oak(橡树) JDK 1.1 1997-02-19 JDK 1. ...

  6. JDK 14的新特性:switch表达式

    文章目录 简介 写在前面 连写case switch返回值 yield 总结 简介 switch的新特性可是源远流长,早在JDK 12就以预览功能被引入了,最终在JDK 14成为了正式版本的功能:JE ...

  7. 【Java】jdk 1.8 新特性——Lambda表达式

    Lambda表达式 jdk 1.8 新加入的特性,简化了简单接口的实现 函数式接口 函数式中只有一个待实现的方法,可以使用@FunctionalInterface注解标注函数式接口.这个接口中只能有一 ...

  8. JDK 8的新特性-Lambda表达式 精品文章总结

    文章目录 一. 前言 1.2 认识Lambda表达式 二. Lambda 表达式的格式 2.1 语法格式一: 无参数,无返回值,Lambda体只有一条语句 2.2 语法格式二: 有一个参数,并且无返回 ...

  9. JDK 1.8新特性Lambda入门

    网上关于java lambda的例子很多,但是这些五花八门的例子很不常见不常用,最后导致初学者望而却步,其实我们抓住lambda的本质之后,会发现lambda还是很好理解的.毕竟,java8设计lam ...

  10. 不停歇的 Java 即将发布 JDK 16,新特性速览!

    当开发者深陷 Java 8 版本之际,这边下一版本 Java 16 有了最新的消息,与 Java 15 一样,作为短期版本,Oracle 仅提供 6 个月的支持. 根据发布计划,JDK 16 将在 1 ...

最新文章

  1. 每日一套codeforce集训1119E[贪心],821C[栈模拟],645D[拓扑排序]
  2. 用ffmpeg把H264数据流解码成YUV420P
  3. 从PCB焊接角度谈画PCB图时应注意的问题
  4. des解密 given final_真相解密创新Aurvana Live SE评测怎么样?【使用一个月后感受实情爆料!!!...
  5. DataGrid的多行提交
  6. 关联规则java apriori_关联规则算法(The Apriori algorithm)详解
  7. 「BZOJ 2142」礼物
  8. 无传感FOC控制中的转子位置和速度确定方法一
  9. 【代码优化】考虑使用静态工厂方法代替构造器
  10. 这些年,我工作上走过的路
  11. 《程序员修炼之道——从小工到专家》 读书笔记
  12. 教你一招:Win10系统如何正确卸载edge浏览器?
  13. 微信指纹支付原理浅析
  14. ffmpeg截取视频
  15. UBI文件系统(转)
  16. 打破思维断层之KMP分析 - wsc - ITeye技术网站
  17. 雪糕效应与互联网营销
  18. android手机扇区数据读写,磁盘、SD卡、移动磁盘物理扇区读写
  19. OpenVINO 环境配置
  20. 用Python分析下王小波与李银河写情书最爱用哪些词

热门文章

  1. Exynos4412 中断驱动开发相关问题总结
  2. gzip和gunzip 解压参数
  3. [react-router] React-Router 3和React-Router 4有什么变化?添加了什么好的特性?
  4. [html] 什么是本地存储的有效期?
  5. [vue-element] 有用过哪些vue的ui?说说它们的优缺点?
  6. 工作300:处理预览界面
  7. 前端学习(2673):vite
  8. 前端学习(2591):刷新页面vuex消失
  9. “约见”面试官系列之常见面试题之第一百零一篇之vue-router传参(建议收藏)
  10. 前端学习(2161):vuecli项目得目录结构解析