JDK 5.0 特性

1.静态导入(import static 语句导入一个类中的某个静态方法或所有静态方法)

如: import static java.lang.Math.*;

2.可变参数

1. 只能出现在参数列表的最后

2. ...位于变量类型和变量名之间,前后有无空格都可以

3. 调用可变参数方法时,编译器为该可变参数隐含创建一个数组,在方法体中以数组的形式访问可变参数

3.增强for循环 for (type 变量名:集合变量名){...}

1.迭代变量必须在()中定义

2.集合变量可以是数组或实现了Iterable接口的集合类

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

Integer i1 = 10;

Integer i2 = 10;

System.out.println(i1 == i2);  (true)

( /*这些小数字(一个字节 -127~128)使用的频率可能会比较高,所以,不必为每个数字赋一个对象,而是第一次将这些小数字包装成对象后,便将其缓存到一个池中,下次

要把这些小数字装成Integer对象,就往池里面找,池里面有的话,就从池子里面拿,不封装成对象*/)

Integer i3 = 138;

Integer i4 = 138;

System.out.println(i3 == i4);  (false)

享元设计模式 (flyweight):

有很多个小的对象,对象之间有很多属性相同,把这些小对象 变成一个对象,那些不同的属性将其变成该大对象方法的参数,称之为外部状态,相同的属性称之为内部状态

如:在编辑中的一些字母数据,不会每写一个字母,就创建一个对象,而是创建26个对象,对应26个字母,这26个对象有很多属性(如都是a)相同,但是位置(x坐标,y坐标)不同

可以为26个对象设置一个display(int x,int y)方法,

5.枚举(枚举可以编译器在编译时就可以控制源程序中填写非法值,普通变量的方式在开发阶段无法实现这一目标)

用普通类如何实现枚举功能,定义一个Weekday的类来模拟枚举功能

1.私有的构造方法

2.每个元素分别用一个公有的静态成员变量表示

3.可以有若干公有方法或一个抽象方法 例如:要提供nextDay方法必须是抽象的,采用抽象方法定义nextDay就将大量的if..else语句转移成了一个个独立的类

枚举是一种特殊的类,其中的每个元素都是该类的一个实例对象,例如可以调用WeekDay.SUN.getClass.getName 和WeekDay.class.getName().

java5的枚举的基本应用

Weekday weekday = Weekday.SUN;

weekday.xxxxx();

public enum {SUN,MON;}

带有构造方法的枚举

//1.枚举类构造函数权限必须为私有 2.构造函数要放到静态变量后面

带有抽象方法的枚举

public abstract Light nextLight();

RED(60){

@Override

public Light nextLight() {

return GREEN;

}

}

Java基础加强-jdk1.5的一些新特性的更多相关文章

  1. 黑马程序员_Java基础:JDK1.5后的新特性:自动拆装箱,以及注意事项

    ------- android培训.java培训.期待与您交流! ---------- 首先来看一段代码: Integer x = new Integer(4); Integer y = 4; 在JD ...

  2. Java日期时间操作基础——包含JDK1.8时间操作新特性

    JDK1.7日期时间操作 示例小结 public class DateTest { public static final String FORMAT_DATE = "yyyy-MM-dd& ...

  3. Java基础知识总结之1.8新特性lambda表达式

    函数式接口 函数式接口(functional interface 也叫功能性接口,其实是同一个东西).简单来说,函数式接口是只包含一个方法的接口.比如Java标准库中的java.lang.Runnab ...

  4. jdk1.5出现的新特性---->增强for循环

    import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; import java.util.Map; ...

  5. 总结:JDK1.5-JDK1.8各个新特性

    JDK1.5-JDK1.8各个新特性 JDK各个版本的新特性 要了解一门语言,最好的方式就是要能从基础的版本进行了解,升级的过程,以及升级的新特性,这样才能循序渐进的学好一门语言.以下介绍一下JDK1 ...

  6. Java单元測试工具JUnit 5新特性一览

    Java单元測试工具JUnit 5新特性一览 作者:chszs,未经博主同意不得转载. 经许可的转载需注明作者和博客主页:http://blog.csdn.net/chszs JUnit是最流行的开源 ...

  7. [转]【JVM】调优笔记2-----JVM在JDK1.8以后的新特性以及VisualVM的安装使用

    [From]https://www.cnblogs.com/sxdcgaq8080/p/7156227.html               隔壁的,加个引用做书签! [JVM]调优笔记2-----J ...

  8. 夯实Java基础(十四)——Java8新的日期处理类

    1.前言 Java8之前处理日期一直是Java程序员比较头疼的问题,从Java 8之后,Java里面添加了许多的新特性,其中一个最常见也是最实用的便是日期处理的类——LocalDate.LocalDa ...

  9. Java Development Kit (JDK) 发展历程 及新特性

    SE(J2SE),standard edition,标准版,是我们通常用的一个版本,从JDK 5.0开始,改名为Java SE. EE(J2EE),enterprise edition,企业版,使用这 ...

随机推荐

  1. C#泛型学习

    什么是泛型 泛型是程序设计语言的一种特性.允许程序员在强类型程序设计语言中编写代码时定义一些可变部分,那些部分在使用前必须作出指明.各种程序设计语言和其编译器.运行环境对泛型的支持均不一样.将类型参数 ...

  2. NET-使用Js调用WebService

    注:JsWebServiceObject 此类是我做测试示例时为了测试js是否能调用webService中的复合类型而单独新建的一个类 此类中只有名字与年龄的属性. 最近身边的一个朋友做项目,其中有一 ...

  3. Python源码编译安装,supervisor配置管理

    apt-get remove 会删除软件包而保留软件的配置文件 apt-get purge 会同时清除软件包和软件的配置文件 virtualenv -p /usr/local/bin/python3. ...

  4. OpenGL学习笔记 之一 (基本的图形绘制)

    参考网址:http://www.cnblogs.com/FredCong/archive/2012/10/13/2722893.html #include <glut.h> #includ ...

  5. CentOS 7 安装wordpress

    1.安装php 要安装php 7,必须使用下面的命令在Centos7系统上安装并启用epel和remi存储库. 输入一下代码, yum install http://rpms.remirepo.net ...

  6. 提高.NET应用性能

    提高.NET应用性能的方法 写在前面 设计良好的系统,除了架构层面的优良设计外,剩下的大部分就在于如何设计良好的代码,.NET提供了很多的类型,这些类型非常灵活,也非常好用,比如List,Dictio ...

  7. JDK+Jmeter 环境搭建

    1.下载JDK安装包,默认安装next即可 2. 3. 4. 5. 6.变量名:JAVA_HOME 变量的值为你安装JDK的目录 我这里是放在C盘 7. 8.添加新的变量值: %JAVA_HOME%\ ...

  8. Java面试 - 重载(Overload)和重写(Override)的区别?

    1.重载是在同一个类中,可声明多个同名方法,但参数列表不同(参数顺序,个数,类型).而重写是在子类中,对从父类中继承的方法进行重新编写,但方法名,参数列表(参数顺序,个数,类型),返回值类型必须保持一 ...

  9. [转帖]Linux内核剖析(一)Linux的历史

    Linux内核剖析(一)Linux的历史 https://www.cnblogs.com/alantu2018/p/8991158.html Unix操作系统 Unix的由来 汤普逊和里奇最早是在贝尔 ...

  10. 深入理解 Css3 的 clip-path

    clip-path CSS 属性可以创建一个只有元素的部分区域可以显示的剪切区域.区域内的部分显示,区域外的隐藏.clip-path属性代替了现在已经弃用的剪切 clip属性.clip-path的属性 ...