您的位置:首页 > 运维架构 > Tomcat

菜鸟学Linux 第100篇笔记 tomcat 之 java

2017-02-08 13:05 387 查看
菜鸟学Linux 第100篇笔记 tomcat 之 java

内容总览 java概述 java 包含四个独立却又彼此相关的技术 四个独立的技术运作流程 JVM的实现方式 JVM的虚拟机软件 JAVA应用领域的不同,Java可分为三类 SE, EE, ME CGI (Common Gateway Interface) servlet CGI (JSP) JVM 虚拟机运行时内存空间 类加载器、类的生命周期 jdk的安装 java配置参数 Sun JDK监控和故障处理工具 可视化工具 gui

tomcat PHP: 开发语言:脚本语言 运行环境:解释执行 Zend Engine: Opcode Xcache, APC, eAccelerator MVC (model view controller) data数据 bussiness:业务 presentation:展示
C/C++ cpu, os 移植困难 维护成本高
高速 驱动
C: 面向过程 C++ 面向对象
C API (Application Programming Interface) os, system call api
windows, api linux, api POSIX: Portable Operating System
ABI: Application Binary Interface

oak: 橡树 java能够在不同的硬件平台上运行同一种语言所开发出来的程序 全球最流行语言
java 包含四个独立却又彼此相关的技术 java程序设计语言 Java API Java Class文件格式 (运行在jvm上) bytecode: 字节码 JVM:Java Virtual Machine
Once for all 一次编译到处运行 Write Once, Run anywhere
四个独立的技术运作流程 使用java程序设计语言结合Java API所提供的库编写出来的原程序,由编译器编译成Java Class文件格式最后将此文件在jvm上运行

JVM 提供公共类和私有类 class loader
JVM的实现方式 1. 一次性解释器,解释字节码并执行。 每次执行时还需要再进行编译才可执行,此次的编译则是将字节码编译成不同的硬件和软件 平台可以识别的执行程序 2. 即时编译器(just-in-time complier) 依赖于更多内存来缓存解释器解释后的结果 3. 自适应编译器 优化程序缓存的代码,缓存20%左右的代码,提高80%的速度

Java设计语言: SunJava API: Sun, Java规范开放组织定义的,第三方类库Java class: Sun

JVM的虚拟机软件 JVM: Hostspot JVM(Sun) JRE Java Runtime Environment运行时环境 (没有编译只可运行) JDK Java Development Kit (开发编译+运行)
JVM: OpenJDK 开发+运行(开源实现)
JDK=Java + API + JVM 用于实现Java程序开发的最小环境 JRE=JVM + Java SE API

JAVA应用领域的不同,Java可分为三类 JAVA SE:Standard Edition, J2SE JAVA EE:Enterprise Edition, J2EE JAVA ME:Mobile Edition, J2ME
1995年, JAVA 1.0面世, James Gosling, Green ProjectGPL (General Public License)
applet: 小程序 类库 动态网站
CGI (Common Gateway Interface) 协议和规范, 可以使web服务器额外调用其它应用程序或启动其它进程来执行用户所请求的动态程序类的资源 在本地执行以后,格式化为html文档再返回给客户端的一种技术
servlet CGI 以JAVA语言实现的CGI技术,以java来开发网站,开发必须遵守servlet规范,servlet能够接受 http请求,能够理解http协议,并且能够将html文档的执行结果通过封装成http报文的格式来 响应给客户端的请求
任何一种静态内容都得在java程序中生成,这使java程序开发者必须得懂html
JSP:是servlet的一种特殊类 Java Server Page (可以分离html和java动态) 可以将java的脚本程序嵌入至html文档中 <%language="java"> SSH: Structs, Spring, Hebernate
JSP --> servlet jasper 将jsp转换成.java java编译器 负责将.java 编译成 .class

.jsp --> .java --> (JVM) .class
JDK: javac, .java --> .class
Web Servlet Container: Servlet 容器 web container

JVM 虚拟机运行时内存空间 线程私有内存区 程序计数器区 程序执行状态 java虚拟机栈 保存局部变量 线程共享内存区 本地方法栈 方法区 (类) 堆 (对象区) java自动内存回收 GC (Garbage collector) 垃圾回收算法 1. 标记 清除 2. 复制 (避免碎片,浪费内存) 3. 标记整理
垃圾回收器 Serial ParNew 并行回收 Parallel Scavenge 降低垃圾回收所需要用的时间 Serial Old 单线程 Parallel Old 多线程
CMS:Concurrent Mark Sweep 并发收集,低停顿 无法收集浮动垃圾,由于基于标记,清除会产生碎片
G1 不会产生碎片,能够精准控制停顿时间

类加载器 jvm提供 外部提供
类生命周期 loading verification preparation resolution initialization using unloading

jdk的安装 从官方网站下载 www.oracle.com download 我这里下载的是jdk-8u121-linux-x64不知道为何没找到之前的版本呵呵
安装 下载到linux文件夹里 因为是rpm包直接命令rpm命令安装即可 # rpm -ivh jdk-8u121-linux-x64.rpm
配置环境变量 # vim /etc/profile.d/java.sh 添加如下两行 export JAVA_HOME=/usr/java/jdk1.8.0_121 export PATH=$PATH:$JAVA_HOME/bin
此时使用命令便可查看已经安装好的jdk版本信息 # java -version

java配置参数 -XX:+<option> 开启此参数指定的功能 -XX:-<option> 关闭功能 -XX:<option>=<value> 给option指定的选项赋值
-D<name>=<value> set a system property
java -XX:+PrintFlagsFinal 显示所支持的所有参数和其默认值

Sun JDK监控和故障处理工具 jps JVM process status tool 显示指定系统内所有的hotspot虚拟机进程的列表信息 jstat JVM statistics Monitoring tool 收集并显示hotspot虚拟机各方面的运行数据 jinfo 显示正在运行的hotspot虚拟机配置信息 jmap 生成某hotspot虚拟机的内存转储快照

可视化工具 jconsole Java的监控与管理控制台 jvisualvm java的虚拟化控制台工具 可视化的vm
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息