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. MyBatis:学习笔记(3)——关联查询

    MyBatis:学习笔记(3)--关联查询 关联查询 理解联结 SQL最强大的功能之一在于我们可以在数据查询的执行中可以使用联结,来将多个表中的数据作为整体进行筛选. 模拟一个简单的在线商品购物系统, ...

  2. 【java设计模式】之 抽象工厂(Abstract Factory)模式

    1. 女娲的失误 上一节学习了工厂模式,女娲运用了该模式成功创建了三个人种,可是问题来了,她发现没有性别--这失误也忒大了点吧--竟然没有性别,那岂不是--无奈,只好抹掉重来了,于是所有人都被消灭掉了 ...

  3. 离职了,在家温故而知新----1 设计模式 & 开头

    工作四年有余,编写的代码都是业务代码.不涉及低层. 目前离职在家,过年完了,准备找工作了. 决定温故而知新,复习也是学习. 本着随遇而安的原则,随便从之前设计的众多条目中选择了一条开始复习. 设计模式 ...

  4. 通过CXF方式实现webservice服务

    一.CXF的介绍 Apache CXF 是一个开放源代码框架,提供了用于方便地构建和开发 Web 服务的可靠基础架构.它允许创建高性能和可扩展的服务,您可以将这样的服务部署在 Tomcat 和基于 S ...

  5. 循环语句——for语句

    一.for语句结构:for (初始化表达式; 循环条件表达式 ;循环后的操作表达式 ) { 执行语句: } 循环条件表达式,必须是true或false 示例: class ForDemo { publ ...

  6. 【物联网云端对接-1】 通过HTTP协议与微软Azure IoT hub进行云端通信

    在2015年曾写过一篇文章<从微软build 2015,展望微软未来发展>,提到了微软的Azure和Windows 10 IoT,那算是初次接触微软物联网技术.比较幸运的是在后续的时间里, ...

  7. (C#)xml的简单理解创建和读取

    xml知识点清理:一.文档规则 1.区分大小写. 2.属性值必须加引号(单引号.双引号都可以),一般情况下建议使用使用双引号. 3.所有标记必须有结束符号. 4.所有空标记必须关闭. 5.必须有且仅有 ...

  8. Angela Merkel poised for record poll win and historic third term

    Her success remains a mystery for many, but victory could see the German chancellor beat Thatcher's ...

  9. ldd获得可执行程序的所有库并输出到指定目录

    #!/bin/bash ########################################################################## #ldd可以查看程序的库依 ...

  10. 【前端】:jQuery上

    前言: 今天写一篇jQuery,发现内容太多了,那就分成两篇写吧--写完jQuery基础知识后会再写一些jQuery实例~~ jQuery下载.jQuery是一个兼容多浏览器的javascript库, ...