摘要: java.util.Arrays提供大量的工具方法来操作数组,这些方法全是静态方法。1 便捷创建Listpublic static List asList(T... a)返回一个受指定数组支持的固定大小的列表。public static List asList(T... a) { ... 阅读全文
posted @ 2015-04-16 20:58 凝静志远 阅读(429) 评论(0) 推荐(0) 编辑
摘要: 解决方案:/etc/sysconfig/network/etc/hosts$hostname这三处的主机名都要一样。具体参考:http://blog.itpub.net/28254374/viewspace-1059607/ 阅读全文
posted @ 2015-04-15 22:06 凝静志远 阅读(403) 评论(0) 推荐(0) 编辑
摘要: JVM类加载机制分两部分来总结: (1)类加载过程 (2)类加载器 一、JVM类加载过程 类的加载过程:加载 →连接(验证 → 准备 → 解析)→ 初始化。 类的生命周期:加载 →连接(验证 → 准备 → 解析)→ 初始化 → 使用 → 卸载。 1 加载 1.1 加载阶段要做的3件事情 通过一个类的 阅读全文
posted @ 2015-04-15 10:05 凝静志远 阅读(384) 评论(0) 推荐(0) 编辑
摘要: 下图展示了Java容器类库的完备图,包括抽象类和遗留构件(不包括Queue的实现)。常用的容器用黑色粗线框表示,点线框表示接口,虚线框表示抽象类,实线框表示类,空心箭头表示实现关系。Produce表示任意的Map对象可以生成Collection对象,任意的Collection对象可以生成Iterat... 阅读全文
posted @ 2015-04-14 21:18 凝静志远 阅读(283) 评论(0) 推荐(0) 编辑
摘要: 从字节码层面来看,Java中的所有方法调用,最终无外乎转换为如下几条调用指令。invokestatic: 调用静态方法。invokespecial: 调用实例构造器方法,私有方法和父类方法。invokevirtual: 调用所有的虚方法。invokeinterface: 调用接口方法,会在运行时再确... 阅读全文
posted @ 2015-04-14 18:03 凝静志远 阅读(2558) 评论(0) 推荐(1) 编辑
摘要: 数组变量 VS 数组对象先看一例子:int[] primitiveArray; //在栈中声明了一个引用变量,暂时还没指向任何对象primitiveArray = new int[5]; //在堆中创建了一个数组对象,并将这个对象的引用复制给primitiveArray。这个数组对象中的每个数... 阅读全文
posted @ 2015-04-13 13:13 凝静志远 阅读(176) 评论(0) 推荐(0) 编辑
摘要: JDK中除了包含与开发密切相关的jar包外,还包含了很多非常实用的工具。在%JAVA_HOME%\bin\目录下面除了命令行工具外,还包括了几个强大的可视化工具。这些工具可以辅助我们开发、调试应用程序以及监控虚拟机状态,因此尤其是对于开发人员而言,熟练掌握这些工具非常有必要。随JDK1.8一起发布的 阅读全文
posted @ 2015-04-10 15:51 凝静志远 阅读(396) 评论(0) 推荐(0) 编辑
摘要: JVM学习笔记:字节码执行引擎 移步大神贴:http://rednaxelafx.iteye.com/blog/492667 阅读全文
posted @ 2015-04-10 12:54 凝静志远 阅读(138) 评论(0) 推荐(0) 编辑
摘要: JVM执行Java程序的过程中,会使用到各种数据区域,这些区域有各自的用途、创建和销毁时间。根据《Java虚拟机规范》,JVM包括下列几个运行时数据区域,如下图所示: 其中红色部分是线程私有的,即每个线程各自都有自己的一份。绿色部分是各个线程共享的。 1.PC寄存器(The pc Register) 阅读全文
posted @ 2015-04-09 23:10 凝静志远 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 1 JVM在java平台中的位置 1.1 Java平台组成 Java平台主要由Java虚拟机和Java API这两部分组成。参考Oracle官网。 1.2 java平台结构图 JDK1.2开始,迫于Java运行始终笔C++慢的压力,JVM的结构也慢慢发生了一些变化,JVM在某些场景下可以操作一定的硬 阅读全文
posted @ 2015-04-08 20:47 凝静志远 阅读(457) 评论(1) 推荐(0) 编辑