02.IO流之字节流和字符流的区别

来源:互联网 发布:java调用python 编辑:程序博客网 时间:2024/05/21 18:33

Jdk1.5新特性简洁版

(1)静态导入:

所谓静态导入import static 和以往的import的区别在于,之前的import是对一个包下的类进行导入,而import static,在要被导入的包前加上了static表示对某个类的静态方法和静态成员进行导入,在使用这个类静态方法或者属性的时候可以直接拿来使用,举个例子:

(2)可变参数:

所谓可变参数就是说在之前的jdk版本当中,你调用一个有参数的方法时,必须指定一定数量的参数例如addint a,int b)等格式,如果你传递的参数的个数不确定的话,你可以使用数组的形式比如addint[] a;jdk1.5的可变参数就是代替了这种数组的格式,演变成了以下格式 addint a,int   ...  arg)使用三个“...”代表其它的参数,可以为0个或者多个不限定。具体使用方式为:定义一个可变参数的方法,将传递过去的int值进行相加并返回结果:

但使用可变参数必须注意以下几点:

A.可变参数只能出现在参数列表的最后,不能是addint ... Args,int b)这个种格式

B.三个“...”位于参数类型和参数名之间,前后有无空格都可以

C.调用可变参数方法的时候,jdk编译器会为可变参数隐式的创建一个数组,想要访问可变参数需要使用遍历数组的方式。

 

 

(3)增强型for循环也叫做for...each循环

For增强型循环,废话不说,直接上例子:就拿刚才那个可变参数方法的例子来讲,我们要对可变参数进行遍历,除了使用之前的for循环,我们还可以这么写:

我们可以看到,明显的foreach循环的代码减少了,但是foreach循环的优点还不仅仅局限于此,它最大的优点是对集合的遍历更加方便,我们再看一个例子:现在假设我们要对set集合进行遍历,以前的方式是这个样子的:

我们可以看到我们在这里使用了jdk1.5的泛型这个新特性,泛型我们之后再说。在这里,我们再来使用foreach循环遍历我们的集合:

4)数据类型的自动拆装箱

什么叫做数据类型的自动拆装箱呢?就是说在jdk1.5之前的版本,我们使用Integer等类的时候,必须这么使用Integer a = new Integer(100),这表示一个对象,类型是Integer包装类。而1.5以后的版本就可以这么写Integer a = 100;虽然简写了代码,但是编译器实际上为我们自动的装箱,当我们输出这个对象的时候,jdk又帮助我们自动的拆箱,输出的结果是int类型的值,而不是这个对象。

如果我们使用的jdk版本是1.4的,这么写是不可以的。

但是我们能必须注意几点:

A.它与我们不使用自动拆装箱的做法有什么区别呢?

我们看一个例子:我们不使用自动拆装箱,我们自己建立两个Integer对象,她们是否为同一个对象呢?

我们发现在使用和不使用自动拆装箱的区别就是,前者创建了两个不同的对象,占用不同的内存地址,后者是相同的引用,即相同的内存

B.但是我们还必须知道一点:

我们使用自动拆装箱,但是赋值时我们赋了不同范围的值,得出的结果不一样,原因在于自动拆装箱限制了这样一个范围:

在自动装箱时对于值从–128127之间的值,它们被装箱为Integer对象后,会存在内存中被重用,

所以范例中,i3 与 i4实际上参考至同一个对象。

如果超过了从–128127之间的值,被装箱后的Integer对象并不会被重用

有同学在这里就不明白了,这么做的好处是什么?我们首先可以设想我们这么做的原因是什么?是因为在这个范围里的值我们经常性要用到,而超过这个范围的值我们很少用到甚至不用,我们把我们经常用到的这些进行了重用,不用再为其开辟不必要的内存空间,实际上是降低了内存的开销,改善了程序的运行效率。这样一种思想,就是一种设计模式---享元设计模式。

5.枚举

枚举是什么呢?我们简单来说,枚举就是一个类。它的作用是什么呢?就比如说,我们要做一个交通信号系统,对交通灯的灯色要有一定的限制,如果我们不加以限制,那么灯的颜色可以任意的改变成为红色,黄色,绿色,甚至黑色,我们使用枚举的作用就是规定我们的灯色就为那么几种,不能超出这个范围;我们可以再想一个例子,就是说我们几个人一起做一个程序,对星期的描述,有的人喜欢把周日定义成7,而有的人喜欢把周日定义为星期天,那这样就没有了一个规范,我们使用枚举就是为了限制我们要定义的这些属性,使其值就为我们所定义的枚举值。这是我自己的理解。

A.首先,我们来看枚举实现的原理

所谓枚举,就是一个特殊的类,它定义了几个final最终变量和一个private修饰的构造方法,当构件它的属性时必须使用其本身来构件,这样就限制了其它人篡改其内容。但我们构建一个红灯的时候我们只能这么做:

B枚举实际应用

刚才是我们从其原理上进行剖析,现在我们来定义一个枚举,看看它的使用方式

6.泛型

7.注解

2006 年底,Sun 公司发布了 Java Standard Edition 6Java SE 6)的最终正式版,代号 Mustang(野马)。Java 平台的第六个版本, Standard Edition (Java SE), 代号Mustang, 发布了第二个Beta版本.
这一次,是时隔4个月发布第二次Beta版本.
Java SE 6 Beta 2 (Mustang) 有什么新东西有什么值得开发者关注?
1、简化Web Services
2、整合脚本语言
3、绑定Derby
4、更丰富的Desktop APIs
5、监视和管理
6、 可插入式元数据
7、访问编译器
8、安全性 

原创粉丝点击