关于java

                                                           关于java

以下信息来源于百度百科:http://baike.baidu.com/view/29.htm点击打开链接

     

     Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaSE, JavaEE, JavaME)的总称。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。(2010年Oracle公司收购了SUN)


JAVA简介

JAVA&ECLIPSE

      Java是由 Sun Microsystems公司于1995年5月推出的Java面向对象程序设计 语言(以下简称Java语言)和Java平台的总称。由 James Gosling 和同事们共同研发,并在1995年正式推出。用Java实现的 HotJava浏览器(支持Java applet)显示了Java的魅力: 跨平台、动态的Web、 Internet计算。从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器均支持Java applet。另一方面,Java技术也不断更新。(2010年 Oracle公司收购了 SUN)
Java由四方面组成:Java 编程语言、Java类文件格式、Java 虚拟机和Java 应用程序接口(Java API)。


       Java平台由 Java虚拟机(Java Virtual Machine,简称 JVM)和Java 应用编程接口(Application Programming Interface,简称 API)构成。Java 应用 编程接口为Java应用提供了一个独立于 操作系统的标准接口,可分为基本部分和扩展部分。在 硬件或操作系统平台上安装一个Java平台之后,Java应用程序就可运行。Java平台已经嵌入了几乎所有的操作系统。这样Java程序可以只编译一次,就可以在各种系统中运行。Java应用编程接口已经从1.1x版发展到1.2版。常用的Java平台基于Java1.4,最近版本为Java1.7。
      Java分为三个体系 J2SE(Java2 Platform Standard Edition,java平台标准版), J2EE(Java 2 Platform,Enterprise Edition,java平台企业版), J2ME(Java 2 Platform Micro Edition,java平台微型版)。


       与传统 程序不同,Sun 公司在推出 Java 之际就将其作为一种开放的技术。全球数以万计的 Java 开发 公司被要求所设计的 Java 软件必须相互兼容。“Java 语言靠群体的力量而非公司的力量”是 Sun 公司的口号之一,并获得了广大软件开发商的认同。这与 微软公司所倡导的注重精英和封闭式的模式完全不同。
Sun 公司对 Java 编程语言的解释是:Java 编程语言是个简单、 面向对象分布式、解释性、健壮、安全与系统无关、可移植、高性能、 多线程和动态的语言。

Java名字的来源

Java是印度尼西亚 爪哇岛英文名称,因盛产 咖啡而闻名。 Java语言中的许多库类 名称,多与咖啡有关:如 JavaBeans咖啡豆)、 NetBeans(网络豆)以及ObjectBeans (对象豆)等等。 SUN和JAVA的标识也正是一杯正冒着热气的咖啡。



历史版本

1995年5月23日,Java语言诞生
1996年1月,第一个 JDK-JDK1.0诞生
1996年4月,10个最主要的 操作系统供应商申明将在其产品中嵌入JAVA技术
1996年9月,约8.3万个 网页应用了JAVA技术来制作
1997年2月18日,JDK1.1发布
1997年4月2日, JavaOne会议召开,参与者逾一万人,创当时全球同类会议规模之纪录
1997年9月,JavaDeveloperConnection社区成员超过十万
1998年2月, JDK1.1被下载超过2,000,000次
1998年12月8日,JAVA2企业平台 J2EE发布
1999年6月,SUN公司发布Java的三个版本:标准版(J2SE)、企业版(J2EE)和微型版(J2ME)
2000年5月8日,JDK1.3发布
2000年5月29日,JDK1.4发布
2001年6月5日, NOKIA宣布,到2003年将出售1亿部支持Java的手机
2001年9月24日,J2EE1.3发布
2002年2月26日,J2SE1.4发布,自此Java的计算能力有了大幅提升
2004年9月0日18:00PM,J2SE1.5发布,成为Java语言发展史上的又一 里程碑。为了表示该版本的重要性,J2SE1.5更名为Java SE 5.0
2005年6月,JavaOne大会召开,SUN公司公开Java SE 6。此时,Java的各种版本已经更名,以取消其中的数字“2”:J2EE更名为Java EE,J2SE更名为Java SE,J2ME更名为Java ME
2006年12月,SUN公司发布JRE6.0
2009年04月20日, 甲骨文74亿美元收购 Sun。取得java的 版权
2010年11月,由于 甲骨文对于Java社区的不友善,因此 Apache扬言将退出 JCP
2011年7月28日, 甲骨文发布java7的正式版。


基本概念

final类:为防止他人从你的类上派生新类,此类是不可扩展的。
多态类:在java中,对象变量是多态的。而java中不支持多重继承。
抽象类:规定一个或多个抽象方法的类本身必须定义为abstract。
接口:Java中的接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。
Java中的每一个类都是从Object类扩展而来的。
object类中的equal和toString方法。
equal用于测试一个对象是否同另一个对象相等。
toString返回一个代表该对象的字符串,每一个类都会从Object类继承该方法,有些类重写了该方法,以便返回当前状态的正确表示。
(toString 方法是一个很重要的方法)
通用编程:任何类类型的所有值都可以同object类型的 变量来代替。
封装:就是把数据和行为结合起在一个包中,并对对象使用者隐藏数据的实现过程,一个对象中的数据叫他的实例字段(instance field)。
重载:当多个方法具有相同的名字而含有不同的参数时,便发生重载。编译器必须挑选出调用哪个方法。
重写:在Java中,子类可继承父类中的方法,而不需要重新编写相同的方法。但有时子类并不想原封不动地继承父类的方法,而是想作一定的修改,这就需要采用方法的重写。
数组列表:ArrayList 动态数组列表,是一个类库,定义在java.util包中,可自动调节数组的大小。
class类 object类中的getclass方法返回class类型的一个实例,程序启动时包含在main方法的类会被加载,虚拟机要加载他需要的所有类,每一个加载的类都要加载它需要的类。



相关技术

1. JDBC(Java Database Connectivity)提供连接各种关系 数据库的统一接口,作为数据源,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC为工具/数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯Java API 编写数据库应用程序,同时,JDBC也是个商标名。
2. EJB(Enterprise JavaBeans)使得开发者方便地创建、部署和管理跨平台的基于组件的企业应用。
3.Java RMI(Java Remote Method Invocation)用来开发分布式Java应用程序。一个Java对象的方法能被远程Java虚拟机调用。这样,远程方法激活可以发生在对等的两端,也可以发生在 客户端和服务器之间,只要双方的应用程序都是用Java写的。
4.Java IDL(Java Interface Definition Language) 提供与CORBA(Common Object Request Broker Architecture)的无缝的互操作性。这使得Java能集成异构的商务信息资源。
5. JNDI(Java Naming and Directory Interface)提供从Java平台到的统一的无缝的连接。这个接口屏蔽了企业网络所使用的各种命名和目录服务。
6. JMAPI(Java Management API)为 异构网络上系统、网络和服务管理的开发提供一整套丰富的对象和方法。
7. JMS(Java Message Service)提供企业 消息服务,如可靠的 消息队列、发布和订阅通信、以及有关推拉(Push/Pull)技术的各个方面。
8. JTS(Java transaction Service)提供存取事务处理资源的开放标准,这些事务处理资源包括事务处理应用程序、事务处理管理及监控。
9. JMF(Java Media Framework API),她可以帮助开发者把音频、视频和其他一些基于时间的媒体放到Java应用程序或applet小程序中去,为 多媒体开发者提供了捕捉、回放、编解码等工具,是一个弹性的、跨平台的多媒体解决方案。
10. Annotation(Java Annotation),在已经发布的JDK1.5(tiger)中增加新的特色叫Annotation。Annotation提供一种机制,将程序的元素如:类,方法,属性,参数,本地变量,包和元数据联系起来。这样编译器可以将元数据存储在Class文件中。这样虚拟机和其它对象可以根据这些元数据来决定如何使用这些程序元素或改变它们的行为。
在Java技术中,值得关注的还有JavaBeans,它是一个开放的标准的组件体系结构,它独立于平台,但使用Java语言。一个JavaBean是一个满足JavaBeans规范的Java类,通常定义了一个现实世界的事物或概念。一个JavaBean的主要特征包括属性、方法和事件。通常,在一个支持JavaBeans规范的开发环境(如Sun Java Studio 和IBM VisualAge for Java)中,可以可视地操作JavaBean,也可以使用JavaBean构造出新的JavaBean。JavaBean的优势还在于Java带来的可移植性。EJB (Enterprise JavaBeans) 将JavaBean概念扩展到Java服务端组件体系结构,这个模型支持多层的 分布式对象应用。除了JavaBeans,典型的组件体系结构还有DCOM和CORBA,关于这些组件体系结构的深入讨论超出了本书的范围。
11. javaFX Sun刚刚发布了JavaFX技术的正式版,它使您能利用JavaFX 编程语言开发富互联网应用程序(RIA)。JavaFX Script编程语言(以下称为JavaFX)是Sun微系统公司开发的一种declarative,staticallytyped(声明性的、静态类型) 脚本语言。JavaFX技术有着良好的前景,包括可以直接调用Java API的能力。因为JavaFXScript是静态类型,它同样具有结构化代码、重用性和封装性,如包、类、继承和单独编译和发布单元,这些特性使得使用Java技术创建和管理大型程序变为可能。
12. JMX(Java Management Extensions,即Java管理扩展)是一个为应用程序、设备、系统等植入
管理功能的框架。JMX可以跨越一系列异构操作系统平台、 系统体系结构和网络传输协议,灵活的开发无缝
集成的系统、网络和服务管理应用。
13. JPA(Java Persistence API),JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体 对象持久化到数据库中。


语言特点

Java 编程语言的风格十分接近 CC++语言。Java是一个纯粹的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C语言中容易引起错误的 指针(以引用取代)、运算符 重载(operator overloading)、 多重继承(以接口取代)等特性,增加了 垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了 泛型编程(Generic Programming)、类型安全的 枚举、不定长参数和自动装/拆箱等语言特性。
Java 不同于一般的 编译执行计算机语言和 解释执行计算机语言。它首先将 源代码编译成二进制 字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的 运行效率。 


主要特性


Java语言是简单的

Java语言的语法与 C语言和 C++语言很接近,使得大多数程序员很容易学习和使用Java [3] 。另一方面,Java丢弃了 C++中很少使用的、很难理解的、令人迷惑的那些特性,如操作符 重载、多继承、自动的 强制类型转换。特别地,Java语言不使用 指针,并提供了自动的废料收集,使得程序员不必为 内存管理而担忧。

Java语言是面向对象的

Java语言提供类、接口和继承等原语,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制( 关键字为implements)。Java语言全面支持 动态绑定,而 C++语言只对 虚函数使用动态绑定。总之,Java语言是一个纯的 面向对象程序设计语言。

Java语言是分布式的

Java语言支持Internet应用的开发,在基本的Java应用 编程接口中有一个网络应用编程接口(java net),它提供了用于 网络应用编程的类库,包括 URL、URLConnection、 Socket、ServerSocket等。Java的 RMI(远程方法激活)机制也是开发分布式应用的重要手段。

Java语言是健壮的。
Java的 强类型机制、异常处理、垃圾的自动收集等是Java程序健壮性的重要保证。对指针的丢弃是Java的明智选择。Java的安全检查机制使得Java更具健壮性。

Java语言是安全的。
Java通常被用在网络环境中,为此,Java提供了一个安全机制以防恶意代码的攻击。除了Java语言具有的许多 安全特性以外,Java对通过网络下载的类具有一个安全防范机制(类ClassLoader),如分配不同的名字空间以防替代本地的同名类、 字节代码检查,并提供安全管理机制(类SecurityManager)让Java应用设置安全哨兵。

Java语言是体系结构中立的。

Java程序(后缀为java的文件)在Java平台上被编译为体系结构中立的 字节码格式(后缀为class的文件),然后可以在实现这个Java平台的任何系统中运行。这种途径适合于异构的网络环境和软件的分发。

Java语言是可移植的。
这种可移植性来源于体系结构中立性,另外,Java还严格规定了各个基本 数据类型的长度。Java系统本身也具有很强的可移植性,Java编译器是用Java实现的,Java的运行环境是用ANSI C实现的。

Java语言是解释型的。

如前所述,Java程序在Java平台上被编译为字节码格式,然后可以在实现这个Java平台的任何系统中运行。在运行时,Java平台中的Java 解释器对这些字节码进行解释执行,执行过程中需要的类在联接阶段被载入到运行环境中。

Java是高性能的。

与那些解释型的高级 脚本语言相比,Java的确是高性能的。事实上,Java的运行速度随着JIT(Just-In-Time)编译器技术的发展越来越接近于C++。

Java语言是多线程的。

在Java语言中,线程是一种特殊的对象,它必须由Thread类或其子(孙)类来创建。通常有两种方法来创建线程:其一,使用型构为Thread(Runnable) 的构造子将一个实现了Runnable接口的对象包装成一个线程,其二,从Thread类派生出子类并重写run方法,使用该子类创建的对象即为线程。值得注意的是Thread类已经实现了Runnable接口,因此,任何一个线程均有它的run方法,而run方法中包含了线程所要运行的 代码。线程的活动由一组方法来控制。Java语言支持多个线程的同时执行,并提供多线程之间的同步机制(关键字为 synchronized)。

Java语言是动态的。

Java语言的设计目标之一是适应于动态变化的环境。Java程序需要的类能够动态地被载入到运行环境,也可以通过网络来载入所需要的类。这也有利于软件的升级。另外,Java中的类有一个运行时刻的表示,能进行运行时刻的类型检查。
Java语言的优良特性使得Java应用具有无比的健壮性和 可靠性,这也减少了应用系统的维护费用。Java对对象技术的全面支持和Java平台内嵌的API能缩短应用系统的开发时间并降低成本。Java的编译一次,到处可运行的特性使得它能够提供一个随处可用的开放结构和在多平台之间传递信息的低成本方式。特别是Java企业应用编程接口(Java Enterprise APIs)为企业计算及 电子商务应用系统提供了有关技术和丰富的类库。

优劣势

java优势,是适合团队开发,软件工程可以相对做到规范,这是一个很难比拟的优势。
java劣势,是j2ee的架构很完美,第一版软件可以做满意,但是很不适合互联网模式的持续不断修改。互联网软件工程管理上的不足,持续的修修补补导致架构的破坏。





贡献及影响

1991年,Sun公司的James Gosling。Bill Joe等人,为电视、控制烤面包机等家用电器的交互操作开发了一个Oak(一种橡树的名字) 软件,他是Java的前身。当时,Oak并没有引起人们的注意,直到1994年,随着 互联网和3W的飞速发展,他们用Java编制了 HotJava浏览器,得到了Sun公司首席执行官Scott McNealy的支持,得以研发和发展。为了促销和法律的原因,1995年Oak更名为Java。Java的得名还有段小插曲呢,一天,Java小组成员正在喝咖啡时,议论给新语言起个什么名字的问题,有人提议用Java(Java是 印度尼西亚盛产咖啡的一个岛屿),这个提议得到了其他成员的赞同,于是就采用Java来命名此新语言。很快Java被工业界认可,许多大公司如IBM Microsoft.DEC等购买了Java的使用权,并被 美国杂志PC Magazine评为1995年十大优秀科技产品。从此,开始了Java应用的新篇章。
Java的诞生是对传统 计算机 模式的挑战,对计算机 软件开发和软件产业都产生了深远的影响:
(1)软件4A目标要求软件能达到任何人在任何地方在任何时间对任何电子设备都能应用。这样能满足软件平台上互相操作,具有可伸缩性和重用性并可即插即用等 分布式计算模式的需求。
(2)基于构建开发方法的崛起,引出了 CORBA国际标准 软件体系结构和多层应用体系框架。在此基础上形成了Java.2平台和 .NET平台两大派系,推动了整个IT业的发展。
(3)对软件产业和 工业企业都产生了深远的影响,软件从以开发为中心转到了以服务为中心。中间提供商,构件提供商, 服务器软件以及咨询服务商出现。企业必须重塑自我,B2B的电子商务将带动整个新经济市场,使企业获得新的价值,新的增长,新的商机,新的管理。
(4)对 软件开发带来了新的革命,重视使用第三方构件集成,利用平台的基础设施服务,实现开发各个阶段的重要技术,重视开发团队的组织和文化理念,协作,创作,责任,诚信是人才的基本素质。


编程语言起源

      Java平台和 语言最开始只是 SUN公司在1990年12月开始研究的一个内部项目。SUN公司的一个叫做帕特里克·诺顿的 工程师被自己开发的 C和C语言 编译器搞得焦头烂额,因为其中的 API极其难用。帕特里克决定改用NeXT,同时他也获得了研究公司的一个叫做“Stealth 计划”的项目的机会。

        “Stealth 计划”后来改名为“Green计划”,James Gosling(詹姆斯·高斯林)和麦克·舍 林丹也加入了帕特里克的工作小组。他们和其他几个工程师一起在加利福尼亚州门罗 帕克市沙丘路的一个小工作室里面研究开发新技术,瞄准下一代 智能家电(如微波炉)的 程序设计,SUN公司预料未来科技将在家用电器领域大显身手。团队最初考虑使用C 语言,但是很多成员包括SUN的首席科学家比尔·乔伊,发现C 和可用的 API在某些方面存在很大问题。

工作小组使用的是内嵌类型平台,可以用的 资源极其有限。很多成员发现C 太复杂以至很多开发者经常错误使用。他们发现C 缺少 垃圾回收系统,还有可移植的安全性、分布 程序设计、和多线程功能。最后,他们想要一种易于移植到各种设备上的 平台

        根据可用的资金,比尔·乔伊决定开发一种集 C语言和Mesa语言搭成的新语言,在一份报告上,乔伊把它叫做“未来”,他提议SUN公司的工程师应该在C 的基础上,开发一种 面向对象的环境。最初,高斯林试图修改和扩展C 的功能,他自己称这种新语言为C --,但是后来他放弃了。他将要创造出一种全新的语言,被他命名为“Oak”( 橡树),以他的办公室外的树而命名。

        就像很多开发新技术的 秘密的工程一样,工作小组没日没夜地工作到了1992年的夏天,他们能够演示新平台的一部分了,包括Green操作系统,Oak的 程序设计语言,类库,和其硬件。最初的尝试是面向一种类PDA设备,被命名为Star7,这种设备有鲜艳的图形 界面和被称为“Duke”的 智能代理来帮助用户。1992年12月3日,这台设备进行了展示。
      同年11月,Green计划被转化成了“FirstPerson有限公司”,一个SUN公司的全资子公司,团队也被重新安排到了帕洛 阿尔托。FirstPerson团队对建造一种高度互动的设备感兴趣,当时代华纳发布了一个关于电视机顶盒的征求提议书时(Request for proposal),FirstPerson改变了他们的目标,作为对征求意见书的响应,提出了一个机顶盒平台的提议。但是有线电视业界觉得FirstPerson的平台给予用户过多地控制权,因此FirstPerson的投标败给了SGI。与 3DO公司的另外一笔关于机顶盒的交易也没有成功,由于他们的平台不能在电视工业产生任何效益,公司再并回SUN公司。

          1994年6、7月间,在经历了一场历时三天的 头脑风暴的讨论之后,约翰·盖吉、 詹姆斯·高斯林、比尔·乔伊、帕特里克·诺顿、韦恩·罗斯因和埃里克·斯库米,团队决定再一次改变了努力的目标,这次他们决定将该技术应用于 万维网。他们认为随着Mosaic 浏览器的到来, 因特网正在向同样的高度互动的远景演变,而这一远景正是他们在有线 电视网中看到的。作为原型,帕特里克·诺顿写了一个小型万维网浏览器,WebRunner,后来改名为HotJava。同年,Oak改名为Java。商标搜索显示,Oak已被一家 显卡制造商注册,因此团队找到了一个新名字。这个名字是在很多成员常去的本地咖啡馆中杜撰出来的。名字是不是首字母缩写还不清楚,很大程度上来说不是。虽然有人声称是开发人员名字的组合:James Gosling( 詹姆斯·高斯林)Arthur Van Hoff(阿瑟·凡·霍夫)Andy Bechtolsheim(安迪·贝克托克姆),或“Just Another Vague Acronym”(只是另外一个含糊的缩写)。还有一种比较可信的说法是这个名字是出于对咖啡的喜爱,所以以Java 咖啡来命名。类文件的前四个字节如果用十六进制阅读的话,分别为CA FE BA BE,就会拼出两个单词“CAFE BABE”( 咖啡宝贝)。

        1994年10月, HotJava和Java平台为公司高层进行演示。1994年,Java 1.0a版本已经可以提供下载,但是Java和HotJava浏览器的第一次公开发布却是在1995年5月23日SunWorld大会上进行的。SUN公司的科学指导约翰·盖吉宣告Java技术。这个发布是与网景公司的执行副总裁 马克·安德森的惊人发布一起进行的,宣布网景将在其浏览器中包含对Java的支持。1996年1月,升阳公司成立了Java业务 集团,专门开发Java技术。
(详细的历史介绍,可以参考资料:) 


信息来源于百度百科:http://baike.baidu.com/view/29.htm 点击打开链接







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值