From: www.magedu.com
1995年,JAVA 1.0面世, James Gosling, Green Project “Once for all, Write once, run anywhere“
Java技术分类:
JAVA SE,标准版
*JAVA EE,企业版
JAVA ME,移动版
.java --> .class(bytecode,平台无关)
一、JVM运行.class的方式
1.边解释边运行;
2.即时编译运行(just-in-time compiler),依赖更多的内存缓存编译结果;
3.自适应编译器,缓存小量常用的代码;
JVM实现:
Hotspot jvm(sun) = JRE + JDK
OpenJDK(open source)
二、动态网页发展
--> applet,客户端java程序
--> CGI,应用服务器和web服务器通信的协议
--> servlet,服务器java程序,结合CGI技术可以使用java开发动态web
--> JSP(Java Server Page, 嵌入html,将java和html开发分离)
--> SSH(MVC框架)
三、JVM内存使用
线程私有内存区:
程序计数器
java虚拟机栈
线程共享内存区:
方法区
堆,存放对象,占用最大数量的内存
本地方法栈
JNI
四、内存回收gc
算法:
1. 标记-清除
2. 复制
3. 标记-整理
回收器:
1. Serial [Old]
2. ParNew [Old]
3. Parallel Scavenge
4. CMS, Concurrent Mark Sweep, 并发收集,低停顿,无法清理正在运行的线程垃圾
5. G1, 可控制停顿时间
五、启动JVM
java命令启动虚拟机:
-XX:+option,开启功能
-XX:-option,关闭
-XX:<option>=<value>
-XX:+PrintFlagsFinal,显示所有参数
六、类的生命周期
loading (new时由加载器加载)
Verification
Preparation
Resolution
Initialization (加载完成)
----------------------
Using
Unloading
七、JDK监控和故障处理
jps,显示所有HotSpot进程列表信息
jstat,收集并显示HotSpot运行数据信息
jinfo,显示正在运行的某HotSpot配置信息
jmap,生成某HotSpot内存转储快照
jconsole,java监控和管理控制台
jvisualvm,虚拟机可视化管理