JDK 5.0新特性
时间:2016-11-5 12:03
JDK5.0新特性
泛型、枚举、静态导入、自动拆装箱、增强for循环、可变参数
1、Junit单元测试
测试的对象是类中的一个方法。
junit不属于JavaSE,要想使用需要导入相应的jar包。
首先junit有不同的版本。
单元测试方法命名规则:
必须是public
不能有返回值
不能有参数
运行测试方法时,需要在方法上面加上一个注释:
@Test //表示这是一个测试方法
@Ignore //表示该方法不进行单元测试
@Before //在每一个单元测试方法之前运行(如果有多个测试方法,都会先执行该方法)
@After //在每一个单元测试方法之后运行(如果有多个测试方法,都会后执行该方法)
当出现绿色条时,表示方法测试成功。
当出现红色条时,表示方法测试失败。
要想运行单个测试方法,需要选中方法名之后再运行。
断言:
Assert.assertEquals(expected, actual);
expected:测试期望值
actual:方法运行的实际值
当期望值和实际值相同,则单元测试通过,否则失败。
2、泛型
在JDK5.0以前,对象保存到集合中就会失去其特性,取出时需要程序员手动进行类型的强制转换,这样不可避免会引发程序的一系列安全性问题。
泛型擦除:
泛型只是出现在源代码阶段,当源代码编译之后,泛型就不存在了。
定义泛型类实现数组倒置:
3、枚举
只能在一定的范围内取值,这个值只能是范围内的任意一个值。
例如周一到周日。
为什么需要枚举?
JDK5.0新增的enum关键字用于定义一个枚举类:
enum Week {
枚举类案例:
有参构造方法枚举类型
需要在每个实例上都写上参数:Week(String s) {} → Sunday("")
带有抽象方法的枚举类型举例
在枚举的每个实例中都要重写这个抽象方法。
练习:
编写一个关于星期几的枚举类(Week),要求:
枚举值:Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday
该枚举类有一个方法,调用该方法返回中文格式的星期数。
4、枚举API
String name()
返回枚举的名称。
int ordinal()
返回枚举的下标,下标从0开始。
static Enum valueOf(Class enumType, String name)
返回枚举的对象。
自定义的枚举类,在编译阶段自动生成两个方法:
Enum valueof(String name)
获取枚举对象。
Enum[] values()
获得所有枚举对象的数组。
5、静态导入
可以在代码中,直接使用静态导入方式,导入静态方法或者常量。
6、自动拆装箱
装箱:
把基本的数据类型转换成包装类。
拆箱:
把包装类转换成基本的数据类型。
自动装箱:
Integer i = 10;
自动拆箱:
int j = i;
7、增强for循环
引入增强for循环的原因:替代Iterator
for/in语句的适用范围:
遍历数组
遍历实现Iterable接口的集合类
增强for循环底层实现也是迭代器,可以通过class文件查看。
8、可变参数
如果说实现的多个方法,这些方法中逻辑基本相同,唯一不同的是传递参数的个数,那么可以使用可变参数。
可变参数应用场景:
实现两个数的相加,再实现三个数的相加,再实现四个数的相加.......
注意:
(1)可变参数需要写在方法的参数列表中,不能单独定义。
(2)在方法的参数列表中只能有一个可变参数。
(3)如果有其他参数,则可变参数必须放在参数列表的最后。
JDK 5.0新特性的更多相关文章
- JDK5.0新特性 (Day_07)
JDK5.0新特性 目录 静态导入 自动装箱/拆箱 for-each循环 可变参数 枚举 JDK 5.0 新特性简介 JDK 5.0 的一个重要主题就是通过新增一些特性来简化开发,这些特性包括 ...
- JDK5.0新特性1
目录 静态导入 自动装箱/拆箱 for-each循环 可变参数 枚举 JDK 5.0 新特性简介 JDK 5.0 的一个重要主题就是通过新增一些特性来简化开发,这些特性包括: 静态导入 自动装箱/拆箱 ...
- Java基础和JDK5.0新特性
Java基础 JDK5.0新特性 PS: JDK:Java Development KitsJRE: Java Runtime EvironmentJRE = JVM + ClassLibary JV ...
- atitit.Servlet2.5 Servlet 3.0 新特性 jsp2.0 jsp2.1 jsp2.2新特性
atitit.Servlet2.5 Servlet 3.0 新特性 jsp2.0 jsp2.1 jsp2.2新特性 1.1. Servlet和JSP规范版本对应关系:1 1.2. Servlet2 ...
- Hadoop3.0新特性介绍,比Spark快10倍的Hadoop3.0新特性
Hadoop3.0新特性介绍,比Spark快10倍的Hadoop3.0新特性 Apache hadoop 项目组最新消息,hadoop3.x以后将会调整方案架构,将Mapreduce 基于内存+io+ ...
- Javaweb学习笔记——(七)——————myexlipse基本使用、jdk5.0新特性及反射讲解
1.debug调试模式: *使用这种模式,调试程序(看到程序运行停止在这一行) -显示出来行号 -双击左边,出现一个圆点,表示设置了一个断点 *使用debug as方式,运行程序 -特使是否进入到调试 ...
- Day07 jdk5.0新特性&Junit&反射
day07总结 今日内容 MyEclipse安装与使用 JUnit使用 泛型 1.5新特性 自动装箱拆箱 增强for 静态导入 可变参数方法 枚举 反射 MyEclipse安装与使用(yes) 安装M ...
- Hadoop3.0新特性
1. Hadoop3.0简介 Hadoop 2.0是基于JDK 1.7开发的,而JDK 1.7在2015年4月已停止更新,这直接迫使Hadoop社区基于JDK1.8重新发布一个新的Hadoop版本,而 ...
- Java JDK5.0新特性
JDK5.0新特性 虽然JDK已经到了1.8 但是1.5(5.0)的变化是最大的 1. 增强for循环 foreach语句 foreach简化了迭代器 作用: 对存储对象的容器进行迭代 (数组, co ...
随机推荐
- 小猿圈-IT自学人的小圈子 【强力推荐学习】
笔记链接 https://book.apeland.cn/details/322/ 学习视频 https://www.apeland.cn/python
- 微信小程序云开发-数据库表创建和操作
一.新建云数据库 进入[云开发]界面,点击[数据库]>添加>创建集合>确定. 二.向数据库中添加数据 选中[数据库],点击[添加记录],向数据库中添加记录 添加[字段]和[值],并选 ...
- [JS]闭包和词法环境
词法环境 词法环境(lexical environment)由两个部分组成: 环境记录--一个存储所有局部变量作为其属性的对象. 对外部词法环境的引用,与外部代码相关联. 全局词法环境在脚本执行前创建 ...
- Redis解读(4):Redis中HyperLongLog、布隆过滤器、限流、Geo、及Scan等进阶应用
Redis中的HyperLogLog 一般我们评估一个网站的访问量,有几个主要的参数: pv,Page View,网页的浏览量 uv,User View,访问的用户 一般来说,pv 或者 uv 的统计 ...
- 基于小熊派Hi3861鸿蒙开发的IoT物联网学习【二】
HarmonyOS内核开发-信号量开发案例学习记录 一.LiteOS里面的任务管理介绍: 任务状态通常分为以下四种: 就绪(Ready):该任务在就绪列表中,只等待CPU. 运行(Running) ...
- g6中的变换矩阵matrix
在看g6文档的时候看到一个变换矩阵,不明觉厉,如下 matrix = 1 0 0 0 1 0 0 0 1 于是查资料了解里面每个数字的意义,和css3的matrix()方法似乎类同 transform ...
- linux之frp服务部署(内网穿透)
frp服务部署(内网穿透) 目的 更快的进行内网穿透调试以及云端开发测试 服务器为CentOS 7,客户端为win11 frp介绍 frp 是一个开源项目, 采用 C/S 模式,将服务端部署在具有公网 ...
- Tensorflow2对GPU内存的分配策略
一.问题源起 从以下的异常堆栈可以看到是BLAS程序集初始化失败,可以看到是执行MatMul的时候发生的异常,基本可以断定可能数据集太大导致memory不够用了. 2021-08-10 16:38:0 ...
- Redis是不是真的变慢了?
大家好,今天我们来学习一下如何确定Redis是不是真的变慢了. 我们在使用redis时一定会遇到变慢的时候,那我们如何来判断Redis是否真的变慢了呢, 一个最直接的方法就是查看Redis的响应延迟, ...
- 七夕特别篇|用Python绘画牛郎织女在鹊桥相见
大家好,我是辰哥~ 今天就是七夕节,首先提前祝福有伴侣的小伙伴,七夕快乐,没有伴侣的小伙伴,今天就会找到伴侣,(给看到这句话的你好运加持,哈哈哈). 作为会Python的我们必须做点好玩且有意义的东西 ...