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. 在线office文档编辑NTKO使用心得

    目录 前言 什么是ntko 准备工作 实战演练 总结 一.前言 Web开发中经常需要用到在线处理office文档的功能,现在市面上有一些常用的Web页面调用显示Office的控件技术,用起来很方便.有 ...

  2. 【求Java工程师/专家】大型互联网公司急招

    互联网行业排名Top公司,目前项目扩张阶段,需求数量较多的JAVA中高端后台开发人员,需要有分布式系统开发经验,年后有找工作的同学可以联系我了. 工作地点:杭州 岗位要求: 1.精通Java SE和J ...

  3. 《JAVASCRIPT高级程序设计》错误处理与调试

    一.错误处理 错误处理在程序设计中的重要性是毋庸置疑的,任何有影响力的web应用程序都需要一套完善的错误处理机制.良好的错误机制可以让用户得到提醒,知道发生了什么事. 1.try-catch语句 tr ...

  4. MaltReport2:基于 OpenDocument/OpenOfficeXML 的报表引擎

    MaltReport 是我几年前写的开源单据.报表引擎,最近进行了较大的更新,尤其是几年来在生产项目中应用取得了非常好的效果,特别写篇介绍文字给大家分享一下. 首先先介绍几个名词: OpenDocum ...

  5. ORACLE_INSERT

    Insert是T-sql中常用语句,Insert INTO table(field1,field2,...) values(value1,value2,...)这种形式的在应用程序开发中必不可少.但我 ...

  6. 都能读懂的css3 3D变形效果

    css3 3D变形效果 CSS3 transform3D变形 transform的含义是:改变,使-变形:转换 三维变换使用基于二维变换的相同属性,如果您熟悉二维变换,你们发现3D变形的功能和2D变换 ...

  7. android 项目更改包名的方法

    本文章全文转载: http://www.2cto.com/kf/201304/206747.html 1.在项目上右键,选择android tools->rename application p ...

  8. Struts系列笔记(6)---action接收请求参数

    action接收请求参数 在web开发中,去接收请求参数来获得表单信息非常的常见,自己也总结整理了有关Struts2通过action接收请求参数的几种方法. Struts2 提供三种数据封装的方式: ...

  9. jQuery_第一章_JavaScript基础

    JavaScript基础 JavaScript不难,但是对于初学者来讲比较的怪异. 是一种客户端语言,在浏览器执行的.是一种脚本语言,直接就能解释执行的叫脚本代码.像dos命令还有SQL也是. 为什么 ...

  10. gridcontrol显示行号,总行,打印,导出Excel,设置标头及内容居中方法

    1.一般为了表格显示数据更直观,经常会显示行号以及总数.让gridcontrol显示行号,首先你需要设置一下显示行号的宽度,也就是IndicatorWith.默认值为-1,可根据实际数值需要设置宽度, ...