一、Tomcat

动态站点:

运行程序

服务端:

客户端:


一次编译,到处运行


java技术的组成部分:

java程序设计语言

java class文件格式

java API

java vm


java的编译时环境:

源代码:.java


a.java, b.java, c.java --> Java编译器(javac) --> a.class, b.class, c.class


java的运行时环境:

a.class, b.class, c.class --> JVM <-- Object.class, String.class, ...


java VM的组成部分:

java class loader(Java类加载器)

java执行引擎


java语言的特性:

面向过程:

以指令为核心 

面向对象:以数据为核心

     JVM的实现方式:

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

         2、及时编译器(just-in-time complier)

             依赖于更多内存缓存解释后的结果

         3、自适应编译器

             缓存20%左右代码,提高80%左右的速度

    

     JDK=Java+API+JVM,用于实现java程序开发的最小环境,

     JRE=JVM+java SE API:


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


三、安装主步聚

1、准备版本软件

[root@logicserver tomcat]# ls
apache-tomcat-8.0.29    jdk-8u66-linux-x64.gz


2、解压

[root@logicserver tomcat]# tar jdk-8u66-linux-x64.gz
[root@logicserver tomcat]# tar apache-tomcat-8.0.29.tar.gz


3、指定软链接到/usr/local下

[root@logicserver tomcat]# ln -s /root/tomcat/apache-tomcat-8.0.29 /usr/local/tomcat
[root@logicserver tomcat]# ln -s /root/tomcat/jdk1.8.0_66 /usr/local/jdk


4、配置java环境

[root@logicserver tomcat]# vim /etc/profile.d/jdk.sh 

#jdk8 settings
JAVA_HOME=/usr/local/jdk
JRE_HOME=$JAVA_HOME/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME
CLASSPATH=:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export JAVA_HOME JRE_HOME PATH CLASSPATH
[root@logicserver tomcat]# source /etc/profile.d/jdk.sh

 查看是否成功

[root@logicserver tomcat]# java -version
java version "1.8.0_66"
Java(TM) SE Runtime Environment (build 1.8.0_66-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.66-b17, mixed mode)


5、配置tomcat的startup启动脚本

[root@logicserver bin]# vim /etc/init.d/tomcat


JAVA_HOME=/usr/java/jdk
CATALINA_HOME=/usr/local/tomcat
export JAVA_HOME CATALINA_HOME
case $1 in
start)
     exec $CATALINA_HOME/bin/catalina.sh start;;
stop)
    exec $CATALINA_HOME/bin/catalina.sh stop;;
restart)
    $CATALINA_HOME/bin/catalina.sh stop
    sleep 2
    exec $CATALINA_HOME/bin/catalina.sh start ;;
configtest)
    exec $CATALINA_HOME/bin/catalina.sh configtest ;;
 *)
#    echo "Usage:`basename $0` {start|stop|restart}"
#    exit 1
    exec $CATALINA_HOME/bin/catalina.sh *  ;;
esac

  启动tomcat

[root@logicserver bin]# /etc/init.d/tomcat start
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/local/jdk/jre
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.
[root@logicserver bin]# netstat -tlnp | grep java
tcp        0      0 :::8080                     :::*                        LISTEN      4464/java           
tcp        0      0 ::ffff:127.0.0.1:8005       :::*                        LISTEN      4464/java           
tcp        0      0 :::8009                     :::*                        LISTEN      4464/java


6、开启测试

tomcat部署安装步聚_第1张图片