您的位置:首页 > 编程语言 > Java开发

java技术体系基础

2017-11-13 08:15 337 查看
java技术体系中包括:Java编程语言、Java Class文件格式、Java API、Java VM、class loader、执行引擎。其中JVM运行时区域包括:

1.方法区:线程共享; 用于存储被JVM加载的class信息、常量、静态变量、方法等;

2.堆:是jvm所管理的内存中占用空间最大的一部分;也是GC管理的主要区域;存储对象;

3.Java栈:线程私有,存储 线程自己的局部变量;

4.PC寄存器:线程私有的内存空间,程序的指令指针;

5.本地方法栈

JVM常用的分析工具:

jps:用来查看运行的所有jvm进程;

jinfo:查看进程的运行环境参数,主要是jvm命令行参数;

jstat:对jvm应用程序的资源和性能进行实时监控;

jstack:查看所有线程的运行状态;

jmap:查看jvm占用物理内存的状态;

jps:Java virutal machine Process Status tool,

-q:静默模式;

-v:显示传递给jvm的命令行参数;

-m:输出传入main方法的参数;

-l:输出main类或jar完全限定名称;

-V:显示通过flag文件传递给jvm的参数;

[<hostid>]:主机id,默认为localhost;

jinfo:输出给定的java进程的所有配置信息;

jinfo [option] <pid>

-flags:to print VM flags

-sysprops:to print Java system properties

-flag <name>:to print the value of the named VM flag

jstack:查看指定的java进程的线程栈的相关信息;

jstack [-l] <pid>

jstack -F [-m] [-l] <pid>

-l:long listings,会显示额外的锁信息,因此,发生死锁时常用此
4000
选项;

-m:混合模式,既输出java堆栈信息,也输出C/C++堆栈信息;

-F:当使用“jstack -l PID"无响应,可以使用-F强制输出信息;

jstat:输出指定的java进程的统计信息

jstat -help|-options

jstat -<option> [-t] [-h<lines>] <vmid> [<interval> [<count>]]

Java的API有三种类型:

1.Java 2 SE

2.Java 2 EE

3.Java 2 ME

Java中的jdk是重要的组建,它用来提供Java的运行环境等。

jdk的yum安装:



查看版本(是否安装成功):



servlet是Java的一种类库,为Java语言开发提供web接口,能够让用户请求执行并响应。

jsp技术可以看作是servlet的前端,,可以实现让Java代码内嵌在html文档中,然后jsp会html代码自动翻译成servlet代码。

Web contain是融合JDK、servlet、jsp等企业级类库的容器,而Tomcat就是其开源实现。

下面介绍Tomcat:

Tomcat的核心组件有:catalina、coyote、jasper等。

每一个组件都由一个Java“类”实现,这些组件大体可分为以下几个类型:

顶级组件:Server

服务类组件:Service

连接器组件:http, https, ajp(apache jserv protocol)

容器类:Engine, Host, Context

被嵌套类:valve, logger, realm, loader, manager, ...

集群类组件:listener, cluster, ...



tomcat的目录结构

bin:脚本,及启动时用到的类;

conf:配置文件目录;

lib:库文件,Java类库,jar;

logs:日志文件目录;

temp:临时文件目录;

webapps:webapp的默认目录;

work:工作目录,存放编译后的字节码文件;

tomcat的配置文件构成:

server.xml:主配置文件;

web.xml:每个webapp只有“部署”后才能被访问,它的部署方式通常由web.xml进行定义,其存放位置为WEB-INF/目录中;此文件为所有的webapps提供默认部署相关的配置;

context.xml:每个webapp都可以使用的配置文件,它通常由专用的配置文件context.xml来定义,其存放位置为WEB-INF/目录中;此文件为所有的webapps提供默认配置;

tomcat-users.xml:用户认证的账号和密码文件;角色(role),用户(User);此文件在tomcat启动时被装入内存;

catalina.policy:当使用-security选项启动tomcat时,用于为tomcat设置安全策略;

catalina.properties:Java属性的定义文件,用于设定类加载器路径,以及一些与JVM调优相关参数;

logging.properties:日志系统相关的配置;

tomcat的常用组件配置:

Server:代表tomcat instance,即表现出的一个java进程;监听在8005端口,只接收“SHUTDOWN”。各server监听的端口不能相同,因此,在同一物理主机启动多个实例时,需要修改其监听端口为不同的端口;

Service:用于实现将一个或多个connector组件关联至一个engine组件;

Connector组件:

负责接收请求,常见的有三类http/https/ajp;

进入tomcat的请求可分为两类:

(1) standalone : 请求来自于客户端浏览器;

(2) 由其它的web server反代:来自前端的反代服务器;

属性:

address:监听的IP地址;默认为本机所有可用地址;

maxThreads:最大并发连接数,默认为200;

enableLookups:是否启用DNS查询功能;

acceptCount:等待队列的最大长度;

Engine组件:Servlet实例,即servlet引擎,其内部可以一个或多个host组件来定义站点;
通常需要通过defaultHost来定义默认的虚拟主机;

Host组件:位于engine内部用于接收请求并进行相应处理的主机或虚拟主机,

常用属性说明:

(1) appBase:此Host的webapps的默认存放目录,指存放非归档的web应用程序的目录或归档的WAR文件目录路径;可以使用基于$CATALINA_BASE变量所定义的路径的相对路径;

(2) autoDeploy:在Tomcat处于运行状态时,将某webapp放置于appBase所定义的目录中时,是否自动将其部署至tomcat;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: