What Java

 

Java™是全新的计算机技术,它是建立在基于强大的网络和同样的软件应该在不同的计算机系统上运行的思想上的。这些计算机系统包括消费型器件和其他一些设备。利用Java技术,您能令人信服的让同一种应用在各种各样机器如:PC、Macintosh系统、计算机网络或者象Internet可视电话一样的新技术上运行。

Java可以既可以看做是一种真正的程序设计语言,也可以看作是一个完整的平台。作为一种程序语言,它简洁、面向对象、安全、健壮以及适用于Internet技术。而作为一个平台,它通过那些符合Sun公司发布的标准APIs 开发的应用,在操作系统、数据库、中间件和其他第三方厂商提供的服务。

你能用Java干什么?

Java能够做得比其他语言更灵活。下列是Java的一些典型的应用。

  • GUI应用和applets
  • 分布式组件(EJB,RMI,CORBA等)
  • 数据库以及数据库控制
  • Web服务器
  • 消费设备和内置设备的应用(移动电话,PDAs,smart卡,可携带摄像机)
  • 任何在计算机上你能想到的应用......

Java怎样工作?

Java应用程序能够被JVM(Java虚拟机)翻译,JVM位于操作系统之上。有不少厂商已经有JVMs,如Sun,IBM,HP,Applet等。

下面的图形显示Java在编译和运行时的步聚:

图一:Java的编译

图二:Java的运行

Java应用程序(.class文件)不需要重新编译在任何操作系统上运行。

下面是简单的Java程序:

public class HelloWorld
{
public static void main(String args[]) throws Exception
{
System.out.println("Hello World!");
}
}

各种各样的 Java产品和APIs

Java平台分成三个主要的类:

  • Standard Java
  • Enterprise Java
  • Java for sonsumer and embedded devices

下面是一些关健的技术/APIs在这三个方面的应用。

Standard Java

  • Java 2 SDK(J2SE)
  • Java 2 运行环境
  • Java插件
  • Java Web应用
  • Java热点服务和虚拟机
  • Java基本类(JFC)
  • 收集框架
  • Swing组件
  • 即插即用
  • 安全
  • Java IDL
  • JDBC
  • 远程方法调用(RMI)
  • Java 2D

Enterprise Java

  • Enterprise JavaBeans (EJB) 体系结构
  • JavaServer Pages?(JSP)
  • Java Servlet
  • Java 名称和目录接口 (JNDI)
  • Java IDL
  • JDBC
  • Java Message Service (JMS)
  • Java 事务 (JTA)
  • Java 事务服务(JTS)
  • JavaMail
  • RMI-IIOP
  • Software Development Kit & Application Model
  • Java 2 SDK, Enterprise Edition (J2EE)
  • Sun BluePrints Design Guidelines for J2EE

消费和移动设备

  • Java 2 Platform, Micro Edition (J2ME technology)
  • Connected Device Configuration (CDC)
  • Connected Limited Device Configuration (CLDC)
  • C Virtual Machine (CVM)
  • K Virtual Machine (KVM)
  • PersonalJava
  • Java Card
  • JavaPhone API
  • Java TV API
  • Jini 网络技术
  • 移动信息设备 (MIDP)?

Java的历史

自从1995年Java被介绍给公众,就引起了公众的注目。不久就有几百个有价值的报道事件:产品发布、Java技术的叙述。下面的表格大致的证明了许多关键的事件。

1995

  • Java 技术发行,开始的重点是applets

1996

  • Java Development Kit (JDK) v1.0 发布. 包含核心层的功能 (socket programming, file I/O, GUI等)

1997

  • JDK 1.1 发布. 引入几个增强的方面:Java GUI, JDBC数据控制, RMI 分布对象和其他一些。

1998

  • JDK 1.2 (称 Java 2) 发布
  • JFC/Swing ships ,那年JFC/Swing被下载了500,000多次

1999

  • Java 技术被分成J2SE, J2EE and J2ME
  • Java HotSpot performance engine unveiled
  • JavaServer Pages (JSP)技术公诸于众
  • J2EE platform ships
  • J2SE platform on Linux ships

2000

  • JDK v1.3 发布
  • Java APIs for XML ship
  • J2EE 授权给 ATG, BEA Systems, Gemstone, Silverstream和其他几个公司. 许多卖主已经接收了这个。
  • Java开发者成员上升到150万。

Java的成长

Java现在运行在桌面系统、服务器、数据库、smart卡、PDAs、smart电话、机顶盒等许多方面。

Java 成功的众多原因

  • 奇妙的程序设计语言
    • 没有类似与C/C++的内存问题
    • 面向对象
    • 高度动态,不像 C/C++/VB
    • 安全
    • 针对Internet程序设计
  • 平台无关:一次编译,到处运行
  • Java推出一个公共的途径以代替象Windows, MQ Series, Sybase DB Library等一样的私有技术。这对于每个人来说都是非常伟大的,不论你是开发者还是企业。

一些感兴趣的事实

  • 在JavaOne2000年会上,有超过25000人参加;有超过330个公司显示了他们基于Java的解决方案
  • 在世界上有超250万的Java程序。IDC估计到2003年将会超过400万
  • JDK V 1.1 已经有超过500万的下载
  • 有关Java平台的书籍已经超过2000本
  • 在世界上已经有超过1500个Java用户训话(JUGs)
  • Sun解决问题的网站已经超2800个,并且提供超过2100个的Java服务
  • 2千万的Java Smartcards已经在去年被销售
  • java.sun.com一个月这内就有110万的浏览者,他们在这个站点浏览了3600万个页面。
  • 80%的境外大学要求学习Java;其中50%是作为必修课

关键原因是Java让企业增加了市场判断能力

  • 在市场中存在大量的好的产品可供使用,让开发者以及开发者去执行他们的系统变化
  • 能够与各种各样的环境结合在一起(由于支持通讯、XML、CORBA等)
  • 端到端的分布式传输支持
  • 自从被推出以来,Java有著引人关注的成熟

Java以其相关技术

微软

  • Sun和微软之争对于开发者来说是无关紧要的,因为你可以简单的安装Java虚拟机在Windows 2000、NT4.2、或者9x上。
  • 对于浏览器端的Java,这些项目包括:
    • 基于HTML/JavaScript的Web应用和服务器端Java
    • 在IE 4.x 和IE 5.x中对于JDK1.1 90%以上的支持
    • Java 2以及更新版本的支持
    • Sun的Java插件
    • Sun的Java Web Start(在浏览器之外也能运行应用)
  • Java认为在其他Unix平台下比在Windows平台下运行得更好、更快。
  • 几个"桥 "在Java和微软技术之间可供使用

XML

  • Java和XML是高端的补充技术
  • Java提供代码布局,XML提供数据布局
  • Java有成熟的支持XML、XSL和其他相关技术
  • Java中包含有Sun、IBM和Apache的针对于XML的程序
  • JSP做为动态网而能够很易的使用XML

其他: WAP, SOAP, 蓝牙, CORBA 等.

  • Java能看作是一种程序设计语言或整个平台
  • 从程序设计语言的角度
    • Java可以符合几乎所以的协议写程序
    • 很多新出现的技术和产品支持Java接口
    • Java也能通过C/C++而扩展

 

Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet.Applet 简单实现!~ 网页表格组件 GWT Advanced Table GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以直接在你的网页里面显示搜查的结果。 github-java-api github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache SimpleCache 是一个简单易用的java缓存工具,用来简化缓存代码的编写,让你摆脱单调乏味的重复工作!1. 完全透明的缓存支持,对业务代码零侵入 2. 支持使用Redis和Memcached作为后端缓存。3. 支持缓存数据分区规则的定义 4. 使用redis作缓存时,支持list类型的高级数据结构,更适合论坛帖子列表这种类型的数据 5. 支持混合使用redis缓存和memcached缓存。可以将列表数据缓存到redis中,其他kv结构数据继续缓存到memcached 6. 支持redis的主从集群,可以做读写分离。缓存读取自redis的slave节点,写入到redis的master节点。 Java对象的SQL接口 JoSQL JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于【自动提示】的需要(如:Google搜索), 而开发的架构无关的公共控件, 以满足该类需求可以通过快速配置来开发。AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器 j2wap j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是一个用来操作Windows注册表的 Java 类库,你可以用来对注册表信息进行读写。 GIF动画制作工具 GiftedMotion GiftedMotion是一个很小的,免费而且易于使用图像互换格式动画是能够设计一个有趣的动画了一系列的数字图像。使用简便和直截了当,用户只需要加载的图片和调整帧您想要的,如位置,时间显示和处理方法前帧。 Java的PList类库 Blister Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端 JOpenID JOpenID是一个轻量级的OpenID 2.0 Java客户端,仅50KB+(含源代码),允许任何Web网站通过OpenID支持用户直接登录而无需注册,例如Google Account或Yahoo Account。 JActor的文件持久化组件 JFile JFile 是 JActor 的文件持久化组件,以及一个高吞吐量的可靠事务日志组件。 Google地图JSP标签库 利用Google:maps JSP标签库就能够在你的Web站点上实现GoogleMaps的所有功能而且不需要javascript或AJAX编程。它还能够与JSTL相结合生成数据库驱动的动态Maps。 OAuth 实现框架 Agorava Agorava 是一个实现了 OAuth 1.0a 和 OAuth 2.0 的框架,提供了简单的方式通过社交媒体进行身份认证的功能。 Eclipse的JavaScript插件 JSEditor JSEditor 是 Eclipse 下编辑 JavaScript 源码的插件,提供语法高亮以及一些通用的面向对象方法。 Java数据库连接池 BoneCP BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接池的性能,根据某些测试数据发现,BoneCP是最快的连接池。BoneCP很小,只有四十几K
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值