随笔分类 -  Java

摘要:JVM 通过 垃圾收集-GC 自动管理内存堆中对象内存的分配和回收。JVM 通常采用分代垃圾收集器,以便于整理内存碎片。分代垃圾收集器就是基于对象不同生命周期,将堆分成不同的内存区域,然后组合使用不同的垃圾收集算法,可简单认为分为两部分组成: Young Generation:年轻代,由Eden和两 阅读全文
posted @ 2017-03-17 10:31 创心coder 阅读(570) 评论(0) 推荐(1)
摘要:JVM 是一种抽象的计算机,基于堆栈架构,它有自己的指令集和内存管理,是 Java 跨平台的依据,JVM解释执行字节码,或将字节码编译成本地代码执行。Java 虚拟机体系结构如下: Class File Class File 是平台无关的二进制文件,包含着能被JVM执行的字节码,其中多字节采用大端序 阅读全文
posted @ 2017-03-10 23:30 创心coder 阅读(389) 评论(0) 推荐(0)
摘要:Java采用UTF-16编码作为内码,也就是说在JVM内部,文本是用16位码元序列表示的,常用的文本就是字符(char)和字符串(String)字面常量的内容。注:UTF-16是Unicode字符集的一种编码方案。 Java字符和字符串存在于以下几个地方: Java源码文件,*.java,可以是任意 阅读全文
posted @ 2017-02-28 15:01 创心coder 阅读(6649) 评论(0) 推荐(0)
摘要:大二就买了这本书,如今再看这本书,看到了一些以前没看的细节,也有了不同的体会。本文使用第4版,整理每章的笔记心得。老外的书有个特点,他会花费大量的文字去阐述一个概念,这比堆代码强多了。 第 1 章 对象导论 1.1 抽象 抽象是计算机最重要的概念之一。抽象就是从杂乱的事物表象中,提取出对待解决问题来说最关键的部分内容。C 在解决问题时,主要是基于计算机的结构进行抽象,而不是基于所要解决的问... 阅读全文
posted @ 2016-12-16 18:37 创心coder 阅读(536) 评论(0) 推荐(1)
摘要:HSDB 是专门用于调试 HotSpot VM 的调试器,它是一个图形化界面。与之对应的还有个 CLHSDB-Command Line HotSpot Debugger,命令行调试界面。下面是启动命令:java -cp .;%JAVA_HOME%/lib/sa-jdi.jar sun.jvm.hotspot.HSDB # 启动图形界面 java -cp .;%JAVA_HOME%/lib/sa... 阅读全文
posted @ 2016-12-03 21:38 创心coder 阅读(1397) 评论(0) 推荐(0)
摘要:jdb 是一个简单的命令行调试器,可以调试本地或远程 Java Virtual Machine。jdb [ options ] [ class ] [ arguments ] options 命令行参数 class 调试的类名称 arguments main函数的参数 1. 开始调试 有两种方式启动调试,一个是新启动一个 JVM 加载指定的类,然后在开始执行指令时停止;另一个是连接到一个... 阅读全文
posted @ 2016-12-03 19:10 创心coder 阅读(497) 评论(0) 推荐(0)
摘要:一个 Class 文件描述了类或接口的字段,方法,父类,访问权限等全部信息。其实,它只是一种能被 JVM 识别的数据格式,就和 UDP 8字节头部一样,这就是规范,标准!所谓“不闻不若闻之,闻之不若见之,见之不若知之,知之不若行之,学至于行而止矣,行之,明也”。本文最后将动手分析一个 Class 文件的字节和反编译后的伪汇编语言,来探讨其结构。 本文将介绍: Class 头部信息 Cl... 阅读全文
posted @ 2016-11-24 21:37 创心coder 阅读(320) 评论(0) 推荐(0)
摘要:整理如下,用于以后查找: Opcode Mnemonics Note Constants 0x00 nop 无动作 0x01 aconst_null 把 null 推到操作数栈 0x02 iconst_m1 把 int 常量 –1 推到操作数栈 0x03 iconst_0 把 int 常量 0 推到操作数栈 0x04 iconst_1 把 int 常量 1 推到操作数栈 ... 阅读全文
posted @ 2016-11-24 14:59 创心coder 阅读(635) 评论(0) 推荐(1)