您当前的位置:首页 > 互联网教程

java 32bit

发布时间:2025-05-20 11:34:50    发布人:远客网络

java 32bit

一、java 32bit

java 32bit是什么,让我们一起了解一下?

32Bit的意思是“32位操作系统”,我们的CPU从原来的8位,16位,到现在的32位和64位,cpu处理计算的时候“数据”和“指令”是不同对待的,32位的CPU就可以一次处理一个a=a+b这样的命令了。

那么java 32bit在使用中有哪些优缺点?

优点:简化了软件设计的复杂度。

缺点:硬件设计更加复杂,计算速度下降。

扩展一下,什么是32位操作系统?

其实cpu的位是指一次性可处理的数据量是多少,1字节=8位,32位处理器可以一次性处理4个字节的数据量,依次类推,32位操作系统针对的32位的CPU设计,64位操作系统针对的64位的CPU设计。

操作系统只是硬件和应用软件中间的一个平台,我们的CPU从原来的8位,16位,到32位和64位,在实际使用中32位操作系统是可以使用4GB以上的内存的。

标准版的 32位版本支持2.93GB RAM,64位版本最高可支持 32 GB RAM。

企业版的 32位版本最高可支持32 GB RAM, 64位版本支持 1 TB RAM。

数据中心版的 32位版本支持 64 GB RAM,64位版本支持 1 TB RAM。

Java获取字符串(16bit,32bit)和文件MD5工具。

package com.kingboy.common.utils.md5; import org.apache.commons.codec.digest.DigestUtils; import org.apache.poi.util.IOUtils; import sun.misc.BASE64Encoder; import java.io.*; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException;/** * MD5,String-File * @Author kingboy * @Date 2017/7/22 下午1:00 * @Description MD5Utils is used to */ public class MD5Utils {    private static final String ALGORITHM_MD5 = "MD5";    private static final String UTF_8 = "UTF-8";    /**     * MD5 16bit 小写.     * @param readyEncryptStr ready encrypt string     * @return String encrypt result string     * @throws NoSuchAlgorithmException     * */    public static final String MD5_16bit_lower(String readyEncryptStr) throws NoSuchAlgorithmException {        if(readyEncryptStr != null){            return MD5Utils.MD5_32bit_lower(readyEncryptStr).substring(8, 24);        }else{            return null;        }    }    /**     * MD5 16bit 大写.     * @param readyEncryptStr ready encrypt string     * @return String encrypt result string     * @throws NoSuchAlgorithmException     * */    public static final String MD5_16bit_upper(String readyEncryptStr) throws NoSuchAlgorithmException {        return MD5_16bit_lower(readyEncryptStr).toUpperCase();    }    /**     * MD5 32bit 小写.     * @param readyEncryptStr ready encrypt string     * @return String encrypt result string     * @throws NoSuchAlgorithmException     * */    public static final String MD5_32bit_lower(String readyEncryptStr) throws NoSuchAlgorithmException{        if(readyEncryptStr != null){            //Get MD5 digest algorithm's MessageDigest's instance.            MessageDigest md = MessageDigest.getInstance(ALGORITHM_MD5);            //Use specified byte update digest.            md.update(readyEncryptStr.getBytes());            //Get cipher text            byte [] b = md.digest();            //The cipher text converted to hexadecimal string            StringBuilder su = new StringBuilder();            //byte array switch hexadecimal number.            for(int offset = 0,bLen = b.length; offset 

二、java调用vb webservice

java作为WebServices客户端,与服务器端什么语言开发关系不大,注意在字节传输过程中尽量用Byte字节类型,防止出现中文乱码。

两个开发webservices的工具包:axis和XFire本人首先接触的是axis。

相对于Axis来说,目前XFire相对受欢迎,加上其提供了和Spring集成的支持,在目前的Web Service开源社区拥有众多的追随者。并且因为XFire为Spring提供的支持,使得我们可以很容易在Spring中使用XFire构建Web Service应用。

知道了这两个框架你研究起来也就不难了。

下面我就基于xfire说一下开发说明:

xfire对WebServices的开发非常方便,在Eclipse里开发就更方便了。总结起来有这么几点:

1.编写类,跟普通JAVABEAN没什么区别。

如果是要深层次的去理解WebServices还需努力,下面是我给你找的一个网上的例子作为参考:

使用XFire+Spring构建Web Service

XFire是与Axis 2并列的新一代Web Service框架,通过提供简单的API支持Web Service各项标准协议,帮助你方便快速地开发Web Service应用。

相对于Axis来说,目前XFire相对受欢迎,加上其提供了和Spring集成的支持,在目前的Web Service开源社区拥有众多的追随者。并且因为XFire为Spring提供的支持,使得我们可以很容易在Spring中使用XFire构建Web Service应用。

XFire与Axis2相比具有如下特征:

l支持一系列Web Service的新标准--JSR181、WSDL2.0、JAXB2、WS-Security等;

l使用Stax解释XML,性能有了质的提高。XFire采用Woodstox作Stax实现;

l容易上手,可以方便快速地从pojo发布服务;

l支持Spring、Pico、Plexus、Loom等容器;

l灵活的Binding机制,包括默认的Aegis,xmlbeans,jaxb2,castor;

l支持Spring、Pico、Plexus、Loom等容器。

l XFire的响应时间是Axis1.3的1/2到1/5。

XFire在WebService框架中开始较晚,它从现有的框架中借鉴了许多优秀的理念,力争将Web Service的应用开发难度降到最低。此外,还提供了各种绑定技术、支持多种传输协议,对WebService体系中许多新的规范提供了支持。

下面让我们来看一个XFire于Spring集成的helloWorld的简单例子。

1)基于J2EE平台的Web Service服务;

XFire是完全基于流数据处理进行工作的系统,这意味着XFire不是将整个SOAP文档缓存在内存中,而是以管道的方式接收SOAP流数据。这种工作方式的转变带来了可观的性能回报,同时节省了内存的占用。

XFire从管道中接收一个SOAP请求到返回一个SOAP响应,会经历一系列的阶段。在管道调用的任何一个阶段,XFire都可以添加一些额外的Handler,在对消息进行加工处理后再传入到下一个阶段中。在SOAP请求消息对Web Service发起真正调用之前,分别会经过传输、预转发、转发、策略实施、用户信息处理、预调用、服务调用等阶段。

在MyEclipse中新建Web工程,名为webservice_helloworld。选择该工程后,点击右键选择MyEclipse->Add Web Service Capabilities,弹出Add Web Service Capabilities对话框,点击“Next”,弹出Project Library Configuration对话框,默认选择Core Libraries,点击“Finish”按钮,完成XFire核心包的添加。为了后续的客户端的测试,还需读者加入commons- httpclient.jar包到WEB-INF/lib下。

部署后可看到此时WEB-INF/lib的jar包列表如下:

activation-1.1.jar、commons-beanutils-1.7.0.jar、commons-codec-1.3.jar、commons-httpclient.jar、 commons-logging-1.0.4.jar、jaxen-1.1-beta-9.jar、jaxws-api-2.0.jar、jdom- 1.0.jar、jsr173_api-1.0.jar、mail-1.4.jar、saaj-api-1.3.jar、saaj-impl- 1.3.jar、spring-1.2.6.jar、stax-api-1.0.1.jar、wsdl4j-1.5.2.jar、wstx-asl- 3.0.1.jar、xbean-2.1.0.jar、xbean-spring-2.5.jar、xfire-aegis-1.2.2.jar、 xfire-annotations-1.2.2.jar、xfire-core-1.2.2.jar、xfire-java5-1.2.2.jar、 xfire-jaxws-1.2.2.jar、xfire-jsr181-api-1.0-M1.jar、xfire-spring- 1.2.2.jar、XmlSchema-1.1.jar

为了后续的开发和测试,在src目录下分别建立test和webservice目录,分别用于存放测试文件和webservice的相关类。

在本例中,我们只是做一个helloWorld的简单例子。Web Service服务端提供一个根据输入的名字信息回复相应的helloWorld信息的。例如,当名字为“阿蜜果”时,恢复信息为“hello,阿蜜果”。下面让我们一步一步来开始进行编码。

一般情况下,我们通过HTTP作为Web Service的传输协议,这样我们只需启动一个Web服务器(如Tomcat,在本例中使用的是Tomcat5.5.20),这样客户端就可以通过 HTTP访问到Web Service服务。为了集成Spring容器,XFire专门提供一个XFireSpringServlet,我们可以在web.xml中配置该 Servlet,将Spring容器中定义的Web Service在某个URI下发布。

为了能正确使用XFire,需在web.xml中进行相应配置,在该文件中配置XFire的servlet和servlet-mapping。同时因为本实例需要将XFire集成到Spring中,因而需要在web.xml文件中加载Spring的相应配置文件。在本实例中,我们首先在WEB-INF下建立两个配置Spring配置文件,一个为applicationContext.xml,该文件用来定义本工程的bean,一个为xfire-servlet.xml,用来配置XFire的相关bean。修改后的web.xml的内容如下所示:

<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns="" xmlns:xsi="" version="2.4" xsi:schemaLocation=" ">

<display-name>XFireService</display-name>

<!-- begin Spring配置-->

<param-name>contextConfigLocation</param-name>

<param-value>/WEB-INF/applicationContext.xml,/WEB-INF/xfire-servlet.xml</param-value>

<listener-class> org.springframework.web.context.ContextLoaderListener

<listener-class> org.springframework.web.util.IntrospectorCleanupListener

<servlet-name>xfire</servlet-name>

<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

<servlet-name>xfire</servlet-name>

<url-pattern>*.ws</url-pattern>

<!--配合Spring容器中XFire一起工作的Servlet-->

<servlet-name>xfireServlet</servlet-name>

<servlet-class>org.codehaus.xfire.spring.XFireSpringServlet</servlet-class>

<servlet-name>xfireServlet</servlet-name>

<!--在这个URI下开放Web Service服务-->

<url-pattern>/service/*</url-pattern>

2)Web Service的接口类HelloWorld.java和对应实现类HelloWorldImpl.java

为了用Web Service完成HelloWorld功能,我们首先在src/webservice目录下建立接口类HelloWold.java。它仅包含一个sayHelloWorld(String name)的方法,其详细内容如下:

String sayHelloWorld(String name);

我们还需要建立一个对应的实现类,来实现sayHelloWorld的功能,该实现类即为HelloWorldImpl.java。该类的详细内容如下:

publicclass HelloWorldImpl implements HelloWorld{

public String sayHelloWorld(String name){

String helloWorld="hello,"+ name;

3)Spring配置文件applicationContext.xml和xfire-servlet.xml的配置

首先我们在applicationContext.xml文件中配置对应的bean——HelloWorldBean,该xml文件的内容如下:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE beans PUBLIC"-//SPRING//DTD BEAN//EN"

"">

<bean id="HelloWorldBean" class="webservice.HelloWorldImpl"/>

这个配置文件很简单,在此不详述。

XFire为Spring提供了方便易用的导出器XFireExporter,借助该导出器的支持,我们可以在Spring容器中将一个POJO导出为Web Service。HelloWorld是业务服务类,在此拥有一个sayHelloWorld的方法,我们希望将此方法开放为Web Service。在实际应用中,如果某个类具有众多的方法,而其中的某些方法不需要开放为Web Service的情况下,我们可以定义一个窄接口,该接口中只需定义那些开放为Web Service的业务方法。

将一个业务类所有需要开放为Web Service的方法通过一个窄接口来描述是值得推荐的作法,这让Web Service的接口显得很“干净”。其次,XFire的导出器也需要服务接口的支持,因为它采用基于接口的动态代理技术。

窄接口中的方法在真实的系统中可能需要引用其它的业务类或DAO获取数据库中的真实数据,为了简化实例,我们在此简化了实例。

下面让我们看看在xfire-servlet.xml文件中导出器的设置,该文件内容如下:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE beans PUBLIC"-//SPRING//DTD BEAN//EN"

"">

<!--引入XFire预配置信息-->

<import resource="classpath:org/codehaus/xfire/spring/xfire.xml"/>

<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">

<property name="urlMap">

<entry key="/HelloWorldService.ws">

<ref bean="HelloWorldService"/>

<bean id="baseWebService" class="org.codehaus.xfire.spring.remoting.XFireExporter" lazy-init="false" abstract="true">

<!--引用xfire.xml中定义的工厂-->

<property name="serviceFactory" ref="xfire.serviceFactory"/>

<!--引用xfire.xml中的xfire实例-->

<property name="xfire" ref="xfire"/>

<bean id="HelloWorldService" parent="baseWebService">

<property name="serviceBean" ref="HelloWorldBean"/>

<!--业务服务bean的窄接口类-->

<property name="serviceClass" value="webservice.HelloWorld"/>

在上面的配置中,我们可以看到,在该配置文件中引入了xfire.xml这个Spring配置文件。它是在XFire核心JAR包中拥有一个预定义的 Spring配置文件,它定义了XFire在Spring中必须用到的一些Bean和资源,需要引入这个预定义的配置文件。从该配置文件中可以看出,我们通过XFireExporter将业务类导出为Web Service,对于任何导出器,我们都需要引入XFire环境,即serviceFactory和xfire,这是标准的配置。ServiceFactory是XFire的核心类,它可以将一个POJO生成为一个Web Service。

在本实例中,我们通过定义一个baseWebService,其余的webService配置都将该bean作为父bean,这样可以简化Spring的配置,不需要多次引入serviceFactory和xfire。

在上一步操作完成之后,我们的这个简单的Web Service已经编写完毕,下面让我们来看看自己的劳动成果吧。

在浏览器中输入地址:,我们可以看到HelloWorldService对应的WSDL信息,阅读这个WSDL文档,我们可以知道HelloWorld的sayHelloWorld方法已经被成功地发布为Web Service了。只要拿到这个WSDL就可以开发相应的客户端调用程序了。

XFire为访问服务端Web Service提供了各种方便的方式:我们一般根据服务地址和窄接口类创建客户调用程序。

在不能获得服务窄接口类的情况下,XFire允许我们通过WSDL文件生成客户端调用程序,通过指定服务接口的方式调用服务。

1)通过WSDL文件生成客户端调用程序

首先我们通过我们可以获得WSDL文件HelloWorldService.wsdl,并将其放在src目录下面,接着我们通过程序访问该WSDL文件,并调用需测试的方法。此时测试类WebServiceClientTest.java的内容如下所示:

import org.codehaus.xfire.client.Client;

import org.springframework.core.io.ClassPathResource;

import org.springframework.core.io.Resource;

*HelloWorld的webservice的测试类.

*@author<a href="mailto:xiexingxing1121@126.com">AmigoXie</a>

*Creationdate:2007-9-16-下午05:36:05

publicclass WebServiceClientTest{

publicstaticvoid main(String[] args) throws Exception{

WebServiceClientTest test= new WebServiceClientTest();

publicvoid testClient() throws Exception{

String wsdl="HelloWorldService.wsdl";//对应的WSDL文件

Resource resource= new ClassPathResource(wsdl);

Client client= new Client(resource.getInputStream(), null);//根据WSDL创建客户实例

Object[] objArray= new Object[1];

Object[] results= client.invoke("sayHelloWorld", objArray);

System.out.println("result:"+ results[0]);

运行该类,可得到如下输出结果:

2)根据服务地址创建客户端调用程序

接着让我们来看一个根据服务地址创建客户端调用程序的例子。我们可以通过测试类来测试Web Service的正确性,下面让我们来看一个简单的测试类,首先我们在src/test目录建立WebServiceClientTest.java文件,并在src目录下建立客户端调用的Spring配置文件client.xml。在client.xml配置文件中我们定义了一个testWebService的bean,该bean访问wsdlDocumentUrl为的WSDL。该xml文件的详细内容如下:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE beans PUBLIC"-//SPRING//DTD BEAN//EN"

"">

<bean id="testWebService" class="org.codehaus.xfire.spring.remoting.XFireClientFactoryBean">

<property name="serviceClass">

<value>webservice.HelloWorld</value>

<property name="wsdlDocumentUrl">

<value>;

在WebServiceClientTest.java文件中获得HelloWorld,并调用它的sayHelloWorld方法来完成测试,该类的详细内容如下所示:

import org.springframework.context.ApplicationContext;

import org.springframework.context.support.ClassPathXmlApplicationContext;

*HelloWorld的webservice的测试类.

publicclass WebServiceClientTest{

publicstaticvoid main(String[] args){

WebServiceClientTest test= new WebServiceClientTest();

ApplicationContext ctx= new ClassPathXmlApplicationContext(

helloWorld=(HelloWorld) ctx.getBean("testWebService");

System.out.println(helloWorld.sayHelloWorld("阿蜜果"));

在启动webservice_helloworld工程的情况下,运行WebServiceClientTest类,可看到控制台包含如下信息:

由此可看出调用Web Service成功。

与Axis相比,在实施Web Service时XFire更加简洁高效,并且XFire对Spring提供了强大的支持,可以非常方便地在Spring中使用XFire实施Web Service,因此XFire在短短的时间里成为了受Web Service开发者喜爱的框架。

XFire为客户端提供了多种访问Web Service的方式,如果可以获取客户端的窄接口类,则可以采用窄接口类调用Web Service。如果仅能获取WSDL,XFire也可以采用动态反射的机制调用Web Service。XFire为Eclipse提供了一个可以根据WSDL生成客户端存根代码的插件,相信XFire也将为其它非Java语言提供类似的插件。

在Axis2中也开始使用Stax来处理XML,还有Xfire不支持WSDL2.0,而Axis2支持WSDL2.0。

还可使用Xfire的后续版本,Apache CXF(相当于 Xfire2.0).

三、java道底有什么用是个软件吗

Sun在SunWorld'95上正式发布Java和HotJava浏览器。

Oracle公司、Borland公司获得Java许可证。

SGI公司、Adobe公司、IBM公司、AT&T公司、Intel公司获得Java许可证。

Sun和Netscape发布JavaScript——一种基于Java语言的脚本语言,可供非编程员使用。

Sun、Netscape和SGI宣布缔结软件联盟,以开发Java和Internet三维和多媒体交互性工具。

Sun宣布成立新的业务部门——JavaSoft部,以开发、销售并支持基于Java技术的产品,由AlanBaratz先生任总裁。

Sun推出Java开发工具包JDK(JavaDevelopmentKit)1.0,为开发人员提供用来编制Java应用软件所需的工具。

Sun发布Java芯片系列,包括picoJava,microJava和UltraJava。

Sun推出Java数据库联接JDBC(JavaDatabaseConnectivity)数据库API。

微软公司、NetManage公司获得Java许可证。

SCO公司、苹果电脑公司(Apple)获得Java许可证。

NEC公司获得Java处理器技术许可证。

Sun宣布苹果电脑、HP、日立、IBM、微软、Novell、SiliconGraphics、SCO、Tamdem等公司将把Java平台嵌入到其操作系统中。

HP公司、Sybase公司获得Java许可证。

Addison-Wesley和Sun联合推出Java应用编程界面(JavaApplicationProgrmmingInterface,Vol1&2)和Java编程语言。

北方电讯公司宣布把Java技术和Java微处理器应用到其下一代电话机中的计划。

5月29日,Sun在旧金山举行第一届JavaOne世界Java开发者大会,业界人士踊跃参加。Sun在大会上推出一系列Java平台新技术:如JavaMediaAPIs、CommerceAPIs、SecurityAPIs、ServletAPIs、ManagementAPIs等以及JavaRMI和JavaIDL、JavaOS、JavaBeans、新的HotJava开发环境等。

Sun发布HotJava,这是一套Java类库,可供开发人员编制可按需剪裁的动态联网应用软件和用户环境。

Sun发布JavaOS,这是一种非常紧凑的操作系统,用来直接在从网络计算机一直到寻呼机的微处理器上运行Java应用软件。

GemstoneSystems公司、OctelCommunications公司获得Java许可证。

JavaWorkShop成为Sun通过互联网提供的第一个产品。

三菱日本公司等公司获得Java许可证。

Addison-Wesley和Sun推出Java虚拟机规范和Java类库。

德州仪器等公司获得Java许可证。

由于业界通力合作为开发人员提供强有力的平台独立部件体系结构,Sun提前完成JavaBeans规范并发布。

Sun发布第一个JavaJIT(Just-In-Time)编译器,并打算在JavaWorkShop和Solaris操作系统中加入JIT。

10月29日,Sun发布Java企业计算技术,包括:JavaStation网络计算机、65家公司发布的85个Java产品和应用、7个新的Java培训课程和Java咨询服务、基于Java的Solstice互联网邮件软件、新的Java开发者支持服务、演示HotJavaViews、JavaTutor、完成JavaCardAPI等。

Sun演示HotJavaViews——第一个专供Java网络计算机使用的用户环境。HotJavaViews是经过优化的、可为那些将其绝大部分计算时间花费在很少关键应用软件的工作人员提供高效Webtop环境。

Sun宣布完成JavaCard应用编程界面(API)规范,这是智能卡使用的第一个开放API。JavaCard规范将把Java能力赋予全世界亿万张智能卡。

IBM公司获得JavaOS和HotJava许可证。

Novell公司获得JavaWorkShop许可证。

Sun和IBM宣布双方就提供Java化的商业解决方案达成一项广泛协议,IBM同意建立第一个Java检验中心。

Sun交付其第一批JavaStation网络计算机。JavaStation网络计算机被《Information周刊》评为"1996年最重要产品"。

Xerox等公司获得Java或JavaOS许可证。

Sun发布JDK1.1、Java商贸工具包、JavaBeans开发包及一系列JavaAPIs。

Sun推出一个新的JavaServer产品系列,其中包括JavaWebServer、JavaNCServer和JavaServerToolkit。

Sun发布100%纯Java计划,得到百家公司的支持。

Sun交付完善的JavaBeans开发包,这是在确定其规范后不到8个月内完成的。

Gemplus公司、ElectronicToolsCompany公司获得Java许可证,北方电讯公司获得JavaOS许可证。

Sun和ARM公司宣布同意使JavaOS能运行在ARM公司的RISC处理器架构上。

Informix公司宣布在其UniversalServer和其他数据库产品上支持JDK1.1。

Netscape公司宣布其NetscapeCommunicator支持所有Java化的应用软件和核心APIs。

HP公司获得JavaWorkShop许可证,用于HP-UX操作系统。

西门子AG公司等公司获得Java许可证。

日立半导体公司、Informix公司等公司获得JavaOS许可证。

Novell公司获得JavaStudio许可证。

Sun发售JavaOS1.0操作系统,这是一种在微处理器上运行Java环境的最小、最快的方法,提供给Sun的JavaOS许可证持有者使用。

Sun发售HotJavaBrowser1.0,这是一种Java浏览环境,可以方便地按剪裁来编制专用的信息应用软件,如信息亭、客户自助台和打上公司牌号的网络应用软件。

3月17日Sun向国际标准化组织的第一联合技术委员会(JTC-1)申请成为Java的公开有效规范(PAS)的提案者。

OSFResearch(OpenGroup)公司、Lucent公司获得Java许可证。

Corel公司获得JavaStudio许可证。

4月2日Sun在美国旧金山举行第二届JavaOne开发应用者大会,有超过10,000人参加。

Sun发布PersonalJavaTM和EmbeddedJavaTM,表明Java同样可在PDA(个人数字助理)、复印机和智能卡中很好发挥作用。

Sun为企业计算推出全面的Java平台,包括一种新技术EnterpriseJavaBeans。它使用Java来突破建立端对端商务解决方案的复杂性。

Sun宣布JavaPCTM计划。JavaPC是一种低价位软件技术,可把老的DOSPC机变换成网络计算机,既简单又方便。

Sun与LG半导体公司协议共同开发用于网络计算机及其他消费设备的Java处理器。

Sun与Netscape宣布共同合作以提供Java基础类库。

Sun与RockwellCollins公司宣布将共同开发用于消费类产品的Java处理器核心技术。

Sun与东芝公司协议共同开发一种低功耗的Java化处理器。

Sun发布JavaStudio和JavaWorkShop2.0。

Sun发布JavaSound、JavaAdvancedImaging和JavaInputMethodAPIs。这三种新的应用编程界面使特性丰富的Java平台获得额外的功能。

摩托罗拉公司宣布其PowerPC微处理器可运行JavaOS操作系统。

Bull公司获得用于端对端解决方案的Java技术许可证,适用于智能卡、终端以及POS设备等。

TriTeal公司获得HotJavaBrowser许可证。

菲利浦智能卡与系统公司获得包括JavaCard的Java许可证。

苹果电脑公司宣布将把Java平台作为其PhapsodyOS操作系统发展战略的中心组成部分。

三星、3Com等公司获得JavaOS许可证。

Sun设在瑞士日内瓦的Sun新技术应用展示中心启用,用于展示Java计算解决方案。

Sun推出Java技术API(JTAP)规范1.0,得到Lucent、IBM、Intel、Nortel、Novell等公司的支持。

Addison-Wesley和Sun发布JavaFAQ。

Sun与西门子公司签署协议,将Java嵌入到智能卡芯片。

Sun与LG半导体公司签署协议共同开发Java处理器。

Sun合并Diba公司,以加速开发Java化的家用信息产品。

IBM公司获得SunTestJava测试工具许可证。

截止到8月21日,有61个应用软件获得100%纯Java认证;另有100多个应用程序等待测试。

Sun发布JavaBlend,这种新技术可使软件开发者能把Java应用软件与数据库自动结合起来。

Sun签署合并Integrity公司的协议。合并后的Integrity公司加入SunSoft部门,将在面向对象编程、智能卡及虚拟机等方面发挥重要作用。

Alcatel公司、Nortel公司和三星公司选择PersonalJava作为其网络电话的标准平台。网络电话除电话功能外,还可以发电子邮件,连接因特网和浏览万维网等。

IBM公司、Netscape公司和Sun共同建立一个新的Java移植和调试中心,以提高Java的性能,保证及时、不断地向Java开发商和用户提供Java技术解决方案。来自这三个公司的专家将在该中心携手工作。

在实时操作系统(RTOS)具领先地位的生产商Acorn公司、Chorus公司、GeoWorks公司、LucentTechnology公司、Microtec公司、Micreware公司、Qnx公司和WindRiverSystem公司获得在其消费电子产品中使用PersonalJava(个人Java)和EmbeddedJava(嵌入Java)技术的许可证,用以生产具有Java解决方案软件的消费电子产品(如电视顶置盒、网络电话、寻呼机等)。

Sun向美国加州地方法院起诉微软公司违反两公司就微软使用Java技术所签定的合同,指控微软公司违反了合同中承诺向用户提供Java兼容产品的条款。Sun要求微软公司停止侵犯Java兼容标志,放弃误导Java开发者、阻碍他们开发完全兼容Java技术的产品的作法。

Sun向公众公开Sun与微软公司就开发销售含有SunJava技术的产品和使用兼容Java标志的合同文本。

Sun宣布已全面完成JavaCardAPI规范,并上网供用户下载。

Sun发布世界上第一个Java微处理器microJava701芯片的技术细节,并将在1998年下半年大批量生产该芯片。

Sun正式推出JavaStudio。这是一种动态Java创作工具,可使非编程员直观地编制Java小程序和应用程序。

Sun宣布支持Lotus公司新的纯Java化的eSuiteWorkplace办公软件。eSuiteWorkplace是第一个综合性的"瘦客户"高效成套软件,包括字处理、电子表格、电子邮件及日程安排等组成部分,完全用Java语言编写,可高效运行于JavaStation网络计算机。

IBM公司、Lotus公司、Oracle公司和Sun宣布共同开发Java化的台式机规范,这将首次在业界统一台式网络计算环境,使NC和PC能无碍地运行基于单一规范的任何应用程序,即"网上规范"。

Sun宣布与荷兰TeleficationBV(一家硬件、软件及通信设备认证中心)合作,建立欧洲100%纯Java测试认证中心,为欧洲参加100%纯Java计划的公司提供服务。

国际标准化组织11月17日宣布,其第一联合技术委员会(JTC-1)以压倒多数的投票结果,批准Sun公司作为Java公开有效规范(PAS)提案者的申请。在参加投票的24个国家中,20票赞成,2票反对,2票弃权。这将使Java技术走向法律标准。

Java来自于Sun公司的一个叫Green的项目,其原先的目的是为家用消费电子产品开发一个分布式代码系统,这样我们可以把E-mail发给电冰箱、电视机等家用电器,对它们进行控制,和它们进行信息交流。开始,准备采用C++,但C++太复杂,安全性差,最后基于C++开发一种新的语言Oak(Java的前身),Oak是一种用于网络的精巧而安全的语言,Sun公司曾依此投标一个交互式电视项目,但结果是被SGI打败。可怜的Oak几乎无家可归,恰巧这时MarkArdreesen开发的Mosaic和Netscape启发了Oak项目组成员,他们用Java编制了HotJava浏览器,得到了Sun公司首席执行官ScottMcNealy的支持,触发了Java进军Internet。Java的取名也有一copy;趣闻,有一天,几位Java成员组的会员正在讨论给这个新的语言取什么名字,当时他们正在咖啡馆喝着Java(爪哇)咖啡,有一个人灵机一动说就叫Java怎样,得到了其他人的赞赏,于是,Java这个名字就这样传开了。

Java是Sun公司推出的新的一代面向对象程序设计语言,特别适合于Internet应用程序开发,它的平台无关性直接威胁到Wintel的垄断地位。一时间,“连Internet,用Java编程”,成为技术人员的一种时尚。虽然新闻界的报导有?copy;言过其实,但Java作为软件开发的一种革命性的技术,其地位已被确立,这表现在以下几个方面:1.计算机产业的许多大公司购买了Java的许可证,包括IBM,Apple,DEC,Adobe,SiliconGraphics,HP,Oracel,Toshiba,以及最不情愿的Microsoft。这一点说明,Java已得到了工业界的认可。2.众多的软件开发商开始支持Java的软件产品。例如:Borland公司正在开发的基于Java的快速应用程序开发环境Latte,产品已在1996年中期发布。Borland公司的这一举措,推动了Java进入PC机软件市场。Sun公司自己的Java开发环境JavaWorkshop已经发布。数据库厂商如:Illustra,Sysbase,Versant,Oracle都在开发CGI接口,支持HTML和Java。今天是以网络为中心的计算时代,不支持HTML和Java,应用程序的应用范围只能限于同质的环境(相同的硬件平台3.Intranet正在成为企业信息系统最佳的解决方案,而其中Java将发挥不可替代的作用。Intranet的目的是把Internet用于企业内部的信息系统,它的优点表现在:便宜,易于使用和管理。用户不管使用何种类型的机器和操作系统,界面是统一的Intrnet浏览器,而数据库、Web页面、应用程序(用Java编的Applet)则存在WWW服务器上,无论是开发人员,还是管理人员,抑或是用户都可以受益于该解决方案。Java语言正在不断发展和完善,Sun公司是主要的发展推动者,较通用的编译环境有JDK(JavaDevelopKit)与JWS(JavaWorkshop)。还有很多其他公司正在开发Java语言的编译器与集成环境,预计不久Java语言的正确性与效率都将会提高,用户用Java编程和现在用C++编程更方便。

Java到底是一种什么样的语言呢?Java是一种简单的面象对象的分布式的解释的健壮的安全的结构中立的可移植的性能很优异的多线程的动态的语言。

Java最初是为对家用电器进行集成控制而设计的一种语言,因此它必须简单明了。Java语言的简单性主要体现在以下三个方面:1.Java的风格类似于C++,因而C++程序员是非常熟悉的。从某种意义上讲,Java语言是C及C++语言的一个变种,因此,C++程序员可以很快就掌握Java编程技术。2.Java摒弃了C++中容易引发程序错误的地方,如指针和内存管理。3.Java提供了丰富的类库。

面向对象可以说是Java最重要的特性。Java语言的设计完全是面向对象的,它不支持类似C语言那样的面向过程的程序设计技术。Java支持静态和动态风格的代码继承及重用。单从面向对象的特性来看,Java类似于SmallTalk,但其它特性、尤其是适用于分布式计算环境的特性远远超越了SmallTalk。

Java包括一个支持HTTP和FTP等基于TCP/IP协议的子库。因此,Java应用程序可凭借URL打开并访问网络上的对象,其访问方式与访问本地文件系统几乎完全相同。为分布环境尤其是Internet提供的动态内容无疑是一项非常宏伟的任务,但Java的语法特性却使我们很容易地实现这项目标。

Java致力于检查程序在编译和运行时的错误。类型检查帮助检查出许多开发早期出现的错误。Java自已操纵内存减少了内存出错的可能性。Java还实现了真数组,避免了覆盖数据的可能。这些功能特征大大缩短了开发Java应用程序的周期。Java提供Null指针检测数组边界检测异常出口字节代码校验。

另外,为了建立Java作为网络的一个整体,Java将它的程序编译成一种结构中立的中间文件格式。只要有Java运行系统的机器都能执行这种中间代码。现在,Java运行系统有Solaris2.4(SPARC),Win32系统(Windows95和WindowsNT)等.Java源程序被编译成一种高层次的与机器无关的byte-code格式语言,这种语言被设计在虚拟机上运行,由机器相关的运行调试器实现执行。

Java的安全性可从两个方面得到保证。一方面,在Java语言里,象指针和释放内存等C++功能被删除,避免了非法内存操作。另一方面,当Java用来创建浏览器时,语言功能和浏览器本身提供的功能结合起来,使它更安全。Java语言在你的机器上执行前,要经过很多次的测试。它经过代码校验,检查代码段的格式,检测指针操作,对象操作是否过分以及试图改变一个对象的类型。

如果byte-code通过代码校验,没有返回错误,我们可知道:代码没有堆栈上溢出和下溢出所有操作代码参数类型都是正确的没有发生非法数据转换,如将整数转换成指针。访问对象操作是合法的

ClassLoader通过将本机类与网络资源类的名称分开,来保持安全性。因为调入类时总要经过检查,这样避免了特洛伊木马现象的出现。从网络上下载的类被调进一个与源相关的私有的名字域。当一个私有类访问另一个类时,build-in(本机类)首先被检查,然后检查相关的类。这样就避免了破坏本机类情况的出现。

同体系结构无关的特性使得Java应用程序可以在配备了Java解释器和运行环境的任何计算机系统上运行,这成为Java应用软件便于移植的良好基础。但仅仅如此还不够。如果基本数据类型设计依赖于具体实现,也将为程序的移植带来很大不便。例如在Windows3.1中整数(Integer)为16bits,在Windows95中整数为32bits,在DECAlpha中整数为64bits,在Intel486中为32bits。通过定义独立于平台的基本数据类型及其运算,Java数据得以在任何硬件平台上保持一致。Java语言的基本数据类型及其表示方式如下:byte8-bit二进制补码short16-bit二进制补码int32-bit二进制补码long64-bit二进制补码float32-bitIEEE754浮点数double32-bitIEEE754浮点数char16-bitUnicode字符

在任何Java解释器中,数据类型都是依据以上标准具体实现的。因为几乎目前使用的所有CPU都能支持以上数据类型、8~64位整数格