摘要:
工具位于 JDK下bin中 1.JDK的命令行工具 监控和故障处理工具 ① jps:虚拟机进程状况工具 jsp命令格式: jps[options][hostid] jps可以通过RMI协议查询开启了RMI服务的远程虚拟机进程状态,hostid为RMI注册表中注册的主机名。jps的其他常用选项见下表。 阅读全文
摘要:
1 案例分析 ① 高性能硬件上的程序部署策略 在高性能硬件上部署程序,目前主要有两种方式: 通过64位JDK来使用大内存。 使用若干个32位虚拟机建立逻辑集群来利用硬件资源。 在高性能硬件上部署程序,目前主要有两种方式: 通过64位JDK来使用大内存。 使用若干个32位虚拟机建立逻辑集群来利用硬件资 阅读全文
摘要:
执行引擎是Java虚拟机最核心的组成部分之一。 物理机的执行引擎建立在处理器、硬件、指令集和操作系统之上的,虚拟机的执行引擎需要自己实现,因此可以自己制定指令集与执行引擎的结构体系,并且支持那些不被硬件直接支持的指令集格式。 1、运行时栈帧结构 栈帧是用于支持虚拟机进行方法调用和方法执行的数据结构, 阅读全文
摘要:
在Java语言里面,类型的加载、连接和初始化过程都是在程序运行期间完成的,这种策略虽然会令类加载时稍微增加一些性能开销,但是会为Java应用程序提供高度的灵活性,Java里天生可以动态扩展的语言特性就是依赖运行期动态加载和动态连接这个特点实现的。 1. 类加载的时机 类从被加载到虚拟机内存中开始,到 阅读全文
摘要:
1. Class类文件的结构 任何一个Class文件都对应着唯一一个类或接口的定义信息,但反过来说,类或接口并不一定都得定义在文件里(譬如类或接口也可以通过类加载器直接生成)。”Class“文件不一定是磁盘上存在的 Class文件是一组以8位字节为基础单位的二进制流,只有两种数据类型:无符号数和表 阅读全文
摘要:
1、解释器与编译器 整个虚拟机执行架构中,解释器与编译器经常配合工作,如图 分层编译根据编译器编译、优化的规模与耗时,划分出不同的编译层次,其中包括: 第0层,程序解释执行,解释器不开启性能监控功能(Profiling),可触发第1层编译。 第1层,也称为C1编译,将字节码编译为本地代码,进行简单、 阅读全文
摘要:
javac 编译的过程大致可以分为3个过程,分别是: 解析与填充符号表过程。 插入式注解处理器的注解处理过程。 分析与字节码生成过程。 解析与填充符号表过程。 插入式注解处理器的注解处理过程。 分析与字节码生成过程。 这3个步骤之间的关系与交互顺序如图 1、解析与填充符号表 ①词法、语法分析 词法分 阅读全文
摘要:
1、Java内存模型 Java虚拟机规范中试图定义一种Java内存模型(Java Memory Model,JMM)来屏蔽掉各种硬件和操作系统的内存访问差异,以实现让Java程序在各种平台下都能达到一致的内存访问效果。 Java内存模型的主要目标是定义程序中各个变量的访问规则,即在虚拟机中将变量存储 阅读全文
摘要:
1、Java语言中的线程安全 按照线程安全的“安全程度”由强至弱来排序,可以将Java语言中各种操作共享的数据分为以下5类:不可变、绝对线程安全、相对线程安全、线程兼容和线程对立。 2、线程安全的实现方法 ①互斥同步 互斥同步(Mutual Exclusion&Synchronization)是常见 阅读全文
摘要:
时间复杂度:最好O(n),平均和最坏情况O(n2) 空间复杂度:O(1) 稳定排序 原理:从第一个元素开始,依次比较相邻两个元素,如果前者比后者大,那么就交换者两个元素,然后处理下一组,依次类推,直到排序完成。 实现: 时间复杂度:最好、平均和最坏情况O(n2) 空间复杂度:O(1) 不是稳定排序 阅读全文