大战Java虚拟机【0】——目录
发现一直在上层应用更新博客的我,突然发现也是时候同时更新一波基础知识了。然后就发现了一个点我还没有更新过,那就是Java虚拟机。
很多人在学习Java的时候都或多或少接触过一点,然后几乎有下面几种情况。
第一种,被吹的很大:学Java怎么可以不学习虚拟机,不学习虚拟机你怎么写程序,你必须学习虚拟机才是真正的Java开发工程师。
第二种,被忽视了:虚拟机?什么东西?没必要吧,学了和没学一样呀~
第三种,面试:面试一定会问,我一定要学,不然面试答不出来。
就这几种情况我在哪里好像已经说过了,没错就是学习设计模式的时候,这两者都有一个共性就是好像学了没学一样。
所以这里就有了和设计模式差不多的一个系列。
下面说说这个系列需要准备学习的点:
1、了解学习Java虚拟机基础
2、知道如何通过Java虚拟机知道程序出现问题的原因
3、如何去调节参数优化虚拟机
4、明白学习Java虚拟机的目的
然后说说如何学习,遵循下面几个线
1、《深入理解Java虚拟机》不多说,被很多人推荐肯定有它的好处
2、别人的博客,很多博客已经详细解读了
3、实践,不写写代码,不看看日志,不反编译一下,很多东西光有理论是不够的
你需要什么
首先你需要保证有足够的耐心,人最讨厌的事情就是做了没有收获的事情,而这可能就是。
你需要有一定的Java基础,并且已经有一定的开发经验,不然还是为时过早。
放平心态,没有什么是一定很难的,慢慢啃总能啃下来。
大战Java虚拟机【0】——目录的更多相关文章
- 大战Java虚拟机【2】—— GC策略
前言 前面我们已经知道了Java虚拟机所做的事情就是回收那些不用的垃圾,那些不用的对象.那么问题来了,我们如何知道一个对象我们不需要使用了呢?程序在使用的过程中会不断的创建对象,这些所创建的对象指不定 ...
- 大战Java虚拟机【1】—— 内存
前言 要了解Java虚拟机首先要知道的基础就是内存.虚拟机存在的意义就是对内存进行管理,因为不用人为的去管理每个对象的内存,所以才让java使用起来那么方便,不用像c.c++那样去free. 运行时数 ...
- 罗汉果与Java虚拟机系列目录与说明
声 明 罗汉果与Java虚拟机系列博文仅为本银结构性整合Java虚拟机知识的笔记和日常JVM问题的DEBUG记录.放到网上主要是为了方便自己今后查看.顺带能帮助到别人就更奈斯了. 目 录 ...
- 《深入理解java虚拟机》-目录结构
第一部分 走进Java第1章 走进Java 第二部分 自动内存管理机制 第2章 Java内存区域与内存溢出异常2.1 概述2.2 运行时数据区域2.2.1 程序计数器2.2.2 java虚拟机栈2.2 ...
- 《深入理解Java虚拟机》目录
第一部分 走进Java 第1章 走进Java 第二部分 自动内存管理机制 第2章 Java内存区域与内存溢出异常 2.2 运行时数据区域 2.3 HotSpot虚拟机对象探秘 第3章 垃圾收集器与 ...
- 大战Java虚拟机【3】—— 类加载机制
前言 当你的代码编译成class文件之后,那么虚拟机如何加载这些文件呢?我们需要知道虚拟机到底做了什么样的事情. 类的生命周期 加载--链接---初始化----使用---卸载 类加载过程 1.加载 读 ...
- 深入理解Java虚拟机:虚拟机类加载机制
目录 7.1 概述 7.2 类加载的时机 类的生命周期 5种情况需要"初始化" 7.3 类加载的过程 1.加载 2.验证 3.准备 4.解析 5.初始化 7.4 类加载器 类与类加 ...
- 深入理解Java虚拟机:垃圾收集器与内存分配策略
目录 3.2 对象已死吗 判断一个对象是否可被回收 引用类型 finalize() 回收方法区 3.3. 垃圾收集算法 1.Mark-Sweep(标记-清除)算法 2.Copying(复制)算法 3. ...
- 深入理解Java虚拟机(第2版) 笔记目录
本篇为读深入理解Java虚拟机(第2版)一书的笔记目录. Java 运行期数据区 Java 垃圾回收算法 Java 内存分配策略 Java 类文件结构 Java 加载.链接.初始化 Java 类加载器
随机推荐
- 第六章 对象-javaScript权威指南第六版(二)
通过原型 继承创建一个新对象,对于这一个函数的有说不出的感觉,看看语句都很简单,深层次的东西就是不知道 function inherit(p) { if(p == null) throw TypeE ...
- Handler Timer TimerTask ScheduledExecutor 循环任务解析
使用Handler执行循环任务 private Handler handler = new Handler(); private int mDelayTime = 1000; private Runn ...
- Android SQLite数据库升级,怎么做(事物更改)
SQLiteOpenHelper // 如果数据库文件不存在,只有onCreate()被调用(该方法在创建数据库时被调用一次) public abstract void onCreate(SQLite ...
- 怎么修改kodexplorer网盘下的版权
前言: 要说kodexplorer,可是个好东西,在线web管理服务器文件,着实是网站管理员的好助手.内置的adminer管理数据库,用起来也是很顺手. 这么好的工具,还是免费的.但就是页面底部有ko ...
- 什么是 ajax?----异步 javascript 和 xml
GET 用于请求服务器数据 POST 用于上传数据到服务器,或者修改服务器数据 ajax 异步通信,实现页面的局部刷新,按需获取数据,节约带宽,带来更好的用户体验 客户端与服务器在不必刷新浏览器的情况 ...
- Mac自动化环境
1. JDK安装 下载JDK for Mac 我这里使用的是 jdk-7u79-macosx-x64.dmg 验证安装open Terminal java -version java versio ...
- linux df -i 100%处理
发现空间是足够的,然后df -i 查看了下inodes,发现根目录下的inodes值使用率为100%了 解决方法:通过以下脚本进行检查,查看到底哪个目录下面的文件最多: find / -xdev -p ...
- SELECT 语句
常见表的操作 查看数据库的表 show table 查看表结构 desc 表名 删除表 drop table表 修改表的结构 添加列 alter table 表名 add 列名 ...
- -bash:syntax error near unexpected token '('
在Xshell5中编写int main(int argc,char** argv)时, 出现-bash:syntax error near unexpected token '(' : 可是我是按照 ...
- vi 配置
vim ~/.vimrc source ~/.vimrc 添加相关配置 一直生效 0 行首 $ 行尾 spacebar 空格键: 合并多行 spaceba ...