Java之父:詹姆斯·高斯林html
三个版本:java
$ wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u141-b15/336fa29ff2bb4ef291e347e091f7f4a7/jdk-8u141-linux-x64.tar.gz" $ tar zxf jdk-8u141-linux-x64.tar.gz -C /usr/local/ $ vi /etc/profile export JAVA_HOME=/usr/local/jdk1.8.0_141 export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH $ source /etc/profile
JDK(Java Development Kit)
JRE(Java Runtime Environment)
JVM(Java Virtual Machine)linux
官方结构图:https://docs.oracle.com/javase/8/docs/web
1.自身运行时数据(Mark Word)算法
类型指针apache
1.使用句柄
2.直接指针ubuntu
在对象中添加一个引用计数器,当有地方引用这个对象时计数器的值就+1,当引用失效时,计数器的值就-1
弊端:当对象循环引用时不能识别是否为垃圾对象
*基本没有JVM在使用浏览器
做为GCroot的对象tomcat
JDK8使用的垃圾回收器: parallel安全
堆
面向服务端应用的垃圾收集器
优点:
运做步骤:
https://docs.oracle.com/javase/8/docs/technotes/tools/index.html#
jenkins@ubuntu-OptiPlex-7040:~$ jps 13154 Bootstrap 12191 Jps
参数:
# -l :虚拟机执行主类名称或者jar包的名称 jenkins@ubuntu-OptiPlex-7040:~$ jps -l 13154 org.apache.catalina.startup.Bootstrap 12462 sun.tools.jps.Jps
# -m :主类接收的参数 jenkins@ubuntu-OptiPlex-7040:~$ jps -m 13154 Bootstrap start 12552 Jps -m
# -v :JVM接收的参数 jenkins@ubuntu-OptiPlex-7040:~$ jps -v 13154 Bootstrap -Djava.util.logging.config.file=/home/jenkins/tomcat/jenkins/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -Dcatalina.base=/home/jenkins/tomcat/jenkins -Dcatalina.home=/home/jenkins/tomcat/jenkins -Djava.io.tmpdir=/home/jenkins/tomcat/jenkins/temp 12675 Jps -Denv.class.path=.:/home/ubuntu/software/jdk/jdk1.8.0_151/lib:/home/ubuntu/software/jdk/jdk1.8.0_151/jre/lib -Dapplication.home=/home/ubuntu/software/jdk/jdk1.8.0_151 -Xms8m
虚拟机统计信息监控:类装载、内存、垃圾收集、JIT编译等运行数据
实时查看和调整虚拟机各项参数
生产堆转储快照
$ jmap -dump:format=b,file=jenkins.bin 13154 Dumping heap to /home/jenkins/jenkins.bin ... Heap dump file created
-XX:+HeapDumpOnOutofMemoryError : 虚拟机在OOM异常出现后自动生成dump文件
# 显示堆中对象通讯信息 $ jmap -histo 13154 | less
功能:分析jamp生成的堆转储快照
通常不会在生产服务器上进行分析,很是耗CPU和内存,不经常使用
jenkins@ubuntu-OptiPlex-7040:~$ jhat jenkins.bin Reading from jenkins.bin... Dump file created Thu Feb 14 11:43:45 CST 2019 Snapshot read, resolving... Resolving 12022774 objects... Chasing references, expect 2404 dots Eliminating duplicate references Snapshot resolved. Started HTTP server on port 7000 Server is ready.
浏览器访问http://ip:7000 查看分析结果
功能: 生成虚拟机当前时刻的线程快照,用来定位线程出现长时间停顿的缘由,如线程见死锁、死循环、请求外部资源致使的长时间等待等
jstack -l 13154
调优须要的技能: