码迷,mamicode.com
首页 > 其他好文 > 详细

tomcat详解

时间:2015-11-25 19:35:21      阅读:183      评论:0      收藏:0      [点我收藏+]

标签:java

一、tomcat相关概念

1、编程语言:

               系统级:C,C++,go,erlang

               应用级:C#,Java,Python,Perl,Ruby,php(世界上最好的编程语言),

                      虚拟机:jvm,pvm

                   动态网站:asp .net,jsp,

动态网站:

       客户端动态:

    服务器端动态:CGI


API:应用程序编程接口,

        遵循POSIX API规范

ABI:应用二进制编程接口


Java编程语言:

   SUN,James Gosling,Green Project,Oak,Java

   1995:java 1.0, Write Once,Run Anywhere

   1996:JDK(java Development Kit),包含一个JVM(Sun Classic VM)

                JDK 1.0:JVM,Applet,AWT

    1997:JDK 1.1

                JAR文档格式,JDBC,JavaBeans

    1998:JDK 1.2

                SUN把Java技术分拆为三个方向:

                       J2SE:Standard Edition

                       J2EE:Enterprise Editon

                       J2ME:Mobile Edition

                 代表性技术:EJB,Java Plug-in,Swing,

                                  JIT编译器:Just In Time (即时编译:边装载代码,边编译)

     1999:HotSpot虚拟机    

     2000:JDK 1.3

     2002: JDK 1.4

     2006: Sun开源了Java技术:遵循GPL规范,建立了Open JDK组织管理此些代码

      

     虚拟机:JRockit,HostSpot,


现在三个技术流派被重新命名:

      J2SE-->Java 2 SE

      J2eEE-->Java 2 EE

      J2ME-->Java 2 ME


Java编程语言的特性:

      面向对象,多线程,结构化错误处理,

      垃圾收集,动态链接,动态扩展,


编程语言的类别:

       面向过程:以指令为中心,围绕指令组织数据

       面向对象:以数据为中心,围绕数据组织指令

二、Java

1.Java 简介

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

2.Java 组成

(1)Java体系结构

Java由四方面组成:

  • Java编程语言

  • Java应用程序接口(Java API,类库)  

  • Java CLass类文件格式

  • Java VM (虚拟机)

下面我们来说一下这四个方面的关系,我们通过Java编程语言+Java应用程序接口(Java API)编写出*.java的文件(如,test.java),通过Java编译器javac(Java Complier)进行编译生成*.class的类文件(如,test.class),再通过Java类文件+Java虚拟机(JVM)运行Java程序。简单过程如下,

  • Java 程序语言+Java API ---> test.java (java程序)

  • javac(Java Complier) ---> test.class (字节码文件)

  • Java类文件+Java虚拟机 ---> 运行test.class

好了,下面我们来说一说,Java虚拟机(JVM)的组成。

JVM 的核心组成:

  • Class Loader:类加载器

  • 执行引擎


JRE(JVM+Java SE API),是用于实现Java程序运行的最小环境。

JDK (Java+API+JVM),是用于实现Java程序开发的最小环境。


3.Java 平台

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

技术分享

4.Java 体系

Java分为三个体系,

  • J2SE(Java2 Platform Standard Edition,java平台标准版)

  • J2EE(Java 2 Platform,Enterprise Edition,java平台企业版)

  • J2ME(Java 2 Platform Micro Edition,java平台微型版)。

其中,Java SE则只包含了Java二进制程序(如JVM和Java字节码编译器)和Java的核心代码库,而Jave EE标准则包含了一组适用于创建企业级Web应用程序的API。Jave EE建立在Java SE的基础上,并依赖于Java SE才能正常工作。当然,任何级别的应用程序均能从Java EE中获益,但Jave EE却更适合解决大型软件系统设计中的问题。JAVA EE包含多个独立的API,Servlet和JSP就是其中的两个,而JAVA EE中著名的API中还包含如下的几个,

JAVA EE APIs:

  • EJB(Enterprise JavaBeans):JAVA相关的诸多高级功能的实现,如RMI(Remote Method Invocation), 对象/关系映射,跨越多个数据源的分布式事务等;

  • JMS(Java Message Service):高性能异步消息服务,实现JAVA EE应用程序与非JAVA程序的“透明”通信;

  • JMX(Java Management Extensions):在程序运行时对其进行交互式监控和管理的机制;

  • JTA(Java Transaction API):允许应用程序在自身的一个或多个组件中平滑地处理错误的机制;

  • JavaMail:通过工业标准的POP/SMTP/IMAP协议发送和接收邮件的机制;

Java SE APIs:

  • JNDI(Java Naming and Directory Interface):用于与LDAP服务交互的API;

  • JAXP(Java API for XML Processing):用于分析及转换XML(基于XSLT实现);


5.Java 优势

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


6.Java 执行过程

技术分享

用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字节码,其执行引擎内嵌于芯片中。




tomcat详解

标签:java

原文地址:http://xiexiaojun.blog.51cto.com/2305291/1716835

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!