JDK5.0新特性

 

目录

  • 静态导入
  • 自动装箱/拆箱
  • for-each循环
  • 可变参数 枚举

JDK 5.0 新特性简介

JDK 5.0 的一个重要主题就是通过新增一些特性来简化开发,这些特性包括:

  • 静态导入
  • 自动装箱/拆箱
  • for-each循环
  • 可变参数
  • 枚举
  • 泛型
  • 注解

  使用这些特性有助于编写更加清晰,精悍,安全的代码。

1.静态导入

  JDK5.0增加的静态导入语法用于导入指定类的某个静态属性值(方法),

  或全部静态属性值(方法) 静态导入语句使用 import static 语句

  导入指定类的单个静态属性: import static java.lang.System.out

  导入指定类全部静态属性 import static java.lang.Math.*

2.自动装箱/拆箱

  自动装箱(autoboxing):把一个基本数据类型直接赋给对应的包装类变量, 或者赋给 Object 变量

  自动拆箱:把包装类对象直接赋给一个对应的基本类型变量

Ø基本数据类型的自动拆箱与装箱

  • 自动装箱: Integer num1 = 12;
  • 自动拆箱: System.out.println(num1 + 12);

    基本数据类型的对象缓存: Integer num1 = 12; Integer num2 = 12;

    //这块相等,<=127都是真的 System.out.println(num1 == num2);

    Integer num3 = 129; 这块不相等,因为是对象 Integer num4 = 129;

    System.out.println(num3 == num4); Integer num5 = Integer.valueOf(12);

    Integer num6 = Integer.valueOf(12) ; 这块的道理同上 System.out.println(num5 == num6);

  自动拆装箱
  * 针对java八大基本数据类型推出
  * question1:
  * int
  * double
  * float
  * byte
  * char
  * short
  * boolean 布尔
  * long

3.for-each循环

使用foreach循环遍历数组和集合元素时, 无须获得数组和集合长度, 无须根据索引来访问数组元素和集合元素, forearch 循环自动遍历数组和集合的每个元素

语法格式: for(type varName : array | collection) { //varName 自动迭代访问每一个元素 }

4.可变参数

从JDK5.0 开始, Java 允许定义形参长度可变的参数,从而允许为方法指定数量不确定的形参 若在定义方法时,

在最后一个形参的类型后增加三点(…), 则表明该形参可以接受多个参数值, 多个参数值被当成数组传入 可变形参只能处于形参列表的最后,

所以一个方法最多只能有一个长度可变的形参 调用包含一个可变形参的方法时, 可以为该形参传入多个参数或一个数组

5.枚举类入门

JDK5 新增的enum关键字用于定义枚举类 枚举类和普通类的区别:

使用 enum 定义的枚举类默认继承了java.lang.Enum类 枚举类的构造器只能使用private访问控制符 枚举类的所有实例必须在枚举类中显示列出(”,”分隔,”;”结尾). 列出的事例系统会自动添加 public static final 修饰 所有的枚举类都提供了一个values方法, 该方法可以很方便地遍历所有的枚举值 JDK5.0 中可以在 switch 表达式中使用枚举类的对象作为表达式, case 子句可以直接使用枚举值的名字, 无需添加枚举类作为限定


java代码(自动拆装箱)

 
 
public class Demo1 {
public static void main(String[] args) {
int i=200;
Integer int1=300;
Integer int2=300;
System.out.println(int1==int2);
System.out.println(int1.equals(int2));
System.out.println("-----------------------"); Integer int3=100;
Integer int4=100;
System.out.println(int3==int4);
System.out.println(int3.equals(int4));
System.out.println("--------------------------"); Integer int5=Integer.valueOf(103);
Integer int6=Integer.valueOf(103);
System.out.println(int5==int6);
int x = int5;
}
}
 
 

java代码(for循环)

 
 
public class Demo3 {
public static void main(String[] args) {
int[] arr = new int[]{10,20,30,40,50};
for (int i:arr) {
System.out.println(i);
} Set<String> set = new HashSet();
set.add("a");
set.add("b");
set.add("c");
set.add("d");
set.add("e");
for (String s:
set) {
System.out.println(s);
} }
}
 
 

java代码(可变参数)

 
 
public class Demo4 {
public static void main(String[] args) {
Demo4.fun("aa");
Demo4.fun("bb",1);
Demo4.fun("cc",1,2,3);
int[] arr = new int[]{10,20,30};
Demo4.fun("dd",arr); }
public static void fun(String s,int... x){
System.out.println("___________");
System.out.println(x.length);
for (int i: x) {
System.out.println(i); }
}
}
 
 
 

JDK5.0新特性 (Day_07)的更多相关文章

  1. Java基础和JDK5.0新特性

    Java基础 JDK5.0新特性 PS: JDK:Java Development KitsJRE: Java Runtime EvironmentJRE = JVM + ClassLibary JV ...

  2. Javaweb学习笔记——(七)——————myexlipse基本使用、jdk5.0新特性及反射讲解

    1.debug调试模式: *使用这种模式,调试程序(看到程序运行停止在这一行) -显示出来行号 -双击左边,出现一个圆点,表示设置了一个断点 *使用debug as方式,运行程序 -特使是否进入到调试 ...

  3. Day07 jdk5.0新特性&Junit&反射

    day07总结 今日内容 MyEclipse安装与使用 JUnit使用 泛型 1.5新特性 自动装箱拆箱 增强for 静态导入 可变参数方法 枚举 反射 MyEclipse安装与使用(yes) 安装M ...

  4. Java JDK5.0新特性

    JDK5.0新特性 虽然JDK已经到了1.8 但是1.5(5.0)的变化是最大的 1. 增强for循环 foreach语句 foreach简化了迭代器 作用: 对存储对象的容器进行迭代 (数组, co ...

  5. JavaSE 学习笔记之Jdk5.0新特性(十九)

    Jdk5.0新特性: Collection在jdk1.5以后,有了一个父接口Iterable,这个接口的出现的将iterator方法进行抽取,提高了扩展性. --------------------- ...

  6. JDK5.0新特性1

    目录 静态导入 自动装箱/拆箱 for-each循环 可变参数 枚举 JDK 5.0 新特性简介 JDK 5.0 的一个重要主题就是通过新增一些特性来简化开发,这些特性包括: 静态导入 自动装箱/拆箱 ...

  7. JDK5.0新特性(静态导入、自动装箱/拆箱、增强for循环、可变参数、枚举、泛形)

    JDK5中新增了很多新的java特性,利用这些新语法可以帮助开发人员编写出更加高效.清晰,安全的代码. 这些新特性主要有:1.静态导入2.自动装箱/拆箱3.增强for循环4.可变参数5.枚举6.泛型7 ...

  8. Jdk5.0新特性

    增强for循环:foreach语句,foreach简化了迭代器. 格式:// 增强for循环括号里写两个参数,第一个是声明一个变量,第二个就是需要迭代的容器 for( 元素类型 变量名 : Colle ...

  9. JDK 5.0新特性

    时间:2016-11-5 12:03 JDK5.0新特性    泛型.枚举.静态导入.自动拆装箱.增强for循环.可变参数1.Junit单元测试    测试的对象是类中的一个方法.    junit不 ...

随机推荐

  1. 自动化kolla-ansible部署ubuntu20.04+openstack-victoria之ceph部署-07

    自动化kolla-ansible部署ubuntu20.04+openstack-victoria之ceph部署-07 欢迎加QQ群:1026880196 进行交流学习 近期我发现网上有人转载或者复制原 ...

  2. BPF for storage:一种受外核启发的反式

    BPF for storage:一种受外核启发的反式 译自:BPF for storage: an exokernel-inspired approach BPF主要用于报文处理,通过绕过网络栈提高报 ...

  3. Java JFR 民间指南 - 事件详解 - jdk.ObjectAllocationInNewTLAB

    重新申请 TLAB 分配对象事件:jdk.ObjectAllocationInNewTLAB 引入版本:Java 11 相关 ISSUES: JFR: RecordingStream leaks me ...

  4. Mysql之Mycat读写分离及分库分表

    ## 什么是mycat ```basic 1.一个彻底开源的,面向企业应用开发的大数据库集群 2.支持事务.ACID.可以替代MySQL的加强版数据库 3.一个可以视为MySQL集群的企业级数据库,用 ...

  5. k8s kubernetes给node节点添加标签和删除node节点标签

    node节点IP 192.168.1.205 给节点添加标签的命令 添加label语法 kubectl label nodes <node-name> <label-key>= ...

  6. 百度API定位根据经度、维度 返回当前详细地址

    百度地图API是一套为开发者免费提供的基于 百度地图的应用程序接口,包括JavaScript.iOS.Andriod.静态地图.Web服务等多种版本,提供基本地图.位置搜索.周边搜索等. 1 < ...

  7. hdu3594 强连通 tarjan

    题意: 判断是不是强连通图 ,同时每一条边必须只能在一个环里 思路:之前我的强连通用的全是双深搜,结果题目的第二个要求很难判断,一开始写了三个深搜加上并查集,结果越写越乱,其实就是在判断一个边是否只在 ...

  8. Android Hook框架adbi的分析(1)---注入工具hijack

    本文博客地址:http://blog.csdn.net/qq1084283172/article/details/74055505 一.Android Hook框架adbi的基本介绍 adbi是And ...

  9. hdu5025 状态压缩广搜

    题意:       悟空要救唐僧,中途有最多就把钥匙,和最多五条蛇,要求就得唐僧并且拿到所有种类的钥匙(两个1只拿一个就行),拿钥匙i之前必须拿到钥匙i-1,打蛇多花费一秒,问救出唐僧并且拿到所有种类 ...

  10. Python脚本破解Linux口令(crypt模块)

    环境 Kali Linux ,python版本2.7.13 . 我们利用Linux系统中的 crypt 模块模拟了Linux系统中用户密码的加密,在Windows中是不存在这个库的. 在Linux系统 ...