标签: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字节码,其执行引擎内嵌于芯片中。
标签:java
原文地址:http://xiexiaojun.blog.51cto.com/2305291/1716835