JDK 1.5新特性
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新特性相关推荐
- JDK 14的新特性:更加好用的NullPointerExceptions
JDK 14的新特性:更加好用的NullPointerExceptions 让99%的java程序员都头痛的异常就是NullPointerExceptions了.NullPointerExceptio ...
- JDK 14的新特性:instanceof模式匹配
JDK 14的新特性:instanceof模式匹配 JDK14在2020年的3月正式发布了.可惜的是正式特性只包含了最新的Switch表达式,而Records,patterns,text blocks ...
- JDK 5 ~ 10 新特性倾情整理
转载自 JDK 5 ~ 10 新特性倾情整理 最近连 JDK11都在准备发布的路上了,大家都整明白了吗?也许现在大部分人还在用6-8,8的新特性都没用熟,9刚出不久,10-11就不用说了. 为了大家对 ...
- 各个JDK版本的新特性
一.各个JDK版本的新特性 (1)JDK 5 : 1 . 自动装箱 2 . 泛型 3 . 动态注释 4 . 枚举 5 . 可变长参数 6 . 遍历循环 7 . 改进了 Java 的内存模型 8 . 提 ...
- JDK各版本新特性(更新到Java20)
Hello,I'm Shendi 每当Java出新版本我会第一时间更新 目录 各版本JDK下载 JDK 1.0 1996-01-23 Oak(橡树) JDK 1.1 1997-02-19 JDK 1. ...
- JDK 14的新特性:switch表达式
文章目录 简介 写在前面 连写case switch返回值 yield 总结 简介 switch的新特性可是源远流长,早在JDK 12就以预览功能被引入了,最终在JDK 14成为了正式版本的功能:JE ...
- 【Java】jdk 1.8 新特性——Lambda表达式
Lambda表达式 jdk 1.8 新加入的特性,简化了简单接口的实现 函数式接口 函数式中只有一个待实现的方法,可以使用@FunctionalInterface注解标注函数式接口.这个接口中只能有一 ...
- JDK 8的新特性-Lambda表达式 精品文章总结
文章目录 一. 前言 1.2 认识Lambda表达式 二. Lambda 表达式的格式 2.1 语法格式一: 无参数,无返回值,Lambda体只有一条语句 2.2 语法格式二: 有一个参数,并且无返回 ...
- JDK 1.8新特性Lambda入门
网上关于java lambda的例子很多,但是这些五花八门的例子很不常见不常用,最后导致初学者望而却步,其实我们抓住lambda的本质之后,会发现lambda还是很好理解的.毕竟,java8设计lam ...
- 不停歇的 Java 即将发布 JDK 16,新特性速览!
当开发者深陷 Java 8 版本之际,这边下一版本 Java 16 有了最新的消息,与 Java 15 一样,作为短期版本,Oracle 仅提供 6 个月的支持. 根据发布计划,JDK 16 将在 1 ...
最新文章
- 每日一套codeforce集训1119E[贪心],821C[栈模拟],645D[拓扑排序]
- 用ffmpeg把H264数据流解码成YUV420P
- 从PCB焊接角度谈画PCB图时应注意的问题
- des解密 given final_真相解密创新Aurvana Live SE评测怎么样?【使用一个月后感受实情爆料!!!...
- DataGrid的多行提交
- 关联规则java apriori_关联规则算法(The Apriori algorithm)详解
- 「BZOJ 2142」礼物
- 无传感FOC控制中的转子位置和速度确定方法一
- 【代码优化】考虑使用静态工厂方法代替构造器
- 这些年,我工作上走过的路
- 《程序员修炼之道——从小工到专家》 读书笔记
- 教你一招:Win10系统如何正确卸载edge浏览器?
- 微信指纹支付原理浅析
- ffmpeg截取视频
- UBI文件系统(转)
- 打破思维断层之KMP分析 - wsc - ITeye技术网站
- 雪糕效应与互联网营销
- android手机扇区数据读写,磁盘、SD卡、移动磁盘物理扇区读写
- OpenVINO 环境配置
- 用Python分析下王小波与李银河写情书最爱用哪些词
热门文章
- Exynos4412 中断驱动开发相关问题总结
- gzip和gunzip 解压参数
- [react-router] React-Router 3和React-Router 4有什么变化?添加了什么好的特性?
- [html] 什么是本地存储的有效期?
- [vue-element] 有用过哪些vue的ui?说说它们的优缺点?
- 工作300:处理预览界面
- 前端学习(2673):vite
- 前端学习(2591):刷新页面vuex消失
- “约见”面试官系列之常见面试题之第一百零一篇之vue-router传参(建议收藏)
- 前端学习(2161):vuecli项目得目录结构解析