Jdk1.5新特性之静态导入

jdk1.5新特性值静态导入

静态导入的作用:简化缩写

静态导入的作用:可以作用一个类的所有静态成员。

静态导入的格式:import static 包名.类名.静态的成员

import static java.util.Collections.sort; //静态导入指定的某个静态成员方法

import static java.util.Collections.*;  导入所有的静态成员

除了可以导入静态的成员方法,也可以静态的导入成员变量,比如System.out就是一个典型的静态成员,每次都写那么多的System是多么的麻烦,可以向下面这样静态导入:

Import static java.lang.System.out; 以后输出的时候可以直接使用out

注意事项:如果本类中有个方法和静态导入的方法,完全一样的时候,那么本类的方法将将会覆盖静态导入的方法,这个简记为就近原则。如果需要使用静态导入的成员,需要在静态成员前面加上类名。

Jdk1.5新特性之增强for循环

Iterable

|——Collection 单例集合的跟接口

之前说Collection是单例集合的根接口,其实上面还有一个超级根接口Iterable,实现这个接口的主要目的是为类拥有增强for循环的功能。

jdk1.5新个性值增强for循环

增强for循环的而作用:简化迭代器的书写格式。之所以这样说,事实上,增强for循环底层还是用迭代器实现的,所以,在增强for循环的过程中也是不能使用集合来修改元素的个数,慎之,慎之。

增强for循环的适用范围:如果使用增强for循环必须要实现Iterable接口的对象或者是数组对象。

增强for循环的格式:

for(变量类型 变量类型 : 遍历的目标)

{

}

通过实例可以很明显的看出来,增强for循环就是比迭代器用起来更简便一些

增强for循环的注意事项:

1、增强for循环的底层也是使用了迭代器获取的,只不过获取迭代器是有jvm来完成的,不需要我们获取迭代器而已,所以在使用增强for循环的时候,不允许改变集合的元素的个数。

2、迭代器遍历元素与增强for循环遍历元素的区别是:使用迭代器遍历结合的元素时可以删除集合的元素,当我们使用增强for循环时是不能做增删操作的,因为增强for循环中维护的迭代器对象在jvm手中。

3、普通的for循环和增强for循环的区别:普通for循环不需要遍历的目标,但是增强for循环一定要有遍历的目标,有时相当是一宗对空间的浪费。到底使用哪种方式(普通for,iterator,增强for),视实际情况

4、注意了,注意Map集合没有实现Iterable接口,所以不能直接使用增强for循环,如果要使用增强for循环要现借助于Collection的集合,先取出到Set中

Jdk1.5新特性之 可变参数

可变参数格式:

数据类型... 变量名

可变参数需要注意的细节:

1、如果一个函数的形参使用了可变参数之后,那么调用该方法的时候可以传递参数也可以不传递参数。

2、可变参数实际上是一个数组对象

3、可变参数必须位于形参中的最后一个。

4、一个方法最多只能有一个可变参数,很明显参数列表只有一个最后位置。

Jdk1.5新特性之 自动装箱与自动拆箱

java是面向对象 的语言,任何事物都可以用类来解决,sun就使用了

一些描述java中八种基本数据类型的数据类型

基本数据类型 基本类型的包装类型

byte Byte

short Short

int Integer

long Long

float Float

double Double

boolean Boolean

char Character

基本数据类型对应包装类型的好处:

1、 包装类型,基本数据类型的数据也可以使用一些方法。

//整数变成字符串

System.out.println("整数转换成对应的字符串:"+Integer.toString(1));

//把整数转换成对应的禁止形式

System.out.println("转成二进制:"+Integer.toBinaryString(10));

System.out.println("十进制到八进制:"+Integer.toOctalString(10));

System.out.println("10到十六进制:"+Integer.toHexString(10));

//可以把字符串当成对应的禁止数据帮你转换

String data = "10";

int a = Integer.parseInt(data, 11); //进制的范围最大不超过36

System.out.println("a = "+a);

//自动装箱:自动把java的基本数据类型的数据转成对象数据类型

int tmp = 10;

Integer b = tmp;

//自动拆箱:把引用类型的数据转换成基本类型的数据

Integer c = new Integer(13);

int d = c;

System.out.println(d);

//引用的数据类型

Integer e = 127;

Integer f = 128;

System.out.println("e == f:"+(e==f)); syso true

//Integer类内部维护了一个缓冲数组存储了-128~+127这些数据在一个数组中,如果你获取的数据失落在这个范围之内的,

//就直接从该缓冲区内获取对应的数据 这个完全可以查看Integer的源码

Jdk1.5新特性之枚举类型

有关枚举可以参见另一篇文章,讲的很详细,地址:http://www.cnblogs.com/OliverZhang/p/6003178.html

说说从网上和javacore上看的有关枚举的一句经典的介绍,你看 enum Sez{man, woman;}就这么简简单单的一句都做了写什么呢?在java类库中存在这么一个类Enum这个类叫做枚举类,一旦使用enum关键字修饰Sex,那么Sex就变成了Enum的子类......

问题:某些方法所接受的数据必须是在固定范围之内的。

解决方案:自定义一个类,然后是私有化函数,在自定义类中创建类的对象。

Jdk1.5之后对以上问题提供了新的解决方案。

枚舉解決的問題:一些方法在運行時,他需要的數據不是任意的,而是在一定的範圍內的。

枚舉類的定義格式:

enum 類名

{

}

枚舉要注意的細節:(結合反編譯 javap -c -l -private Sex)

1、枚舉也是一個特殊的類

2、枚舉值默認的修飾符是public static final day19.Sex man;

3、枚舉值所屬的類的數據類型,枚舉值是指向了本類的對象。本例中是一個Sex型的。

4、枚举类的构造方法默认是private型的。

5、枚举类可以定义自己的成员变量与成员函数。

6、枚举类可以自定义构造函数,但是构造函数的修饰符必须是private。

7、枚举类可以存在抽象的方法,但是枚举值必须要实现抽象的方法。

8、枚举值必须要位于枚举类的第一个语句,否则报错。

枚举使用的范围:

方向,性别,季节,星期,尺码,,,,,,

switch 语句适用的数据类型:byte、char、short、int、String、枚举

注意:case语句后面的枚举值,只需要但写枚举值,不要声明这个枚举值属于哪个枚举类,否则报错。为什么呢?1因为在进switch(season)

语句的时候,这个时候就已经判断了枚举类型,2你不小心可能会传入别的枚举值比如Sex.man等

(14)jdk1.5开始的一些新特性:静态导入,增强for循环,可变参数,自动装箱/拆箱,枚举类型的更多相关文章

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

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

  2. java基础1.5版后新特性 自动装箱拆箱 Date SimpleDateFormat Calendar.getInstance()获得一个日历对象 抽象不要生成对象 get set add System.arrayCopy()用于集合等的扩容

    8种基本数据类型的8种包装类 byte Byte short Short int Integer long Long float Float double Double char Character ...

  3. 理解JDK1.5的自动装箱拆箱

    JDK1.5的升级引入了装箱和拆箱概念,简单说就是为了简化书写. JDK1.5之前,创建Integer对象是需要这么写的  Integer i = new Integer("3") ...

  4. 黑马程序员——【Java高新技术】——JDK1.5新特性:静态导入、可变参数、增强型for循环、自动装箱拆箱、枚举

    ---------- android培训.java培训.期待与您交流! ---------- 一.静态导入 1.import和import static区别: (1)import 是导入一个类或某个包 ...

  5. Java JDK5新特性-静态导入

    2017-10-31 00:10:50 静态导入格式:import static 包名 ...类名.方法名: 也就说可以直接导入到方法名. 注意: 方法必须是静态的 如果有多个同名的静态方法,容易不知 ...

  6. 转:关于C++14:你需要知道的新特性

    关于C++14:你需要知道的新特性 遇见C++ Lambda C++14 lambda 教程 C++11 lambda表达式 C++标准库:使用 std::for_each std::generate ...

  7. java13-5 JDK1.5以后的一个新特性和Integer的面试题

    1.JDK5的新特性 自动装箱:把基本类型转换为包装类类型 自动拆箱:把包装类类型转换为基本类型 注意一个小问题: 在使用时,Integer x = null;代码就会出现NullPointerExc ...

  8. Spring4.1新特性——Spring MVC增强

    目录 Spring4.1新特性——综述 Spring4.1新特性——Spring核心部分及其他 Spring4.1新特性——Spring缓存框架增强 Spring4.1新特性——异步调用和事件机制的异 ...

  9. Java 14 令人期待的 5 大新特性,打包工具终于要来了

    随着新的 Java 发布生命周期的到来,新版本预计将于 2020 年 3 月发布,本文将对其中的 5 个主要特性作些概述. Java 13刚刚发布给开发人员使用不久,最新版本的JDK于2019年9月发 ...

随机推荐

  1. Android之Activity系列总结(一)--Activity概览

    Activity 本文内容 创建 Activity 实现用户界面 在清单文件中声明 Activity 启动 Activity 启动 Activity 以获得结果 结束 Activity 管理 Acti ...

  2. 自述创业史 | XMove动作感应系统(二)

    XMove是沙漠君和几个死党从2010年开始开发的一套人体动作捕捉系统,软硬件全部自行开发,投入了大量的精力,历经三年,发展四个版本.文章分上下篇,本文为下篇,前三代的故事在<光荣与梦想| XM ...

  3. 深入理解DOM事件类型系列第六篇——加载事件

    前面的话 提到加载事件,可能想到了window.onload,但实际上,加载事件是一大类事件,本文将详细介绍加载事件 load load事件是最常用的一个事件,当页面完全加载后(包括所有图像.java ...

  4. Oracle_关联查询

    1. 等值连接(Equijoin).非等值连接(Non-Equijoin).外连接(Outer join):-->左外连接-->右外连接.自连接(Self join) 交叉连接(Cross ...

  5. ArcGIS制图技巧系列(3)—让地图更有立体感

    ArcGIS制图技巧系列(3)-让地图更有立体感 by 李远祥 在前面的章节中,我们已经介绍过各种的地图效果,如发光效果,山体阴影效果,植被填充效果等,所有的这些效果不外乎是各种技术的叠加和技巧的使用 ...

  6. C++学习的心路历程之心理障碍

    断断续续的C++学习已经过了1年多了,可是,我还是没有迈出可以自如输出写点什么的那一步.甚至我因为这个老是怀疑自己的智商,我是真心想学懂,因为这个关系到我的就业,直接关系到我的饭碗.我是十分的着急,可 ...

  7. 网络攻击技术开篇——SQL Injection

    本文转自: http://www.cnblogs.com/rush/archive/2011/12/31/2309203.html 1.1.1 摘要 日前,国内最大的程序员社区CSDN网站的用户数据库 ...

  8. MongoDB学习总结(六) —— 数据库备份和恢复

    我们都知道数据库数据经常备份是多么的重要,MongoDB作为一个数据库系统,自然提供了完善,丰富而且好用的备份与恢复机制. 以下介绍三种数据库备份和恢复的方式 > 数据目录直接拷贝 数据库目录直 ...

  9. Python dir()/help()

    dir() dir()用来查询一个类或者对象所有属性.你可以尝试一下 print dir(list) 返回的结果: ['__add__', '__class__', '__contains__', ' ...

  10. MASM32快速起步

    MASM32是一个免费的软件程序,让您编辑Microsoft宏汇编程序(MASM)代码从一个基本的文本界面.它强调MASM代码各部分以不同的颜色,使其更容易扫描和检测错误.它提供了一个简单的布局程序员 ...