黑马程序员_java jdk5.0新特性和枚举的学习笔记

原创 2012年12月09日 00:48:54

------- android培训java培训、期待与您交流! ----------
 

1.Jdk5.0新特性:


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

2.增强for循环


  格式:
   for(数组或集合中的元素类型 变量名 : 数组或者Collection集合)
   {
    //这个变量其实就是从数组或者集合中依次取出的元素
   }

   好处:简化了数组和集合的遍历

3.可变参数(...):


用到函数的参数上,当要操作的同一个类型元素个数不确定的时候,可是用这个方式,这个参数可以接受任意个数的同一类型的数据。

和以前接收数组不一样的是:
以前定义数组类型,需要先创建一个数组对象,再将这个数组对象作为参数传递给函数。现在,直接将数组中的元素作为参数传递即可。底层其实是将这些元素进行数组的封装,而这个封装动作,是在底层完成的,被隐藏了。所以简化了用户的书写,少了调用者定义数组的动作。
如果在参数列表中使用了可变参数,可变参数必须定义在参数列表结尾(也就是必须是最后一个参数,否则编译会失败。)。
如果要获取多个int数的和呢?可以使用将多个int数封装到数组中,直接对数组求和即可。


4.静态导入:


导入了类中的所有静态成员,简化静态成员的书写,一般不太常用
import static java.util.Collections.*;  //导入了Collections类中的所有静态成员


5.自动拆装箱:


java中数据类型分为两种 : 基本数据类型   引用数据类型(对象)
在 java程序中所有的数据都需要当做对象来处理,针对8种基本数据类型提供了包装类,如下:
int --> Integer
byte --> Byte
short --> Short
long --> Long
char --> Character
double --> Double
float --> Float
boolean --> Boolean

jdk5以前基本数据类型和包装类之间需要互转:
基本---引用   Integer x = new Integer(x);
引用---基本   int num = x.intValue();
1)、Integer x = 1; x = x + 1;  经历了什么过程?装箱  拆箱  装箱;
2)、为了优化,虚拟机为包装类提供了缓冲池,Integer池的大小 -128~127 一个字节的大小;(享元模式)
3)、String池:Java为了优化字符串操作 提供了一个缓冲池;


6.枚举:

        枚举(Enum)就相当于一个类,其中也可以定义构造方法、成员变量、普通方法和抽象方法。枚举就是要让某个类型的变量的取值只能为若干个固定值中的一个,否侧,编译器就会报错。枚举可以让编译器在编译时就可以控制源程序中填写的非法值,普通变量的方式在开发阶段无法实现这一目标。
问题:对象的某个属性的值不能是任意的,必须为固定的一组取值其中的某一个;
解决办法:
1)、在setGrade方法中做判断,不符合格式要求就抛出异常;
2)、直接限定用户的选择,通过自定义类模拟枚举的方式来限定用户的输入,写一个Grade类,私有构造函数,对外提供5个静态的常量表示类的实例;
3)、枚举是JDK1.5增加的一个新特性,用于解决此类问题
4)、枚举就是一个特殊的java类,可以定义属性、方法、构造函数、实现接口、继承类;

注意事项:1、 枚举元素必须位于枚举体中的最开始部分

                   2、   可以使用只有一个成员的枚举实现单例
 public enum Weekday {
  SUN,MON,TUE,WED,THU,FRI,SAT;
 }

    复杂的带抽象方法的枚举
 public enum TrafficLamp {
  RED(40) {
   public TrafficLamp nextLamp() {
    return GREEN;
   }
  },
  GREEN(35) {
   public TrafficLamp nextLamp() {
    return YELLOW;
   }
  },
  YELLOW(5) {
   public TrafficLamp nextLamp() {
    return RED;
   }
  };
  public abstract TrafficLamp nextLamp();
  private int time;
  private TrafficLamp(int time) {this.time = time;}
 }

 

JDK4.0 ,JDK5.0,JDK6.0,JDK7.0,JDK8.0的新特性

paip.jdk1.4 1.5(5.0)  1.6(6.0) 7.0   8.0特点比较与不同 作者Attilax ,  EMAIL:1466519819@qq.com  来源:attilax...
  • zhouren1314
  • zhouren1314
  • 2014年09月16日 08:28
  • 1679

JDK5.0新特性:For—Each增强型for循环

一、格式 二、示例 1、打印数组元素 2、打印二维数组元素 3、打印字符串元素 4、打印一个集合ArrayList中的元素 三、限制条件 当遍历集合或数组时,如果需要访问集合或数组的下标,用增...
  • lpp1234567
  • lpp1234567
  • 2014年03月10日 17:13
  • 474

黑马程序员——JAVA学习笔记——Jdk5.0新特性

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- Jdk5.0新特性: 1、JAVA新特性对数组的支持 1.1   可变参数: 以往:调用...
  • tubao1991
  • tubao1991
  • 2015年03月22日 12:34
  • 194

黑马程序员_java jdk5.0新特性和枚举的学习笔记

------- android培训、java培训、期待与您交流! ---------- 1.Jdk5.0新特性: Collection在jdk1.5以后,有了一个父接口Iterable,这个接口的出...
  • rongbinjava
  • rongbinjava
  • 2015年08月22日 23:05
  • 357

JDK5.0新特性:

 5.0新特性:前提:1.      JVM没有变, 编译器改变2.      逐渐和C++融合接近(很多开始被遗弃的C++元素又被捡了回来)3.      程序员开发越发的简单了 5小点:1 自动封...
  • chenpy
  • chenpy
  • 2007年06月17日 15:59
  • 2518

jdk5.0的一些新特性(1)

在此记录我学习的笔记,方便以后查阅 以下简述了jdk5.0的一些新特性,还没有例举完 静态导入: import static +包 (好比绝对路径和相对路径的问题) 例: import stat...
  • IT______Rookie
  • IT______Rookie
  • 2017年04月17日 22:25
  • 193

Java5新特性之枚举

1.  概念   首先,枚举并不是一种新技术,而是一种基础数据类型.它隶属于两种基础类型中的值类型,如下:     2.  为什么要有枚举   枚举在真正的开发中是非常常用的,它的作用很简单...
  • wang379275614
  • wang379275614
  • 2014年09月29日 01:11
  • 1634

JDK5.0新特性-枚举

//静态导入:导入这个类里面的静态方法 import static java.lang.System.out; /** * 枚举类的一些简单例子. * @author 贺少辉. * creat...
  • sutku
  • sutku
  • 2010年07月19日 17:24
  • 607

黑马程序员-JDK5.0新特性(枚举,增强for,可变参数.........)

JDK5.0新特性 ------- android培训、java培训、期待与您交流! ----------   可变参数:          格式:  public void test( ...
  • success_51
  • success_51
  • 2012年10月21日 17:26
  • 779

JDK5.0新特性--枚举

枚举,JDK5.0的新特性之一,呵呵,貌似最近经常碰上它的新特性,诸如泛型、自动拆箱与装箱(autoboxing)等等,下面就谈谈我粗浅的理解,:)。1.如何定义一个枚举类首先给出个枚举的最简单的代码...
  • CMTobby
  • CMTobby
  • 2006年08月27日 12:11
  • 976
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:黑马程序员_java jdk5.0新特性和枚举的学习笔记
举报原因:
原因补充:

(最多只允许输入30个字)