Java
Java is a general-purpose computer programming language that is concurrent, class-based, object-oriented, and specifically designed to have as few implementation dependencies as possible. It is intended to let application developers 'write once, run anywhere' (WORA), meaning that compiled Java code can run on all platforms that support Java without the need for recompilation. Java applications are typically compiled to bytecode that can run on any Java virtual machine (JVM) regardless of computer architecture. As of 2016, Java is one of the most popular programming languages in use, particularly for client-server web applications, with a reported 9 million developers. Java was originally developed by James Gosling at Sun Microsystems (which has since been acquired by Oracle Corporation) and released in 1995 as a core component of Sun Microsystems Java platform. The language derives much of its syntax from C and C , but it has fewer low-level facilities than either of them.
The original and reference implementation Java compilers, virtual machines, and class libraries were originally released by Sun under proprietary licences. As of May 2007, in compliance with the specifications of the Java Community Process, Sun relicensed most of its Java technologies under the GNU General Public License. Others have also developed alternative implementations of these Sun technologies, such as the GNU Compiler for Java (bytecode compiler), GNU Classpath (standard libraries), and IcedTea-Web (browser plugin for applets).
The latest version is Java 8, which is the only version currently supported for free by Oracle, although earlier versions are supported both by Oracle and other companies on a commercial basis.
History
James Gosling, Mike Sheridan, and Patrick Naughton initiated the Java language project in June 1991. Java was originally designed for interactive television, but it was too advanced for the digital cable television industry at the time. The language was initially called Oak after an oak tree that stood outside Goslings office. Later the project went by the name Green and was finally renamed Java, from Java coffee. Gosling designed Java with a C/C -style syntax that system and application programmers would find familiar.
Sun Microsystems released the first public implementation as Java 1.0 in 1995. It promised 'Write Once, Run Anywhere' (WORA), providing no-cost run-times on popular platforms. Fairly secure and featuring configurable security, it allowed network- and file-access restrictions. Major web browsers soon incorporated the ability to run Java applets within web pages, and Java quickly became popular. The Java 1.0 compiler was re-written in Java by Arthur van Hoff to comply strictly with the Java 1.0 language specification. With the advent of Java 2 (released initially as J2SE 1.2 in December 1998 – 1999), new versions had multiple configurations built for different types of platforms. J2EE included technologies and APIs for enterprise applications typically run in server environments, while J2ME featured APIs optimized for mobile applications. The desktop version was renamed J2SE. In 2006, for marketing purposes, Sun renamed new J2 versions as Java EE, Java ME, and Java SE, respectively.
In 1997, Sun Microsystems approached the ISO/IEC JTC 1 standards body and later the Ecma International to formalize Java, but it soon withdrew from the process. Java remains a de facto standard, controlled through the Java Community Process. At one time, Sun made most of its Java implementations available without charge, despite their proprietary software status. Sun generated revenue from Java through the selling of licenses for specialized products such as the Java Enterprise System.
On November 13, 2006, Sun released much of its Java virtual machine (JVM) as free and open-source software, (FOSS), under the terms of the GNU General Public License (GPL). On May 8, 2007, Sun finished the process, making all of its JVMs core code available under free software/open-source distribution terms, aside from a small portion of code to which Sun did not hold the copyright.
Suns vice-president Rich Green said that Suns ideal role with regard to Java was as an 'evangelist'. Following Oracle Corporations acquisition of Sun Microsystems in 2009–10, Oracle has described itself as the 'steward of Java technology with a relentless commitment to fostering a community of participation and transparency'. This did not prevent Oracle from filing a lawsuit against Google shortly after that for using Java inside the Android SDK (see Google section below). Java software runs on everything from laptops to data centers, game consoles to scientific supercomputers. On April 2, 2010, James Gosling resigned from Oracle.
Principles
There were five primary goals in the creation of the Java language:
It must be 'simple, object-oriented, and familiar'.
It must be 'robust and secure'.
It must be 'architecture-neutral and portable'.
It must execute with 'high performance'.
It must be 'interpreted, threaded, and dynamic'.
Java platform
One design goal of Java is portability, which means that programs written for the Java platform must run similarly on any combination of hardware and operating system with adequate runtime support. This is achieved by compiling the Java language code to an intermediate representation called Java bytecode, instead of directly to architecture-specific machine code. Java bytecode instructions are analogous to machine code, but they are intended to be executed by a virtual machine (VM) written specifically for the host hardware. End users commonly use a Java Runtime Environment (JRE) installed on their own machine for standalone Java applications, or in a web browser for Java applets.
Standard libraries provide a generic way to access host-specific features such as graphi
剩余内容已隐藏,支付完成后下载完整资料
Java
Java
Java是一种并发的,基于类的,面向对象的通用计算机编程语言,并且被设计地具有尽可能少的运行依赖性。它的目的是让应用程序开发者“ 一次编写,到处运行 ”(WORA),也就是说,编译好的Java代码能够在任何支持Java的平台上运行,而无需再重新编译。Java应用程序通常被编译成字节码,并使之可以在任何Java虚拟机(JVM)上运行,而不用考虑计算机的架构。截至2016年,Java一直是现实使用中最受欢迎的编程语言,尤其是客户端/服务器架构的网络应用程序。据报道,Java已经拥有了900万开发者。Java最初是由詹姆斯·高斯林在Sun公司开发(该公司已被甲骨文公司收购),并于1995年发布,用来做Sun公司中Java平台的核心构件。Java语言的绝大部分语法派生于C语言和C ,但其底层功能却比C语言和C 都要少。
原来和参考实现的Java 编译器,虚拟机和类库最初由Sun颁布专有许可证。截至2007年5月,按照Java社区进程,Sun公司为他们的大部分Java技术颁布了GNU通用公共许可证。其他人也开发了这些Sun公司技术的替代方案,比如GNU Java编译器(字节码编译器),GNU Classpath的(标准库)和IcedTea-Web(浏览器插件小程序)。
最新版本的Java是8,这是目前Oracle提供免费支持的唯一版本,但早期版本由甲骨文和其他公司共同提供支持。
历史
詹姆斯·高斯林,迈克·谢里登和帕特里克·诺顿在1991年6月启动了Java语言项目。Java最初设计用于交互式电视,但它在当时对于有线数字电视产业过于超前。这门语言最初被称为Oak因为高斯林的办公室外面有一棵橡树。后来该项目又被命名为Green并最终改名为Java(一个盛产咖啡的小岛)。高斯林设计的Java具有C / C 风格的语法,开发系统和应用程序的程序员会发现它们很相似。
Sun 公司于1995年发布了Java 1.0。它承诺“一次编写,到处运行”(WORA),可以无成本的在各种流行平台上运行。它相当安全,并设有配置的安全性,允许网络和文件的访问限制。主要网络浏览器很快提供了在网页内运行Java小程序的支持,Java也因此迅速走红。 亚瑟·范·霍夫用Java语言重新编写了Java1.0编译器,以严格遵守Java 1.0语言规范。随着Java 2的到来(最初是作为J2SE 1.2于 1998年12月- 1999年期间发布的),新版本为不同类型的平台提供了多种配置。J2EE包括在服务器环境中运行的企业应用技术和API,而J2ME功能的API为移动应用进行了优化。桌面版改名为J2SE。在2006年,出于营销目的,Sun公司将新版本的J2分别命名为Java EE,Java ME,和Java SE。
1997年,Sun公司和ISO / IEC JTC 1标准组织以及后来的Ecma国际组织合作推广Java标准,但它很快就从退出了。通过控制Java社区进程,Java仍然是一个事实上的标准。在同一时间,Sun公司让大部分Java实现可以免费获得,尽管他们拥有相关专利。Sun通过售卖具体产品的许可获得收益,如Java企业系统的销售。
2006年11月13日,根据GNU通用公共许可证条款,Sun发布了免费的开源软件Java虚拟机(JVM)。2007年5月8日,Sun公司完成了这一过程,使得它所有的JVM的核心代码可以根据免费软件 /开源发行条款获取,除了Sun未持有版权的一小部分代码。
Sun的副总裁Rich Green说,Sun的关于Java的理想角色是一个“布道者”。继甲骨文公司在2009 - 10年收购Sun公司后,甲骨文曾形容自己为“不懈培育高度参与和透明的社区的Java技术管家”。这并没有阻止甲骨文在此后不久,对于使用Java的Android SDK提出对谷歌的诉讼。Java软件运行在各种平台上,从笔记本电脑到数据中心,从游戏机到科学超级计算机。 2010年4月2日,詹姆斯·高斯林从甲骨文辞职。
原则
建立Java语言的五个主要目标:
1.它必须是“简单,面向对象,和大家熟悉的”。
2.它必须是“健壮和安全。”
3.它必须是“体系结构中立和可移植”。
4.它必须以“高性能”执行。
5.它必须是“解释型的,线程的和动态的”。
Java平台
Java的一个设计目标是可移植性,这意味着为Java平台编写的程序必须运行在有足够的运行时支持的硬件和操作系统的组合上。这是通过把Java语言代码编译成为一种中间形式,即Java字节码,而不是直接针对特定架构的机器码。Java字节码指令类似于机器码,但它们是为了给虚拟机执行而专门为主机硬件写的。终端用户通常在自己的机器上安装一个Java运行时环境,以便运行独立的Java应用程序,或将其安装于Web浏览器上,以便运行Java 小应用程序。
标准库提供了一个通用的方法来访问主机特定的功能,比如图形,线程和网络。
使用通用字节码,使移植变的简单。然而,字节码解释为机器指令的开销使得解释的程序几乎总是比本地可执行文件运行更慢。在运行时将字节码编译成机器码的即时编译器马上被推出了。Java本身是独立于平台的,并且针对特定的平台,它是由一个专门的Java虚拟机来运行的,Java虚拟机将Java字节码转换到平台的机器语言。
实现
随着Sun公司于2010年1月27日被收购,甲骨文公司现在是Java SE平台的法定运营者,其运营基于Sun公司对Java的原始运营。 Oracle运营的JavaSE平台支持Microsoft Windows(仍然适用于XP,而目前“公开”的仅支持更高版本),Mac OS X,Linux和Solaris。因为Java没有Ecma国际组织,ISO / IEC,ANSI,或其他第三方的标准组织的任何正式的标准化认证,Oracle实施的是事实上的标准。
Oracle里的实现被打包成两个不同的部分:Java运行时环境(JRE),它是面向终端用户的,包含Java SE平台运行Java程序所需的零部件;Java开发工具包(JDK),它是面向软件开发人员的,包括Java编译器,Javadoc,Jar,和一个调试器等开发工具。
OpenJDK是遵守GNU GPL许可的另一个著名的Java SE实现。项目开始于Sun公司发布遵守GPL的Java源代码。到Java SE 7的时候,OpenJDK成了官方的Java实现。
Java的目标是让Java的所有实现兼容。事实上,Sun公司的Java品牌的使用商标使用许可要求所有的实现“兼容”。这导致了一个和微软的法律纠纷,Sun公司声称微软的实现不支持RMI和JNI,而是加入了自己特定平台的功能。Sun于1997年起诉微软,并于2001年赢得了庭外和解的2000万美元,以及法院命令强制执行Sun公司的商标使用许可协议中的条款。因此,微软不再在Windows中附带Java。
独立于平台的Java是Java EE的核心,而且,必须更严格地遵循其规范来开发应用。该环境给可移植服务器应用程序带来了可能。
性能
用Java编写的程序一直有运行慢,占用内存的名声。 然而,在1997至1998年,随着为Java 1.1推出的即时编译让java程序执行速度得到了显著改良,同时也增加了语言功能,支持更好的代码分析(如内部类,StringBuilder类,可选的断言等),以及优化的Java虚拟机,如Hotspot在2000年成为Sun的默认java虚拟机。
一些平台提供了对Java的直接硬件支持; 有的微控制器可以在硬件层面运行Java,而非通过一个软件——Java虚拟机来运行,而且,基于ARM的处理器可以通过它们的Jazelle选项为Java字节码的运行提供硬件支持(然而,其支持主要针对ARM当前的运行)。
自动内存管理
在对象的生命周期内,Java使用自动垃圾收集器管理内存。程序员确定创建对象时间,当对象不再使用时,Java运行时负责回收内存。一旦没有了对一个对象的引用,这段不可访问内存就会被垃圾收集器自动释放。一些类似于内存泄漏的情况仍会发生,比如一个程序员的代码包含对一个实际上不再需要的对象的引用,一个典型情况是,一个无用的对象仍然存在于一个正在使用中的容器。如果一个已经不存在的对象的方法被调用,一个“空指针异常”就会被抛出。
Java的自动内存管理模式的一个背后理念是,程序员摆脱了手动内存管理的负担。在一些语言中,创建的对象的内存是在堆栈上隐式分配的,或者明确地从堆中分配并释放。在后一种情况下管理存储器的责任在于程序员。如果程序中没有释放一个对象,内存泄漏就会发生。如果程序试图访问或释放已释放的内存,其结果是不确定的和难以预料的,程序很可能不稳定或崩溃。这可以通过使用智能指针补救一部分,但又会增加开销和复杂性。注意垃圾回收并不能阻止“逻辑”的内存泄漏,也就是说,那些内存仍然被引用但从未使用过的内存泄漏。
垃圾收集随时可能发生。理想的情况下,它会发生在一个程序空闲时。如果堆上没有足够的内存来分配一个新的对象,它将会被触发。这可能引起一个程序暂时停止。java中的显式的内存管理是不可能的。
java不支持C/C 风格的指针运算,在这种运算中,对象的地址和无符号整数(通常是长整数)可以互换使用。这使得垃圾回收机制能够迁移引用的对象,并确保其类型安全,提高其安全性。
就像在C 和其他一些面向对象的语言中,Java原始数据类型的变量要么直接存储于域中(对于对象来说)要么存储于栈中(对于方法来说),而不是存储于堆中,而非原始数据类型则存储于堆中(详见逸出分析)。这是java设计者考虑到性能的原因而做出的一个决定。
Java有多种类型的垃圾收集机制。默认情况下,Hotspot使用平行扫描垃圾收集机制。不过,也有其他几种垃圾收集机制可以用来管理堆。对90%的Java应用程序,并发标记-扫描垃圾收集机制是足够的。Oracle想要使用Garbage-first collector(G1)替换并发标记-扫描垃圾收集机制(CMS)。
Apache Struts
Apache Struts 1是一个停产的开发Java EE Web应用程序的开源 Web应用框架。它使用并扩展了Java Servlet API,同时鼓励开发者采用的模型-视图-控制器(MVC)架构。它最初是由Craig McClanahan创建,并在2000年五月捐赠给Apache基金会。之后被命名为Jakarta Struts,隶属于ApacheJakarta Project,在2005年成为Apache的顶级项目。
WebWork框架脱离于Apache Struts,旨在提供改进和完善,同时保持相同的原始Struts框架的总体架构。然而,2005年十二月,它被宣布将重新与WebWork合并。WebWork 2.2已经采用Apache Struts 2,其中2007年二月发布了第一个完整的版本。
设计目标和概述
在一个标准的Java EE Web应用程序中,客户端通常会通过Web表单调用服务器。该信息然后可以传递到一个Java Servlet由其与数据库交互,并产生一个HTML格式的响应,或产生一个混合了HTML和Java代码的Java Server Pages(JSP)来实现相同的效果。这两种方法通常被认为不适合大型项目,因为它们混合了应用程序的逻辑与展示,而且难以维护。
Struts 的目标是将模型(即与数据库交互的应用程序逻辑)从视图(呈现给客户端的HTML页面)和控制器(即通过图和模型之间的信息的实例)中分离开来。Struts 提供控制器(一个称为ActionServlet 的servlet)并简化视图或表现层模板的编码(通常在JSP中,但是也支持XML / XSLT和Velocity )。Web应用程序程序员负责编写模型层代码,以及创建一个中央配置文件struts-config.xml,将模型、视图和控制器结合在一起。
来自客户端的请求被发送到”Actions”的表单中的控制器,该表单在配置文件中定义;如果控制器收到这样的请求,它会调用和相应的应用程序特定的模型层代码交互的Action类。该模型的代码返回“ActionForward”—— 一个字符串告诉控制器发送什么输出页面到客户端。信息以特殊的JavaBeans的形式在模型和视图之间传递。强大的自定义标签库允许它从表现层读写这些bean的内容,而不需要任何内嵌的Java代码。
Struts 算是一个基于模型到基于请求的web应用程序框架。
Struts的也通过网络的形式提供了国际化支持,内含一个名为“瓷砖”的模板机制,允许使用独立的页眉,页脚,菜单导航和内容组件来构建表示层。
Spring框架
Spring框架是java平台的一个应用框架和反转控制容器。该框架的核心功能,可以通过任何Java应用程序使用,但也有在Java EE平台的顶部构建Web应用程序的扩展。虽然该框架不强加任何特定的编程模型,作为企业JavaBeans(EJB)模型的备选、替代、甚至附加方案,它已经在Java社区中流行开来。Spring Framework是开源的。
版本历史
第一个版本由罗德·约翰逊所写,在2002年10月,他他的书——《专家一对一——论J2EE的设计与开发》出版的同时发布了该框架。该框架下的第一个遵守Apache 2.0许可的版本在2003年6月发布。第一个具有里程碑意义的版本,1.0,发布于2004年3月.接下来的两个重要版本发布于2004年9月和2005年3月。Spring 1.2.6框架于2006年荣获Jolt的生产效率奖和JAX创新奖
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[146367],资料为PDF文档或Word文档,PDF文档可免费转换为Word
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。