Linux Tomcat系列之java技术详解

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux Tomcat系列之java技术详解相关的知识,希望对你有一定的参考价值。

大纲

一、什么是java

二、java的组成、版本、语言特性

三、JRE和JDK的联系与区别




一、什么是java

Java是一种计算机编程语言,拥有跨平台、面向对象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。


任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言,应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通讯。由于这些智能化家电的市场需求没有预期的高, 甲骨文公司放弃了该项计划。随着1990年代互联网的发展, Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。


Java编程语言的风格十分接近C++语言。继承了C++语言面向对象技术的核心,Java舍弃了C++语言中容易引起错误的指针,改以引用取代,同时移除原C++与原来运算符重载,也移除多重继承特性,改用接口取代,增加垃圾回收器功能。在Java SE 1.5版本中引入了泛型编程、类型安全的枚举、不定长参数和自动装/拆箱特性。太阳微系统对Java语言的解释是:“Java编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言”


Java不同于一般的编译语言和直译语言。它首先将源代码编译成字节码,然后依赖各种不同平台上的虚拟机来解释执行字节码,从而实现了“一次编写,到处运行”的跨平台特性。在早期JVM中,这在一定程度上降低了Java程序的运行效率。但在J2SE1.4.2发布后,Java的运行速度有了大幅提升。


与传统型态不同, Sun公司在推出Java时就将其作为开放的技术。全球数以万计的Java开发公司被要求所设计的Java软件必须相互兼容。“Java语言靠群体的力量而非公司的力量”是 Sun公司的口号之一,并获得了广大软件开发商的认同。这与微软公司所倡导的注重精英和封闭式的模式完全不同,此外,微软公司后来推出了与之竞争的.NET平台以及模仿Java的C#语言。后来Sun公司被甲骨文公司并购,Java也随之成为甲骨文公司的产品。



二、java的组成、类别、语言特性

Java体系结构

  • Java程序设计语言

  • Java class文件格式

  • Java API

  • Java VM


用Java语言编译源代码,把它编译成Java Class文件,然后在Java VM中运行class文件;当编写程序时,通过调用类(Java API)中的方法来访问系统资源,而当程序运行时,它通过调用class文件中实现了Java API的方法也满足程序的Java API调用。Java VM和Java API一起组成了一个“平台”,所有Java程序都在其上编译和运行,因此,它们有时也被称作Java运行时环境。


Java VM的主要任务是装载class文件并且执行其中的字节码。Java VM包含一个类装载器(class loader),它可以从程序和API装载class文件;而Java API的类只在程序执行中需要时才会被装载。


Java字节码由执行引擎来执行。而不同的Java VM中,其执行引擎的实现可能各不相同。最简单的执行引擎不是一次性解释字节码,而另一种称为“即时编译器(just-in-time compiler)”的执行引擎执行速度更快,但要消耗更多的内存资源。即时编译模式下,第一次被执行的字节码会被编译成本地机器代码并缓存下来以实现“复用”。第三种执行引擎是所谓的自适应优化器,此种方法中,虚拟机始的时候解释字节码,介是会监视运行中程序的活动,并且记录下使用最频繁的代码。程序运行时,虚拟机只把那些活动最频繁的代码编译成本地代码,而不频繁的代码则仍然保留为字节码由虚拟机解释执行。自适应优化器可以使得Java VM在80%-90%的时间里执行被优化过的本地代码,而只需要编译10%-20%对性能有影响的代码。最后一种虚拟机由硬件芯片构成,它用本地方法执行Java字节码,其执行引擎内嵌于芯片中。


JVM的实现方式

  • 一次性解释器,解释字节码并执行;

  • 即时编译器(just-in-time complier):依赖于更多内存缓存解释后的结果

  • 自适应编译器:缓存20%左右代码,提高80%左右的速度;




JAVA应用领域的不同,JAVA可分为三类

  • Java Platform, Enterprise Edition(Java EE:Java平台企业版)

  • Java Platform, Standard Edition(Java SE:Java平台标准版)

  • Java Platform, Micro Edition(Java ME:Java平台微型版)


java语言的特性

  • 面向对象

  • 跨平台性

  • 自动垃圾回收


三、JRE和JDK的联系与区别

JRE:Java Runtime Environment,java运行时环境,仅有运行环境

JDK:Java Development Kit,java开发环境,包含了运行环境,即JDK包含了JRE


一图胜千言,摘自oracle官网


技术分享













本文出自 “Hello,Linux” 博客,请务必保留此出处http://soysauce93.blog.51cto.com/7589461/1738046

以上是关于Linux Tomcat系列之java技术详解的主要内容,如果未能解决你的问题,请参考以下文章

Tomcat系列之java技术

Tomcat系列之服务器的安装与配置以及各组件详解

java_04.Linux:在Linux上安装jdk安装mysql安装tomcat

netty系列之:NIO和netty详解

Servlet之详解

java io系列09之 FileDescriptor详解