我脑中的JVM大全附带Java8的特性
Java虚拟机-sun classic vm
世界上第一款商用的Java虚拟机。
只能使用纯解释器的方式来执行Java代码。
Java虚拟机-ExactVM
Exact Memory Management 准确试内存管理
虚拟机可以知道内存中某个位置的数据具体使什么类型的,在进行垃圾回收的时候可以判断堆上的数据是否能被使用。
编译器和解释器混合工作以及俩及即时编译器。
只在Solaris平台发布。
Java虚拟机-HotSpotVM
HotSpot,是较新的Java虚拟机技术,用来代替JIT(just-in-time compilation,及时编译)技术,可以大大提高Java运行的性能。Java原先是把源代码编译为字节码在虚拟机执行,这样执行速度较慢。而该技术将常用的部分代码编译为本地(原生,native)代码,这样显著提高了性能。
对于初学者来说,尽管Hotspot有些神秘,但是性能方面它确实很棒,因为动态建模(dynamic profiling)是优良性能的捷径。HotSpot从运行应用中采样数据,从而可以优化代码,进而得到良好性能。它相当于以模仿人工的方法进行优化。在程序运行的开始,Java代码仍然解释执行,但HotSpot引擎开始进行采样(Profiling)。HotSpot引擎可以集中精力来对HotSpot代码进行深度优化,从而使这部分代码的执行更加迅捷。因此当HotSpot优化时,它为优化设立了一层保护来确保优化的基本原理有效;但当这层保护失效时,优化就会很慢。
Java虚拟机-KVM
Kilobyte 是在手机平台运行。而且简单高效,轻量,高度可移植。相传诺基亚S60用的就是这个虚拟机。
Java虚拟机-JRockit
现在已经被Oracle收购
BEA 自称世界上最快的虚拟机
专注服务端的应用
优势:
- 垃圾回收器
- MessionControl 服务套件(用于寻找生产环境中内存泄露)
Java虚拟机-J9
IBM公司生产的自称最快的虚拟机
全称IBM Technology for Java virtual Machine IT4j
类似于HotSpot
不是Java虚拟机的Java虚拟机-dalvik
不是一个Java虚拟机,无法执行编译后的class可执行文件。
主要是在android开发的。
DEX dalvik Executalbe 可执行文件
Microsoft JVM
。。。都是历史了。
JDK8的特性
接口的默认方法和静态方法
Java8使用了俩个概念扩展了接口的含义,默认方法和静态方法,默认方法使得卡覅这可以在不破坏二进制兼容的前提下,往现存接口中添加新的方法,即不强制那些实现了该接口的类也同时实现这个新加的方法。
Lambda表达式和函数式编程
函数式编程时技术的发展方向,而lambda使函数式编程最基础的内容。
最简单的体现就是不用再写大量的匿名内部类。
此外,因为lambda的引入,集合操作也得到了很大的改善。比如,stream API,把map,reduce,filter这样的基本函数式编程的概念与Java集合结合起来。在大多数情况下,我们可以告别for,while,if。
Data Api
重复注解
更好的类型推断
Java 8 编译器在类型推断方面有很大的提升,在很多场景下编译器可以推导出某个参数的数据类型,从而使代码更为简洁。
我脑中的JVM大全附带Java8的特性的更多相关文章
- iOS中NSLog输出格式大全
iOS开发中的输出格式大全: %@ 对象 %d, %i 整数%u 无符整形%f ...
- iOS开发中NSLog输出格式大全
本文的内容是总结了一下iOS开发中NSLog输出格式大全,虽然比较基础,但有总结毕竟会各位正在学习iOS开发的朋友们一些小小的帮助. %@ 对象 %d, %i ...
- java环境中基于jvm的两大语言:scala,groovy
一.java环境中基于jvm的两大语言:scala,groovy 可以在java项目里混编这两种语言: scala:静态语言,多范式语言,糅合了面向对象.面向过程:可以与java和net互操作:融汇了 ...
- MVC中HtmlHelper用法大全参考
MVC中HtmlHelper用法大全参考 解析MVC中HtmlHelper控件7个大类中各个控件的主要使用方法(1) 2012-02-27 16:25 HtmlHelper类在命令System.Web ...
- Java8新特性(一)_interface中的static方法和default方法
什么要单独写个Java8新特性,一个原因是我目前所在的公司用的是jdk8,并且框架中用了大量的Java8的新特性,如上篇文章写到的stream方法进行过滤map集合.stream方法就是接口Colle ...
- 明白生产环境中的jvm参数
明白生产环境中的jvm参数 写代码的时候,程序写完了,发到线上去运行,跑一段时间后,程序变慢了,cpu负载高了--一堆问题出来了,所以了解一下生产环境的机器上的jvm配置是有必要的.比如说: JDK版 ...
- JAVA代码中获取JVM信息
一.JAVA中获取JVM的信息 原理,利用JavaSDK自带的ManagementFactory类来获取. 二.获取信息 1.获取进程ID @Test public void test1() { Ru ...
- Eclipse 中设置JVM 内存
Eclipse 中设置JVM 内存 今天在eclipse 中测试把文档转换为图片的时候,报出了下面的错误: java.lang.OutOfMemoryError: Java heap space 从上 ...
- iOS中block类型大全
iOS中block类型大全 typedef的block 作为属性的block 作为变量的block 作为方法变量入参的block 作为方法参数的block 无名block 内联函数的block 递归调 ...
随机推荐
- 【转载】Gradle for Android 第五篇( 多模块构建 )
Android studio不仅允许你为你的app和依赖库创建模块,同时也可为Android wear,Android TV,Google App Engine等创建模块,而这些单独的模块又可以在一个 ...
- PHP-RPM 安装指南(亲测有用)
小注:此教程可能有很多弯路,但是最终是肯定安装成功了的,一个问题就是刚开始安装编译的指令版本好像不对,但是后面纠正过来了,但是此教程一共遇到了 十多个问题,也一并解决了,具有一定的借鉴意义,还有( ...
- TypeScript 学习笔记(二)
块级作用域变量: 1.不能在被声明前读或写 console.log(num); let num: number = 0; // 报错 2.仍然可以在一个拥有块级作用域的变量声明前通过函数捕获它,但不能 ...
- securecrt如何保存操作日志
- ORA-01555 When Max Query Length Is Less Than Undo Retention, small or 0 Seconds (Doc ID 1131474.1)
ORA-01555 When Max Query Length Is Less Than Undo Retention, small or 0 Seconds (Doc ID 1131474.1) A ...
- Python—函数的参数传递
形参和实参 形参即形式参数,函数完成其工作时所需的信息.形参不占用内存空间,只有在被调用时才会占用内存空间,调用完了即被释放. 实参即实际参数,调用函数时传给函数的信息. # -*- coding: ...
- Jmeter+ant+Jenkins构建接口自动化测试时构建失败 提示:Fatal Error! 字符引用 "&#原因
Jmeter+ant+Jenkins构建接口自动化测试时构建失败 提示:Fatal Error! 字符引用 "&#原因:接口响应数据中有&#
- axios+vue实现动态渲染员工数据+数据是对象
<style> table{ width: 600px; margin: 0 auto; text-align: center; border-collapse: collapse; /* ...
- 面向对象程序设计(JAVA) 第11周学习指导及要求
2019面向对象程序设计(Java)第11周学习指导及要求 (2019.11.8-2018.11.11) 学习目标 理解泛型概念: 掌握泛型类的定义与使用: 掌握泛型方法的声明与使用: 掌握泛型接 ...
- [C13] 应用实例:图片文字识别(Application Example: Photo OCR)
应用实例:图片文字识别(Application Example: Photo OCR) 问题描述和流程图(Problem Description and Pipeline) 图像文字识别应用所作的事是 ...