![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 95
尐譽
安,不奢逸;危,不惊惧
展开
-
JVM监控:JVM监控指标、JVM监控界面实现、Java监控JVM
本文概要: 1、监控JVM的哪些指标; 2、一目了然的JVM监控的UI界面; 3、Java代码获取JVM监控状态。1、监控JVM的哪些指标 javaVersion /** Java版本号 */ ...原创 2020-01-13 19:22:40 · 15568 阅读 · 10 评论 -
Java对象与JVM(三) Java对象在Java虚拟机中的引用访问方式
在前面两篇文章中了解到Java对象实例是如何在HotSpot虚拟机的Java堆中创建的,以及创建后的内存布局是怎样的。下面详细了解在Java堆中的Java对象是如何访问定位的:先来了解reference类型数据是什么,再来了解两种访问方式:使用句柄或者使用直接指针(HotSpot虚拟机使用直接指针)。原创 2016-12-29 21:14:55 · 5159 阅读 · 2 评论 -
Java编译(三) Java即时编译(JIT编译):运行时把Class文件字节码编译成本地机器码
下面详细了解JIT编译;从官方JDK中的HotSpot虚拟机的JIT编译器入手,先介绍解释器与JIT编译器是如何配合工作的,认识JIT编译器C1/C2;再看看JIT编译的是什么,以及触发条件是什么;而后再简单介绍JIT编译过程,认识几种编译技术;最后对比Java与C/C++的编译器。原创 2016-12-31 01:18:19 · 14588 阅读 · 3 评论 -
Java编译(二) Java前端编译:Java源代码编译成Class文件的过程
在上篇文章中了解到了Java前端编译 JIT编译 AOT编译各有什么优点和缺点,下面详细了解Java前端编译:Java源代码编译成Class文件的过程;我们从官方JDK提供的前端编译器javac入手,用javac编译一些测试程序,调试跟踪javac源码,看看javac整个编译过程是如何实现的。原创 2016-12-21 21:38:40 · 26434 阅读 · 7 评论 -
Tomcat(二) Tomcat实现:Servlet与web.xml介绍 以及 源码分析Tomcat实现细节
下面将深入了解Tomcat技术的实现:先来了解JavaEE Servlet技术的一些对象组件;再来了Web应用程序部署文件web.xml中对Servlet组件的定义;最后再从Tomcat源码分析实现细节,重点关注:Tomcat的启动/初始化、并发线程模式、接收请求与处理、以及Servlet容器的实现。原创 2017-01-20 21:56:51 · 11390 阅读 · 3 评论 -
Tomcat(三) Tomcat安装配置:Tomcat+Nginx+keepalived 实现动静分离、Session会话保持的高可用集群
在前文了解到了Tomcat的配置及技术实现,而在Nginx系列文章中了解到了Nginx的配置,下面将在这些的基础上,先安装Tomcat,再进行配置Tomcat+Nginx+keepalived 的动静分离的高可用集群,最后再配置Tomcat集群,实现Session会话保持。原创 2017-01-20 22:09:43 · 4275 阅读 · 1 评论 -
Java虚拟机垃圾回收(二) 垃圾回收算法:标记-清除算法 复制算法 标记-整理算法 分代收集算法 火车算法
在前文了解到如何判断Java对象已经死亡,下面来了解Java虚拟机垃圾回收的几种常见算法:标记-清除算法、复制算法、标记-整理算法、分代收集算法、火车算法,介绍它们的算法思路,有什么优点和缺点,以及主要应用场景。原创 2017-01-02 22:43:50 · 10323 阅读 · 1 评论 -
Java内存管理:Java内存区域 JVM运行时数据区
Java内存管理:在前面的一些文章了解到javac编译的大体过程、Class文件结构、以及JVM字节码指令,下面我们详细了解Java内存区域:先说明JVM规范定义的JVM运行时分配的数据区有哪些,然后分别介绍它们的特点,并指出给出一些HotSpot虚拟机实现的不同点和调整参数。原创 2016-12-29 00:36:20 · 9264 阅读 · 3 评论 -
Java体系:组成结构 运行机制 JRE/JDK/OpenJDK Java SE/EE/ME Java优点
Java体系:组成结构 运行机制 JRE/JDK/OpenJDK Java SE/EE/ME Java优点 Java平台是一个庞大的体系,为了更好的使用Java,我们需要对Java体系有一个全面的了解。下面我们将会了解到:1、什么是 Java 技术?为何需要 Java?2、Java体系: Java组成结构以及Java程序运行机制;原创 2016-11-13 09:01:48 · 7186 阅读 · 1 评论 -
Java虚拟机垃圾回收(四) 总结:内存分配与回收策略 方法区垃圾回收 以及 JVM垃圾回收的调优方法
Java虚拟机垃圾回收(四) 总结:内存分配与回收策略 方法区垃圾回收 以及 JVM垃圾回收的调优方法 在《Java对象在Java虚拟机中的创建过程》了解到对象创建的内存分配,在《Java内存区域 JVM运行时数据区》中了解到各数据区有些什么特点、以及相关参数的调整,在《Java虚拟机垃圾回收(一) 基础》中了解到如何判断对象是存活还是已经死亡?在《Java虚拟机垃圾回收(二) 垃圾回原创 2017-01-17 23:16:27 · 7394 阅读 · 1 评论 -
Java对象与JVM(二) Java对象在Java虚拟机中的内存布局
在前面文章了解到Java对象实例是如何在Java堆中创建的,下面我们详细了解Java普通对象创建后,在HotSpot虚拟机Java堆中的内存布局是怎样的,可以分为3个区域:对象头(Header)、实例数据(Instance)和对齐填充(Padding)。原创 2016-12-29 21:03:04 · 3482 阅读 · 2 评论 -
Java对象与JVM(一) Java对象在Java虚拟机中的创建过程
下面我们详细了解Java程序中new一个普通对象时,HotSpot虚拟机是怎么样创建这个对象的,包括5个步骤:相应类加载检查过程、在Java堆中为对象分配内存、分配后内存初始化为零、对对象进行必要的设置、以及执行对象实例方法,最后我们再从JVM指令角度来解释下Java对象创建。原创 2016-12-29 07:47:14 · 12687 阅读 · 2 评论 -
Java发展:各版本JDK新特性 JVM发展 Java技术应用发展
上篇我们对Java平台体系有了一个全面的了解,下面先简单介绍Java发展历史,然后在整个的发展史的基础上,抽取几个关注点的时间线,分别介绍各JDK版本的新特性、JVM发展、以及Java技术的应用发展原创 2016-11-13 09:33:40 · 3304 阅读 · 0 评论 -
CentOS上编译OpenJDK8源码 以及 在eclipse上调试HotSpot虚拟机源码
想深入了解Java的运行机制,我们有必要了解HotSpot虚拟机;下面我们先在CentOS6.4 64位系统上编译OpenJDK8源码,然后用gdb断点调试hotspot源码,最后再配置在eclipse上调试hotspot源码;主要包括: 1、编译OpenJDK8源码; 2、gdb断点进入源码调试hotspot; 3、在eclipse上调试hotspot源码; 4、配置hotspot调试运行eclipse的java工程;原创 2016-12-18 09:50:38 · 11541 阅读 · 9 评论 -
Java虚拟机垃圾回收(三) 7种垃圾收集器:主要特点 应用场景 设置参数 基本运行原理
Java虚拟机垃圾回收(三) 7种垃圾收集器主要特点 应用场景 设置参数 基本运行原理 在《Java虚拟机垃圾回收(一) 基础》中了解到如何判断对象是存活还是已经死亡?在《Java虚拟机垃圾回收(二) 垃圾回收算法》了解到Java虚拟机垃圾回收的几种常见算法。 下面先来了解HotSpot虚拟机中的7种垃圾收集器:Serial、ParNew、Parall...原创 2017-01-02 23:41:24 · 30453 阅读 · 15 评论 -
Java语言层面和JVM层面方法特征签名的区别 及 实例分析
在前面文章中多次提到Java语言层面方法特征签名和JVM层面方法特征签名的区别,下面我们先来回顾一下Java语言层面方法特征签名和JVM层面方法特征签名的区别的是什么,再用测试程序实例来分析验证:Class文件中有两个同名同参数(类型、顺序都相同),但返回值类型不一样的方法也是允许的,可以正常运行。原创 2016-12-27 01:13:30 · 6269 阅读 · 1 评论 -
JVM字节码指令 及 反编译分析
通过前文知道Class文件中的各方法表的"code"属性存储了对应的JVM字节码指令,下面详细了解JVM字节码指令:先对字节码指令组成结构有个大体了解,并通过前面的"getMap"方法的字节码数据来分析JVM指令及操作码助记符,而后了解字节码指令与数据类型的关系,最后分类说明JVM指令的功能及注意事项。原创 2016-12-26 22:46:51 · 6880 阅读 · 0 评论 -
Java Class文件结构解析 及 实例分析验证
Class文件是JVM执行引擎的数据入口,也是Java技术体系的基础构成之一;下面我们详细了解Class文件:先对Class文件结构有个大体了解,并了解Class文件结构里的一些名称定义;而后再详细说明结构中每一项数据的含义,并用测试程序编译Class文件来分析验证Class文件结构。原创 2016-12-25 18:57:21 · 10835 阅读 · 0 评论 -
Tomcat(一) Tomcat是什么:Tomcat与Java技术 Tomcat与Web应用 以及 Tomcat基本框架及相关配置
Tomcat是一个被广泛使用的Java WEB应用服务器,下面将认识Tomcat:先来了解Tomcat与Java技术的关系、以及在WEB中的应用场景;再来了解Tomcat的安装目录结构、Tomcat配置文件、Tomcat部署Web应用程序的目录结构;最后了解Tomcat基本架构、以及Tomcat各组件的一些配置。原创 2017-01-18 23:18:34 · 77234 阅读 · 8 评论 -
Java虚拟机垃圾回收(一) 基础:回收哪些内存/对象 引用计数算法 可达性分析算法 finalize()方法 HotSpot实现分析
下面先来了解Java虚拟机垃圾回收的基础内容:如何判断对象是存活还是已经死亡? 介绍相关的垃圾回收基础算法:引用计数算法、可达性分析算法,以及说明finalize()方法作用,最后再来说说HotSpot虚拟机中实现对象可达性分析的一些问题。原创 2017-01-02 22:13:45 · 12900 阅读 · 3 评论 -
Java编译(一) Java三种编译方式:前端编译 JIT编译 AOT编译
Java编译涉及到非常多的知识层面:编译原理、语言规范、虚拟机规范、本地机器码优化等;下面我们先来看下Java体系中的三种编译方式:前端编译、即时编译(JIT编译)、静态提前编译(AOT编译)解它们各有什么优点和缺点,再来看看主流的前端编译+JIT编译方式的运作过程。原创 2016-12-19 21:24:00 · 14436 阅读 · 5 评论 -
各种容器与服务器的区别与联系:Servlet容器 WEB容器 Java EE容器 应用服务器 WEB服务器 Java EE服务器
经常看到各种容器名称:Servlet容器、WEB容器、Java WEB容器、Java EE容器等,还有各种服务器名称:应用服务器、WEB服务器、WEB应用服务器、Java WEB应用服务器、Java EE服务器等, 下面我们尝试区分它们,找出他们之间的联系,最后通过Apache、nginx、tomcat等举例说明容器以及服务器的联系。原创 2016-11-13 11:48:41 · 17960 阅读 · 1 评论