深入理解java虚拟机-01 走进java
第一章是对java的产生,历史的整体介绍
java的使用很广泛,安装jdk的时候会看到一句广告语runs in 10 billions machines。使用java的设备多达几十亿台
1.概述
- 优点:
- 摆脱了平台的限制,一次编写,到处运行
- 相对安全的内存管理和访问机制,避免了绝大部分的内存泄漏和指针越界问题
- 热点代码检测和运行是编译及优化
- 完善的应用接口,还有无数来自商业机构和开源社区的第三方类库来帮助他实现各种功能
。。。
尽管java有这么多优点,相对于其他语言,使用上简单了很多。但是作为一名java程序员,想到在此方面有更高的造诣,还是要思考“程序这样写好不好”,因此就需要多java的运行环境--java虚拟机有一定的了解,这样才能上升到
不惑的境界、
2.java技术体系
sun官方定义的java技术体系包括以下几个组成部分
1. java程序设计语言
2. 各种硬件平台上的java虚拟机
3. class文件格式
4. java api类库
5. 来自商业机构和开源社区的第三方java类库
我们可以把1,2,4这三部分统称为jdk(java development kit),jdk是用于支持java程序开发的最小环境
另外,可以把java api类库中的java SE API子集和java虚拟机加这两部分同城为jre(java runtime environment),jre是支持java程序运行的标准环境

java技术体系可以分为4个平台
- java card:java小程序(Applets)运行在小内存设备上的平台
- java me:支持移动终端,J2ME
- java se(Standard Edition):支持面向桌面级应用,,J2SE
- java ee(Enterprise Edition): 多层架构的企业应用, J2SE
3. java发展史
java诞生在1996年,1月23日,jdk1.0发布。jdk1.0提供了一个纯解释执行的java虚拟机实现Sun Classic VM。jdk1.0版本的代表技术包括java虚拟机,applet,awt等
1996年底,sun公司在美国旧金山举行了首届javaOne大会,从此JavaOne成为全世界数百万java开发者每年一度的技术盛会(我咋不知道呢)
1997年,sun公司发布了jdk1.1,技术代表有jar文件格式、jdbc、javabeans、RMI(啥?),支持内部类(Inner Class)和反射(Reflection)
1998年,sun公司发布了里程碑版本1.2,工程代号playground(竞技场),java技术体系分为三个部分:j2se,j2me,j2ee。出现了EJB,java plug-in,Java IDL、Swing等。这个版本第一次内置了JIT(just in time)编译器。在语言和API级别上,java添加了strictfp关键字(不知道是啥)和现在java编码中常用的一些类Collections集合类。
1999年4月27日,HotSpot虚拟机(熟悉的名字)发布,它最初是由一家名为Longview Technologies的小公司开发,因为表现优异,在97年被sun收购。后来它成为了jdk1.3之后所有版本的sun jdk的默认虚拟机
中间连续发布了一些版本,但都没什么大的特性
2004年9月30日,1.5发布。改进非常大:自动装箱、泛型、动态注解、枚举、可变长参数、遍历循环等语法特性,提供了concurrent并发包
2006年12月11日,1.6对虚拟机内部做了大量改进,包括锁与同步、垃圾收集、类加载方面的算法
2006年11月13日的javaone大会上,sun公司宣布最终会将java开源,建立了OpenJDK组织对这些源码进行独立管理。除了少量的产权代码外,OpenJDK几乎包括了SunJDK的全部代码。
2011年7月28日,1.7发布提供了G1收集器,加强对非java语言的调用
2009年4月20日。oracle公司74亿美元收购了sun公司,此前oracl'e公司已经收购了另外一家大型中间件企业BEA公司,自此,oracle公司拥有了三大商业虚拟机中的其中两个jRockit和HotSpot(另外一个时IBM的J9 VM)
4 java虚拟机的发展史
5 展望java技术的未来
6实战: 自己编译jdk
书中提供了怎样自己编译OpenJDK的样例,放着,先看后面的内容
吐槽一下,博客园的markdown编辑器不友好啊,都没有
edit and view视图
深入理解java虚拟机-01 走进java的更多相关文章
- 深入理解java虚拟机(1)走进jvm
1.JDK:java程序设计语言.java虚拟机.javaAPI 二.自动内存管理机制 ----------------------------------------------------- 1. ...
- 《深入理解 Java 虚拟机》学习 -- Java 内存模型
<深入理解 Java 虚拟机>学习 -- Java 内存模型 1. 区别 这里要和 JVM 内存模型区分开来: JVM 内存模型是指 JVM 内存分区 Java 内存模型(JMM)是指一种 ...
- 深入理解Java虚拟机之图解Java内存区域与内存溢出异常
Java内存区域与内存溢出异常 运行时数据区域 程序计数器 用于记录从内存执行的下一条指令的地址,线程私有的一小块内存,也是唯一不会报出OOM异常的区域 Java虚拟机栈 Java虚拟机栈(Java ...
- [Java 教程 01] Hello,Java!
前言 从事编程已经有一段时间了,突然发现,Java作为我的第一编程语言,自己似乎对她并有一个系统的思想.当下Java依旧保持着超高的热度,新特性也不断出现,从当初学习的java6版本到最近刚出的jav ...
- java虚拟机学习-触摸java常量池(13-1)
java虚拟机学习-深入理解JVM(1) java虚拟机学习-慢慢琢磨JVM(2) java虚拟机学习-慢慢琢磨JVM(2-1)ClassLoader的工作机制 java虚拟机学习-JVM内存管理:深 ...
- 转 Java虚拟机5:Java垃圾回收(GC)机制详解
转 Java虚拟机5:Java垃圾回收(GC)机制详解 Java虚拟机5:Java垃圾回收(GC)机制详解 哪些内存需要回收? 哪些内存需要回收是垃圾回收机制第一个要考虑的问题,所谓“要回收的垃圾”无 ...
- Java虚拟机2:Java内存区域
1.几个计算机的概念 为以后写文章考虑,也为巩固自己的知识和一些基本概念,这里要理清楚几个计算机中的概念. 1.计算机存储单位 从小到大依次为位Bit.字节Byte.千字节KB.兆M.千兆GB.TB, ...
- java虚拟机规范(se8)——java虚拟机结构(六)
2.11 指令集简介 java虚拟机指令由一个字节的操作码,接着时0个或多个操作数组成,操作码描述了执行的操作,操作数提供了操作所需的参数或者数据.许多指令没有操作数只包含一个操作码. 如果忽略异常处 ...
- 【Java虚拟机6】Java内存模型(Java篇)
什么是Java内存模型 <Java虚拟机规范>中曾试图定义一种"Java内存模型"(Java Memory Model,JMM)来屏蔽各种硬件和操作系统的内存访问差异, ...
随机推荐
- Jira 的 数据库备份恢复 简单过程
1 发现jira的备份恢复很简单, 只需要导入导出一个zip包即可 导出 选择系统 管理员入口登录 选择导入导出 进行备份系统数据 选择一个文件名就能备份 备份结果 将文件copy到上一一级目录的 i ...
- Python模块-pandas
目录 数据读取 数据探索 数据清洗 数据清洗 类型转换 缺失值 重复值 值替换 修改表结构 新增列 删除列 删除行 修改列名 数据分组(数值变量) 数据分列(分类变量) 设置索引 排序 数据筛选/切片 ...
- spring 默认情况下事务是惟一的 同一个方法里面第一个sql开启后 在执行完 将事务传递给下一个sql
spring 默认情况下事务是惟一的 同一个方法里面第一个sql开启后 在执行完 将事务传递给下一个sql
- java之不修改变量的数据类型的处理方式
- BZOJ 3516 国王奇遇记加强版(乱推)
题意 求\(\sum_{k=1}^{n}k^mm^k (n\leq1e9,m\leq1e3)\) 思路 在<>中有一个方法用来求和,称为摄动法. 我们考虑用摄动法来求这个和式,看能不能得到 ...
- native2ascii -reverse -encoding UTF-8 validation_msg.properties > validation_msg_src.properties
native2ascii -reverse -encoding UTF-8 validation_msg.properties > validation_msg_src.properties
- MT【177】三个乘积和
对任意 2 个 1,2,3,4,5,6 的全排列 $(a_1,a_2,a_3,a_4,a_5,a_6)$ 和 $(b_1,b_2,b_3,b_4,b_5,b_6)$,求$\displaystyle S ...
- loj6253/luogu4062-Yazid的新生舞会
先考虑部分分(只有01/只有0~7)做法:枚举每个数,把和他相同的设为1,不同的设为-1,然后这个数作为众数贡献的个数就是区间和>0的个数 推着做,树状数组记前缀和<=x的区间的数量就可以 ...
- 【洛谷P1462】通往奥格瑞玛的道路
题目大意:给定一个 N 个点,M 条边的无向图,求从 1 号节点到 N 号节点的路径中,满足路径长度不大于 B 的情况下,经过顶点的点权的最大值最小是多少. 题解:最大值最小问题一般采用二分答案.这道 ...
- svn问题汇总
1 svn图标 2 问题 SVN删除文件 一.本地删除SVN删除文件中的本地删除,指的是在客户端delete了一个文件,但还没有commit,使用revert来撤销删除. 二.服务器删除1.通过本地删 ...