第一章 走近java

1. java 技术体系:
java 程序设计语言
各种硬件平台上的java虚拟机
class 文件格式
java API 类库
来自商业机构或者开源机构的第三方java类库
jdk(java development kit):java程序设计语言、java虚拟机、java API类库,表示用于支持java开发的最小环境
jre(java runtime environment),java 运行时环境。
 
java me (mobile edition,移动版本)
java se (standard edition,标准版本)
java ee (enterprise edtion,企业版本)
 
2. java 发展史
java诞生于1995年,目前是全球使用范围最广的编程语言之一了。其他略。
java 虚拟机发展史
Sun classic/Exact VM:sun 公司发布的最原始的虚拟机,目前已经停用。
Sun hotspot VM:目前使用范围最广的虚拟机。最开始是一家名为 hotspot 的小公司开发的,因为表现优异,后被sun公司收购。
其他VM:包括 sun mobile embedded VM/meta circular VM、BEA JRokit VM 等等。
 
3. java技术的未来:
模块化:这个目前已经在java11 中实现
混合语言: 越来越多的语言可以跑在jvm之上。
多核并行
更加丰富的语法,比如除了面向对象之外,融入其他的编程范式,比如函数式编程等。
64位虚拟机
自己亲自动手编译jdk(略)
 
 
第二章 java内存区域与内存溢出异常
 
1. java虚拟机实现了动态内存分配与垃圾回收机制,所以大大减轻了程序员的负担,不用像c/c++ 那样小心、手动地管理内存。但是这样也限制了程序员的自由,以及封装了底层细节,在jvm发生内存溢出或者内存泄漏时,如果不了解jvm内部是如何管理内存的,排查错误就会变得非常困难。
  • 运行时数据区域

  • 程序计数器
较小的内存空间,当前线程所执行字节码的行号指示器,是线程私有的。
  • java 虚拟机栈
线程私有,生命周期与线程相同,描述java方法执行的内存模型,每个方法执行时都会创建一个帧栈,用于存储局部变量表、操作数栈、动态链接等。局部变量表存放了编译期的各种基本数据类型、对象引用以及returnAddress(指向了一条字节码指令的地址)。这个区域可以抛出StackOverFlow 与 Out Of Memory 两种异常。
 
  • 本地方法栈
java虚拟机栈为 java 方法(字节码)服务,本地方法栈为native 方法服务。
 
  • java堆
java虚拟机管理内存中最大的一块,被所有线程共享的内存区域,几乎所有的对象实例分配内存都是在这里进行的。java堆是垃圾回收发生的主要区域。

深入理解java虚拟机---读书笔记的更多相关文章

  1. 深入理解Java虚拟机 -- 读书笔记(1):JVM运行时数据区域

    深入理解Java虚拟机 -- 读书笔记:JVM运行时数据区域 本文转载:http://blog.csdn.net/jubincn/article/details/8607790 本系列为<深入理 ...

  2. 【Todo】深入理解Java虚拟机 读书笔记

    有一个在线系列地址 <深入理解Java虚拟机:JVM高级特性与最佳实践(第2版)> http://book.2cto.com/201306/25426.html 已经下载了这本书(60多M ...

  3. 深入理解Java虚拟机读书笔记5----虚拟机字节码执行引擎

    五 虚拟机字节码执行引擎   1 运行时栈帧结构     ---栈帧是用于支持虚拟机进行方法调用和方法执行的数据结构,是虚拟机运行时数据区中的虚拟机栈的栈元素.     ---栈帧中存储了方法的局部变 ...

  4. 深入理解Java虚拟机读书笔记8----Java内存模型与线程

    八 Java内存模型与线程   1 Java内存模型     ---主要目标:定义程序中各个变量的访问规则,即在虚拟机中将变量存储到内存和从内存中取出变量这样的底层细节.     ---此处的变量和J ...

  5. 深入理解Java虚拟机读书笔记7----晚期(运行期)优化

    七 晚期(运行期)优化 1 即时编译器(JIT编译器)     ---当虚拟机发现某个方法或代码块的运行特别频繁时,就会把这些代码认定为“热点代码”,包括被多次调用的方法和被多次执行的循环体.     ...

  6. 深入理解Java虚拟机读书笔记4----虚拟机类加载机制

    四 虚拟机类加载机制 1 类加载机制     ---概念:虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验.转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型.     -- ...

  7. 深入理解Java虚拟机读书笔记3----类文件结构

    三 类文件结构 1 Java虚拟机的两种中立特性     · 平台无关性     · 语言无关性     实现平台无关性和语言无关性的基础是虚拟机和字节码存储格式(Class文件).   2 Clas ...

  8. 深入理解Java虚拟机读书笔记1----Java内存区域与HotSpot虚拟机对象

    一 Java内存区域与HotSpot虚拟机对象 1 Java技术体系.JDK.JRE?     Java技术体系包括:         · Java程序设计语言:         · 各种硬件平台上的 ...

  9. 深入理解java虚拟机读书笔记--java内存区域和管理

    第二章:Java内存区域和内存溢出异常 2.2运行时数据区域 运行时数据区分为方法区,堆,虚拟机栈,本地方法栈,程序计数器 方法区和堆是线程共享的区域 虚拟机栈,本地方法栈,程序计数器是数据隔离的数据 ...

  10. 深入理解java虚拟机读书笔记1--java内存区域

    Java在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域.这些区域都有各自的用途.创建和销毁的时间,有一些是随虚拟机的启动而创建,随虚拟机的退出而销毁,有些则是与线程一一对应,随 ...

随机推荐

  1. Python3基础学习-while循环实例- 猜数字游戏

    需求: 猜数字游戏, 要求如下: 给个数字, 比如是66. 让用户一直猜,直到猜对退出. 中间输入q或Q也能退出 如果猜大了,提示用户猜小一点; 如果猜小了,提示用户猜大一点; likely = 66 ...

  2. VirtualBox Linux虚拟机 网络设置 centos

    VirtualBox网络设置成桥接 进去系统打开终端 vi /etc/sysconfig/network-scripts/ifcfg-enp0s3 用Vim编辑器打开配置文件,输入命令:vi /etc ...

  3. 在浏览器端用H5实现图片压缩上传

    一.需求的场景: 在我们的需求中需要有一个在手机浏览器端,用户实现上传证件照片的功能,我们第一版上了一个最简版,直接让用户在本地选择图片,然后上传到公司公共的服务器上. 功能实现后我们发现一个问题,公 ...

  4. 关于Python中正则使用findall和分组的一个坑

    版权声明:本文为sam的原创文章,转载请添加出处:http://blog.csdn.net/samed https://blog.csdn.net/samed/article/details/5055 ...

  5. jaxb读有BOM的XML文件问题

    一开始找了半天没找到什么原因,读文件就报错: Content is not allowed in prolog 后来发现是文件是UTF-8带BOM和不带BOM的问题 问题就好解决了,直接读带BOM文件 ...

  6. Google-Guava Concurrent包里的Service框架浅析

    原文地址  译文地址 译者:何一昕 校对:方腾飞 概述 Guava包里的Service接口用于封装一个服务对象的运行状态.包括start和stop等方法.例如web服务器,RPC服务器.计时器等可以实 ...

  7. animation-timing-function

    animation-timing-function 语法: animation-timing-function:<single-animation-timing-function>[,&l ...

  8. leetcode解题报告(3):Search in Rotated Sorted Array

    描述 Suppose a sorted array is rotated at some pivot unknown to you beforehand. (i.e., 0 1 2 4 5 6 7 m ...

  9. HDU3076 ssworld VS DDD

    嘟嘟嘟 友情提示:数据把\(hp1\)和\(hp2\)弄反了! 进入正题. 这题还是比较好想,令\(dp[i][j]\)表示第一个人赢了\(i\)场,第二个人赢了\(j\)的概率,转移就是分别考虑这一 ...

  10. LOJ #6669 Nauuo and Binary Tree (交互题、树链剖分)

    题目链接 https://loj.ac/problem/6669 题解 Orz yyf太神了,出这种又有意思又有意义的好题造福人类-- 首先\(n\)次询问求出所有节点的深度. 考虑按深度扩展(BFS ...