仓酷云
标题:
来看体验J2SE 1.5新特征之装箱和拆箱
[打印本页]
作者:
小女巫
时间:
2015-1-18 11:29
标题:
来看体验J2SE 1.5新特征之装箱和拆箱
Java的桌面程序开发在java程序员里通常叫swing开发,主要用的swing包里的类开发的,也就是通常说的c/s架构开发
J2SE1.5供应了“Autoboxing”和“Auto-Unboxing”的机制,可让编译器来主动完成在基础范例和它们的包裹对象之间的转化事情,从而可以用一种更复杂的体例,来制止同时存在两套范例体系所带来的一些贫苦。本文先容Autoboxing/Auto-Unboxing机制的利用办法、本色、产生机会、范围、对重载机制的影响和对功能的妨害等成绩。
传统上,在Java程序中,能够往一个容器类(不管是Collection仍是Map)里间接放进一个对象;可是假如盘算放进的是一个数字、字符或布尔值的话,就要先到场一个“天生包裹它们的对象”的步骤。
形成这类征象的缘故原由是,在Java言语傍边一向存在着两套十分分歧的范例体系:
一套是所谓的“援用范例”(ReferenceTypes),包含一切的类和接口。这些范例的数据被看做对象,以是能够用一个Object型的变量来保留。
一套是所谓的“基础范例”(PrimitiveTypes),包含:byte、short、int、long、float、double、char和boolean。这些范例的数据不是对象,因而也不克不及用Object型的变量来保留。
同时接纳如许两套范例体系,能够失掉一些功能方面的优点——由于基础范例的数据不是对象,以是创立得更快、占用的空间更少、发出它们占用的资本也更简单;可是,如许的做法同时也会形成一些编码方面的成绩——比方,不克不及界说一个变量(或数组),让它既能保留基础范例的数据,又能保留援用范例的数据(相似的,也不克不及界说一个同时能婚配这两品种型的数据的形参,不外这个成绩能够借助Java里的重载机制往返避)。
实践上必要界说“不晓得用来保留甚么范例的数据”的变量(和形参)时,一样平常对这个成绩接纳躲避的立场,将它们的范例界说成Object,然后借助能够称为“Boxing”和“Unboxing”的操纵来办理Object不克不及涵盖基础范例的成绩。
1.Boxing和Unboxing操纵
所谓Boxing操纵,是指经由过程天生一个能包裹基础范例数据的对象,来让基础范例的数据呈现在只能承受援用范例的中央。
清单1:手工Boxing的典范情形
Collectionintegers=newArrayList();
for(inti=0;i<10;i++){
integers.add(newInteger(i));
}
用于天生这些的对象的类,被称作“包裹类”(WrapperClasses)。Java中的包裹类有Byte、Short、Integer、Long、Float、Double、Character和Boolean(都在java.lang包里界说)等八种,分离用于包裹byte、short、int、long、float、double、char和boolean范例的数据。
而所谓Unboxing操纵,则是指挪用包裹类对象的响应办法,失掉它们所代表的“基础范例的数据”,以便举行进一步的处理。
清单2:手工Unboxing的典范情形
for(Iteratoritr=integers.iterator();itr.hasNext();){
Integeri=(Integer)itr.next();
System.out.println(i.intValue()+1);
}
而在Java言语的最新版本——J2SE1.5中,供应了“Autoboxing”和“Auto-Unboxing”的机制,可让编译器来主动完成这些噜苏的操纵,从而用一种更复杂的体例,来整合两套范例体系。
熟习的生疏名词
只管这一对操纵的汗青很久长,可是把它们称作“Boxing”和“Unboxing”的做法,基础是在呈现“Autoboxing”和“Auto-Unboxing”的观点以后,才失掉了普遍的承受。在那之前,它们仿佛并没有通用的、专门的名字。不外因为当时也很少说起这两个观点,以是这个成绩倒也没有形成甚么严峻的影响。
<p>
C#是不行的,比如说美国的航天飞船里就有java开发的程序以上是我的愚见,其实不管那种语言,你学好了,都能找到好的工作,
作者:
飘飘悠悠
时间:
2015-1-21 08:25
其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。
作者:
蒙在股里
时间:
2015-1-24 06:02
你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?
作者:
活着的死人
时间:
2015-1-26 16:08
学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。
作者:
柔情似水
时间:
2015-2-4 15:50
接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。
作者:
再现理想
时间:
2015-2-6 08:25
任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言
作者:
愤怒的大鸟
时间:
2015-2-15 19:58
你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?
作者:
飘灵儿
时间:
2015-3-4 13:01
你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。
作者:
灵魂腐蚀
时间:
2015-3-9 21:48
Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。
作者:
莫相离
时间:
2015-3-11 00:20
至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。
作者:
透明
时间:
2015-3-13 00:22
[url]http://www.jdon.com/[/url]去下载,或到同济技术论坛的服务器[url]ftp://nro.shtdu.edu.cn[/url]去下,安装上有什么问题,可以到论坛上去提问。
作者:
爱飞
时间:
2015-3-20 06:57
还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。
作者:
谁可相欹
时间:
2015-4-7 15:31
Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台
欢迎光临 仓酷云 (http://ckuyun.com/)
Powered by Discuz! X3.2