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. WPF开发进阶 - Fody/PropertyChanged(二)

    前一篇 简单的介绍了Fody/PropertyChanged的使用方法, 这一篇,我们详细介绍它的一些比较重要的特性和规则 1. Attributes 通过在类或属性上标记这些特性,可以在编译代码时, ...

  2. C# 6 与 .NET Core 1.0 高级编程 - 37 章 ADO.NET

    译文,个人原创,转载请注明出处,有不对的地方欢迎指出与交流. 英文原文:Professional C# 6 and .NET Core 1.0 - 37 ADO.NET --------------- ...

  3. JS数组处理

    一.定义数组: 方法1 var myCars=new Array(); myCars[0]="Saab"; myCars[1]="Volvo"; myCars[ ...

  4. app集成微信支付服务端代码-php版本

    1.微信支付分为两种,一种是微信公众品台的微信支付,另一种是微信开放平台的微信支付 2.上周做的是开放品台的微信支付,把遇到的问题总结一下 第一,下载官方提供的代码,解压后放到根目录下,然后认真读文档 ...

  5. 细说Asp.Net WebAPI消息处理管道

    我们在开发完Asp.Net WebAPI程序后,可以使用WebHost寄宿方式或者SelfHost寄宿方式来部署Asp.Net WebAPI.所谓WebHost寄宿就是通过Asp.Net来实现:所谓S ...

  6. Monit:开源服务器监控工具

    Monit是一个跨平台的用来监控Unix/linux系统(比如Linux.BSD.OSX.Solaris)的工具.Monit特别易于安装,而且非常轻量级(只有500KB大小),并且不依赖任何第三方程序 ...

  7. 理解zookeeper选举机制

    *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !important; } /* ...

  8. 纯css 构造的tip

    css部分: <style>   .abc{ margin-top:20px; } span{ position:relative; display: inline-block; back ...

  9. system, fileExist函数包装

    #include "stdio.h" #include <string> #include<sys/types.h> #include<fcntl.h ...

  10. 导航原理实验系统软件——node-webkit初探

    最近,和同学接手了一个某军校<导航原理>课程的教学实验平台软件开发工作. 本项目在客户端主要用到的技术便是node-webkit,使用它能够以Web的方式开发桌面应用程序.下面,就以本项目 ...