老师前段时间给了我们本书—深入理解Java虚拟机,我有断断续续在看,为了更好的学习这本书,我就觉得我还是用博客的方式记录下来。
讲Java的历史和发展的,上次看的时候已经很久了,所以先记录下今天看的第二部分吧
第二章 Java内存区域与内存溢出异常
2.1 概述
对于用C或者C++开发的程序猿来说,在内存管理区域有一项任务—既拥有每一个对象的“所有权” 又要担负着每一个对象生命开始到结束的维护责任。 而在这项维护的工作对于用Java开发的程序猿来说就不用,因为我们有Java虚拟机,帮我们自动进行内存管理,不用每次new了之后写配对的delete/free代码。有了Java虚拟机帮我们以后,就不同意出现内存泄露和内存溢出的问题。看起来很爽的样子,但是我们需要去了解Java虚拟机的工作原理,当有Java虚拟机的自动内存管理机制帮助下还发生内存泄露和内存溢出问题时,我们就不会束手无策。
2.2 运行时数据区域
区域名称 作用 其他 程序计数器 存储用来控制分析。循环、异常处理县城恢复等基本功能的指令 线程私有 Java虚拟机栈 存储局部变量表、操作栈、动态链表、方法出口等信息 线程私有 本地方法栈 帮助本地方法访问虚拟机,为虚拟机用到的Native方法服务 线程私有 Java堆 存放实例对象 数据西线程共享 方法区 存储已经加载的类信息、常量、静态变量 线程共享Markdown 是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档,然后转换成格式丰富的HTML页面。 —— [ 维基百科 ]
使用简单的符号标识不同的标题,将某些文字标记为粗体或者斜体,创建一个链接等,详细语法参考帮助?。
本编辑器支持 Markdown Extra , 扩展了很多好用的功能。具体请参考Github.
Markdown Extra 表格语法:
项目 价格 Computer $1600 Phone $12 Pipe $1可以使用冒号来定义对齐方式:
项目 价格 数量 Computer 1600 元 5 Phone 12 元 12 Pipe 1 元 234定义 D
定义D内容
代码块语法遵循标准markdown代码,例如:
@requires_authorization def somefunc(param1='', param2=0): '''A docstring''' if param1 > param2: # interesting print 'Greater' return (param2 - param1 + 1) or None class SomeClass: pass >>> message = '''interpreter ... prompt''' 12345678910 12345678910生成一个脚注1.
用 [TOC]来生成目录:
前言第一部分第二部分快捷键Markdown及扩展 表格定义列表代码块脚注目录数学公式UML 图 离线写博客浏览器兼容
使用MathJax渲染LaTex 数学公式,详见math.stackexchange.com.
行内公式,数学公式为: Γ(n)=(n−1)!∀n∈N 。块级公式:x=−b±b2−4ac−−−−−−−√2a
更多LaTex语法请参考 这儿.
可以渲染序列图:
张三张三李四李四嘿,小四儿, 写博客了没?李四愣了一下,说:忙得吐血,哪有时间写。或者流程图:
开始我的操作确认?结束yesno 关于 序列图 语法,参考 这儿,关于 流程图 语法,参考 这儿.即使用户在没有网络的情况下,也可以通过本编辑器离线写博客(直接在曾经使用过的浏览器中输入write.blog.csdn.net/mdeditor即可。Markdown编辑器使用浏览器离线存储将内容保存在本地。
用户写博客的过程中,内容实时保存在浏览器缓存中,在用户关闭浏览器或者其它异常情况下,内容不会丢失。用户再次打开浏览器时,会显示上次用户正在编辑的没有发表的内容。
博客发表后,本地缓存将被删除。
用户可以选择 把正在写的博客保存到服务器草稿箱,即使换浏览器或者清除缓存,内容也不会丢失。
注意:虽然浏览器存储大部分时候都比较可靠,但为了您的数据安全,在联网后,请务必及时发表或者保存到服务器草稿箱。
