第一章 走近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. JMeter学习之元件的作用域与执行顺序

    1.元件的作用域 JMeter中共有8类可被执行的元件(测试计划与线程组不属于元件),这些元件中,取样器是典型的不与其它元件发生交互作用的元件,逻辑控制器只对其子节点的取样器有效,而其它元件(conf ...

  2. 为什么size_t重要?(Why size_t matters)

    之前在<内存拷贝的注意事项>一文中提到过size_t,可能许多人对这个类型不太熟悉没有用过或者根本不敢去用,最近看到一篇文章对这个类型讲的比较详细,便翻译过来让不熟悉的同学可以知道它产生的 ...

  3. PHP mysqli_errno() 函数

    返回最近调用函数的最后一个错误代码: <?php // 假定数据库用户名:root,密码:123456,数据库:RUNOOB $con=mysqli_connect("localhos ...

  4. CF812C Sagheer and Nubian Market 二分+贪心

    模拟赛给他们出T1好了~ code: #include <bits/stdc++.h> #define ll long long #define N 100006 #define setI ...

  5. robotframework出现错误:Keyword 'AppiumLibrary.Open Application' expected 1 to 2 non-keyword arguments,got 5.

    robotframework官网: http://robotframework.org/#introduction -------------- 出现的场景: 由于一开始不了解robotframewo ...

  6. leetcode解题报告(8):Remove Element

    描述 Given an array and a value, remove all instances of that value in place and return the new length ...

  7. stark项目流程

    1 创建Django项目 2 创建app python manage.py startapp app名 3 文件配置 app配置 静态文件配置 创建文件夹,下载bootstrap,jquery 归档文 ...

  8. codeforces1213F tarjan缩点+拓扑排序

    题意 给定两个长度为n的排列p和q,构造一个字符串s满足\(s[p_i]<=s[p_{i+1}]\)和\(s[q_i]<=s[q_{i+1}]\),且满足字符串中不同字符的个数不少于k. ...

  9. lxr看代码的时候出现中文乱码问题

    修改lxr.conf 修改 , 'encoding'    => 'utf-8',为utf-8

  10. Atcoder ABC 139E

    Atcoder ABC 139E 题意: n支球队大循环赛,每支队伍一天只能打一场,求最少几天能打完. 解法: 考虑抽象图论模型,既然一天只能打一场,那么就把每一支球队和它需要交手的球队连边. 求出拓 ...