仓酷云

标题: JAVA编程:JDK1.5新特征一览 [打印本页]

作者: 谁可相欹    时间: 2015-1-18 11:47
标题: JAVA编程:JDK1.5新特征一览
j2EE和asp比较,其实也没什么比的,原因和我上面说那些比较差不了多少,也是稳定性,安全性,J2EE比asp高,速度上比不过asp,asp也是延续着它的拖拽控件的方法,提高速度。“JDK1.5”(开辟代号猛虎)的一个主要主题就是经由过程新增一些特征来简化开辟,这些特征包含泛型,for-each 轮回,主动装包/拆包,列举,可变参数, 静态导进 。利用这些特征有助于我们编写加倍明晰,干练,平安的代码。
  上面我们复杂先容一下这些新特征。  1.泛型(Generic)  C++经由过程模板手艺能够指定汇合的元素范例,而Java在1.5之前一向没有绝对应的功效。一个汇合能够听任何范例的对象,响应地从汇合内里拿对象的时分我们也不能不对他们举行强迫得范例转换。猛虎引进了泛型,它同意指定汇合里元素的范例,如许你能够失掉强范例在编译时候举行范例反省的优点。
Collection<String> c = new ArrayList();c.add(new Date());

  编译器会给出一个毛病:

add(java.lang.String) in java.util.Collection<java.lang.String> cannot be applied to (java.util.Date)

  2.For-Each轮回  For-Each轮回得到场简化了汇合的遍历。假定我们要遍历一个汇合对个中的元素举行一些处置。典范的代码为:

void processAll(Collection c){    for(Iterator i=c.iterator(); i.hasNext();){        MyClass myObject = (MyClass)i.next();        myObject.process();    }}

  利用For-Each轮回,我们能够把代码改写成:

void processAll(Collection<MyClass> c){    for (MyClass  myObject :c)        myObject.process();}

  这段代码要比下面明晰很多,而且制止了强迫范例转换。

  3.主动装包/拆包(Autoboxing/unboxing)  主动装包/拆包年夜小气便了基础范例数据和它们包装类地利用。  主动装包:基础范例主动转为包装类.(int >> Integer)  主动拆包:包装类主动转为基础范例.(Integer >> int)  在JDK1.5之前,我们老是对汇合不克不及寄存基础范例而铭心镂骨,如今主动转换机制办理了我们的成绩。
int a = 3;Collection c = new ArrayList();c.add(a);//主动转换成Integer.Integer b = new Integer(2);c.add(b + 2);

  这里Integer先主动转换为int举行加法运算,然后int再次转换为Integer.  4.列举(Enums)  JDK1.5到场了一个全新范例的“类”-列举范例。为此JDK1.5引进了一个新关头字enmu. 我们能够如许来界说一个列举范例。 

public enum Color{   Red,   White,   Blue}

  然后能够如许来利用Color myColor = Color.Red.  列举范例还供应了两个有效的静态办法values()和valueOf(). 我们能够很便利地利用它们,比方

for (Color c : Color.values())            System.out.println(c);

  5.可变参数(Varargs)  可变参数使程序员能够声明一个承受可变数量参数的办法。注重,可变参数必需是函数声明中的最初一个参数。假定我们要写一个复杂的办法打印一些对象,

util.write(obj1);util.write(obj1,obj2);util.write(obj1,obj2,obj3);…

  在JDK1.5之前,我们能够用重载来完成,可是如许就必要写良多的重载函数,显得不是很无效。假如利用可变参数的话我们只必要一个函数就好了

public void write(Object... objs) {   for (Object obj: objs)      System.out.println(obj);}

  在引进可变参数今后,Java的反射包也加倍便利利用了。关于c.getMethod("test", new Object[0]).invoke(c.newInstance(), new Object[0])),如今我们能够如许写了c.getMethod("test").invoke(c.newInstance()),如许的代码比本来分明了良多。   6.静态导进(Static Imports)  要利用用静态成员(办法和变量)我们必需给出供应这个办法的类。利用静态导进可使被导进类的一切静态变量和静态办法在以后类间接可见,利用这些静态成员无需再给出他们的类名。

import static java.lang.Math.*;…….r = sin(PI * 2); //无需再写r = Math.sin(Math.PI);

  不外,过分利用这个特征也会必定水平上下降代码地可读性。

JDK1.5正式版已公布,最新版本号:1.5.0.01,人人能够到sun网站下载!


int a = 3;Collection c = new ArrayList();c.add(a);//主动转换成Integer.Integer b = new Integer(2);c.add(b + 2);

  这里Integer先主动转换为int举行加法运算,然后int再次转换为Integer.  4.列举(Enums)  JDK1.5到场了一个全新范例的“类”-列举范例。为此JDK1.5引进了一个新关头字enmu. 我们能够如许来界说一个列举范例。 

public enum Color{   Red,   White,   Blue}

  然后能够如许来利用Color myColor = Color.Red.  列举范例还供应了两个有效的静态办法values()和valueOf(). 我们能够很便利地利用它们,比方

for (Color c : Color.values())            System.out.println(c);

  5.可变参数(Varargs)  可变参数使程序员能够声明一个承受可变数量参数的办法。注重,可变参数必需是函数声明中的最初一个参数。假定我们要写一个复杂的办法打印一些对象,

util.write(obj1);util.write(obj1,obj2);util.write(obj1,obj2,obj3);…

  在JDK1.5之前,我们能够用重载来完成,可是如许就必要写良多的重载函数,显得不是很无效。假如利用可变参数的话我们只必要一个函数就好了

public void write(Object... objs) {   for (Object obj: objs)      System.out.println(obj);}

  在引进可变参数今后,Java的反射包也加倍便利利用了。关于c.getMethod("test", new Object[0]).invoke(c.newInstance(), new Object[0])),如今我们能够如许写了c.getMethod("test").invoke(c.newInstance()),如许的代码比本来分明了良多。   6.静态导进(Static Imports)  要利用用静态成员(办法和变量)我们必需给出供应这个办法的类。利用静态导进可使被导进类的一切静态变量和静态办法在以后类间接可见,利用这些静态成员无需再给出他们的类名。

import static java.lang.Math.*;…….r = sin(PI * 2); //无需再写r = Math.sin(Math.PI);

  不外,过分利用这个特征也会必定水平上下降代码地可读性。

JDK1.5正式版已公布,最新版本号:1.5.0.01,人人能够到sun网站下载!


Collection<String> c = new ArrayList();c.add(new Date());

  编译器会给出一个毛病:

add(java.lang.String) in java.util.Collection<java.lang.String> cannot be applied to (java.util.Date)

  2.For-Each轮回  For-Each轮回得到场简化了汇合的遍历。假定我们要遍历一个汇合对个中的元素举行一些处置。典范的代码为:

void processAll(Collection c){    for(Iterator i=c.iterator(); i.hasNext();){        MyClass myObject = (MyClass)i.next();        myObject.process();    }}

  利用For-Each轮回,我们能够把代码改写成:

void processAll(Collection<MyClass> c){    for (MyClass  myObject :c)        myObject.process();}

  这段代码要比下面明晰很多,而且制止了强迫范例转换。

  3.主动装包/拆包(Autoboxing/unboxing)  主动装包/拆包年夜小气便了基础范例数据和它们包装类地利用。  主动装包:基础范例主动转为包装类.(int >> Integer)  主动拆包:包装类主动转为基础范例.(Integer >> int)  在JDK1.5之前,我们老是对汇合不克不及寄存基础范例而铭心镂骨,如今主动转换机制办理了我们的成绩。
int a = 3;Collection c = new ArrayList();c.add(a);//主动转换成Integer.Integer b = new Integer(2);c.add(b + 2);

  这里Integer先主动转换为int举行加法运算,然后int再次转换为Integer.  4.列举(Enums)  JDK1.5到场了一个全新范例的“类”-列举范例。为此JDK1.5引进了一个新关头字enmu. 我们能够如许来界说一个列举范例。 

public enum Color{   Red,   White,   Blue}

  然后能够如许来利用Color myColor = Color.Red.  列举范例还供应了两个有效的静态办法values()和valueOf(). 我们能够很便利地利用它们,比方

for (Color c : Color.values())            System.out.println(c);

  5.可变参数(Varargs)  可变参数使程序员能够声明一个承受可变数量参数的办法。注重,可变参数必需是函数声明中的最初一个参数。假定我们要写一个复杂的办法打印一些对象,

util.write(obj1);util.write(obj1,obj2);util.write(obj1,obj2,obj3);…

  在JDK1.5之前,我们能够用重载来完成,可是如许就必要写良多的重载函数,显得不是很无效。假如利用可变参数的话我们只必要一个函数就好了

public void write(Object... objs) {   for (Object obj: objs)      System.out.println(obj);}

  在引进可变参数今后,Java的反射包也加倍便利利用了。关于c.getMethod("test", new Object[0]).invoke(c.newInstance(), new Object[0])),如今我们能够如许写了c.getMethod("test").invoke(c.newInstance()),如许的代码比本来分明了良多。   6.静态导进(Static Imports)  要利用用静态成员(办法和变量)我们必需给出供应这个办法的类。利用静态导进可使被导进类的一切静态变量和静态办法在以后类间接可见,利用这些静态成员无需再给出他们的类名。

import static java.lang.Math.*;…….r = sin(PI * 2); //无需再写r = Math.sin(Math.PI);

  不外,过分利用这个特征也会必定水平上下降代码地可读性。

JDK1.5正式版已公布,最新版本号:1.5.0.01,人人能够到sun网站下载!


int a = 3;Collection c = new ArrayList();c.add(a);//主动转换成Integer.Integer b = new Integer(2);c.add(b + 2);

  这里Integer先主动转换为int举行加法运算,然后int再次转换为Integer.  4.列举(Enums)  JDK1.5到场了一个全新范例的“类”-列举范例。为此JDK1.5引进了一个新关头字enmu. 我们能够如许来界说一个列举范例。 

public enum Color{   Red,   White,   Blue}

  然后能够如许来利用Color myColor = Color.Red.  列举范例还供应了两个有效的静态办法values()和valueOf(). 我们能够很便利地利用它们,比方

for (Color c : Color.values())            System.out.println(c);

  5.可变参数(Varargs)  可变参数使程序员能够声明一个承受可变数量参数的办法。注重,可变参数必需是函数声明中的最初一个参数。假定我们要写一个复杂的办法打印一些对象,

util.write(obj1);util.write(obj1,obj2);util.write(obj1,obj2,obj3);…

  在JDK1.5之前,我们能够用重载来完成,可是如许就必要写良多的重载函数,显得不是很无效。假如利用可变参数的话我们只必要一个函数就好了

public void write(Object... objs) {   for (Object obj: objs)      System.out.println(obj);}

  在引进可变参数今后,Java的反射包也加倍便利利用了。关于c.getMethod("test", new Object[0]).invoke(c.newInstance(), new Object[0])),如今我们能够如许写了c.getMethod("test").invoke(c.newInstance()),如许的代码比本来分明了良多。   6.静态导进(Static Imports)  要利用用静态成员(办法和变量)我们必需给出供应这个办法的类。利用静态导进可使被导进类的一切静态变量和静态办法在以后类间接可见,利用这些静态成员无需再给出他们的类名。

import static java.lang.Math.*;…….r = sin(PI * 2); //无需再写r = Math.sin(Math.PI);

  不外,过分利用这个特征也会必定水平上下降代码地可读性。

JDK1.5正式版已公布,最新版本号:1.5.0.01,人人能够到sun网站下载!

java主要分三块,j2se:java的基础核心语言。j2me:java的微型模块,专门针对内存小,没有持续电源等小型设备。j2ee:java的企业模块,专门针对企业数据库服务器的连接维护。
作者: 不帅    时间: 2015-1-20 15:59
Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)
作者: 小妖女    时间: 2015-1-29 12:48
当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢?
作者: 莫相离    时间: 2015-2-6 00:58
Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
作者: 灵魂腐蚀    时间: 2015-2-14 18:04
你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。
作者: 海妖    时间: 2015-2-26 05:36
J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。
作者: 若相依    时间: 2015-3-5 23:13
你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。
作者: 再见西城    时间: 2015-3-7 10:27
你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。
作者: 第二个灵魂    时间: 2015-3-12 11:39
你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。
作者: 谁可相欹    时间: 2015-3-17 07:09
Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
作者: 只想知道    时间: 2015-3-24 00:47
是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能
作者: 飘飘悠悠    时间: 2015-3-25 22:26
Java 编程语言的风格十分接近C、C++语言。
作者: 爱飞    时间: 2015-4-1 08:11
一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从
作者: 若天明    时间: 2015-4-1 12:47
一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从
作者: 精灵巫婆    时间: 2015-4-10 23:53
是一种语言,用以产生「小应用程序(Applet(s))
作者: 深爱那片海    时间: 2015-4-14 14:36
应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展
作者: 乐观    时间: 2015-4-16 20:11
Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台
作者: 飘灵儿    时间: 2015-4-19 10:25
Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站
作者: 分手快乐    时间: 2015-4-20 04:01
如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。
作者: 山那边是海    时间: 2015-4-26 20:10
如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。
作者: 透明    时间: 2015-4-27 18:55
Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2