j2se 1.5提供了“autoboxing”和“auto-unboxing”的机制,可以让编译器来自动完成在基本类型和它们的包裹对象之间的转化工作,从而能够用一种更简单的方式,来避免同时存在两套类型系统所带来的一些麻烦。 本文介绍autoboxing/auto-unboxing机制的使用方法、实质、发生时机、局限、对重载机制的影响以及对性能的妨碍等问题。 传统上,在java程序中,可以往一个容器类(无论是collection还是map)里直接放入一个对象;但是如果打算放入的是一个数字、字符或布尔值的话,就要先加入一个“生成包裹它们的对象”的步骤。 造成这种现象的原因是,在java语言当中一直存在着两套非常不同的类型系统: 一套是所谓的“引用类型”(reference types),包括所有的类和接口。这些类型的数据被看作对象,所以可以用一个object型的变量来保存。 一套是所谓的...
当一个父类实现serializable接口后,他的子类都将自动的实现序列化。 以下验证了这一点: package serial;import java.io.serializable; public class superc implements serializable {//父类实现了序列化 int supervalue; public superc(int supervalue) { this.supervalue = supervalue; } public string tostring() { return "supervalue: "+supervalue; } } public class subc extends superc {//子类 int subvalue; public subc(int supervalue,int subvalue) {...
properties 类已不是新东西了,它在 java 编程的早期就有了,并且几乎没有什么变化。j2se 的 tiger 版本增强了这个类,不仅可以用它在单独一行中指定用等号分隔的多个键-值对,还可以用xml 文件装载和保存这些键-值对。 在 驯服 tiger的系列文章中,john zukowski 展示了如何驾驭这匹新一代的“役马”。 j2se 1.5 以前的版本要求直接使用 xml 解析器来装载配置文件并存储设置。虽然这并非是一件困难的事情,并且解析器是平台的标准部分,但是额外的工作总是有点让人烦。最近更新的 java.util.properties 类现在提供了一种为程序装载和存储设置的更容易的方法: loadfromxml(inputstream is) 和 storetoxml(outputstream os, string comment) 方法。 properties 基...
j2se 1.5提供了另一种形式的for循环。借助这种形式的for循环,可以用更简单地方式来遍历数组和collection等类型的对象。本文介绍使用这种循环的具体方式,说明如何自行定义能被这样遍历的类,并解释和这一机制的一些常见问题。 在java程序中,要“逐一处理”——或者说,“遍历”——某一个数组或collection中的元素的时候,一般会使用一个for循环来实现(当然,用其它种类的循环也不是不可以,只是不知道是因为for这个词的长度比较短,还是因为for这个词的含义和这种操作比较配,在这种时候for循环比其它循环常用得多)。 对于遍历数组,这个循环一般是采取这样的写法: 清单1:遍历数组的传统方式/* 建立一个数组 */int[] integers = {1, 2, 3, 4};/* 开始遍历 */for (int j = 0; j < integers.length; j+...
目前而言j2ee于.net之争已经开始,由于竞争引起技术的快速发展,将传统的aspphpcgi大大抛在后面,随着预编辑技术的不断提高,以后程序员将面临着两大选择,一是从传统的asp转行到asp+(c#) +vb.net的格局,或着投入j2ee +j2se的怀抱。 大家现在可能对与j2ee与.net到底哪里好,凭什么说php、cgi将无法与这些新的技术竞争呢? 其实j2ee也不是什么新技术了,97年就有了。最近由于最近单位搞 j2ee的工程,我有性事实的领略到了j2ee + j2se的魅力。 j2ee是java的整体解决方案,j2se是客户端解决方案,我了解的是ibm的j2ee解决方案,后台使用db2 7.1数据库,前台使用ibm web sphere的web java服务器,加上j2se的java客户端程序,每天大约要存储10000条文件,平均每1小时并发用户大于30人,日使用人数...
j2se 5.0引入了许多新型的集合api-你需要了解它们以便能够正确地实现泛型定制的集合-它可以无缝地与多种类型和新型的"for each"结构一起工作。本文将向你展示示怎样创建与j2se最新特征相兼容的集合。 一、 创建支持泛型的类 首先,你必须学习如何创建一个允许存在"泛型类型"的类。这意味着无论何时实例化你的类,你都能够指定一个或多个java类型与该类相关联。为了说明这个问题,请考虑列表1中的一个简单示例类。 注意,列表1中的类是如何声明的。它在尖括号之间指定三个泛型。这些泛型是真实类型的占位符。当你声明一个这种类型的类时,你可以指定一个类来代替one,two和three。如果你不这样做,那么该类将使用object的默认类型。 这个类显示出怎样设计一个类来接收三个泛型类型。当你创建一个这种类型的类时你要支持准确的类型。 列表1.泛型类:package com.heatonres...
首先要了解java默认的序列化行为,java将一切关于对象的信息都保存了下了,也就是说,有些时候那些不需要保存的也被保存了下来。一般情况下,我们仅仅需要保存逻辑数据就可以了。不需要保存的数据我们可以用关键字transient标出。 以下是一个例子: import java.io.*; public class serial implements serializable { int company_id; string company_addr; transient boolean company_flag; } 则company_flag字段将不会参与序列化与反序列化,但同时你也增加了为他初始值的责任。这也是序列化常常导致的问题之一。因为序列化相当于一个只接受数据流的public构造函数,这种对象构造方法是语言之外的。但他仍然是一种形式上的构造函数。如若你的类不能够通过其他方...
java中处处体现着简单的程序设计风格,序列化作为最常用的功能之一,在java中的设计尤为“简单”。在objectinputstream 和objectoutputstream的帮助下,我们可以轻松的实现序列化。 只要我们的class 实现了java.io.serializable接口,就可以利用objectoutputstream的writeobject()方法将一个对象序列化;利用objectinputstream的readobject()方法,可以返回读出的object对象。serializable接口不需要我们实现任何方法。 以下是一个例子,它能给我们一个感性的认识: serial实现了就java.io.serializable接口,是需要序列化的类。我们首先构造一个serial的对象serial1然后将其保存(序列化)在一个文件中,而后再将其读出(反序列化),并打印其内容...
java2企业版为中间件领域思想的统一上发挥了很大的作用。比如,j2ee为分布式事务管理、目录服务和消息服务提供了一套标准的编程接口。j2ee的基础——java2标准版(j2se) ,成功地为java提供了一套访问关系数据库的标准。 但是,就像本文中“j2ee缺乏对编程的支持”提到的一样,j2ee这个平台没有能够提供一个令人满意的应用程序编程模型(application programming model)。sun公司和一些大的应用服务器供应商都想用开发工具来降低j2ee开发的复杂性,但是这些工具没有其他的java 开发工具优秀,后者有先进的重构工具,和.net平台相比,j2ee的工具支持显得很逊色。 很多j2ee开发工具自动产生的代码像这些工具本身同样复杂。在开源社区很多小型j2ee开发者选择了另外一种开发方式—— 一些可以降低j2ee开发难度的开发框架,较为流行的比如: stru...
1. 关于java3d 1.1 java3d简介 java3d api是sun定义的用于实现3d显示的接口。3d技术是底层的显示技术,java3d提供了基于java的上层接口。java3d把opengl和directx这些底层技术包装在java接口中。这种全新的设计使3d技术变得不再繁琐并且可以加入到j2se、j2ee的整套架构,这些特性保证了java3d技术强大的扩展性。 java3d建立在java2(java1.2)基础之上,java语言的简单性使java3d的推广有了可能。它实现了以下三维显示能够用到的功能: 生成简单或复杂的形体(也可以调用现有的三维形体) 使形体具有颜色、透明效果、贴图。 在三维环境中生成灯光、移动灯光。 具有行为的处理判断能力(键盘、鼠标、定时等)。 生成雾、背景、声音。 使形体变形、移动、生成三维动画。 编写非常复杂的应用程序,用于各种领域如vr(虚拟现实)...
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器