Java基础知识
文章平均质量分 65
hello想笑一下
点滴积累,只为汇成江海
展开
-
Java文件编译与反编译(二):class文件解析
一、替换命令(substitute)替换命令默认情况下,只替换每行中出现的第一处。要替换不同地方出现的文本必须使用【替换标记】,替换标记会在替换命令字符串之后设置替换标记(flags)格式:s/pattern/replacement/flags有四种可用的替换标记:数字:表明新文件将替换第几处模式匹配的地方g :表明新文件将会替换所有匹配的文本p : 表明原先行的内容要打印出来...原创 2018-09-20 14:02:38 · 804 阅读 · 0 评论 -
Java文件编译与反编译(一):javac命令和javap命令
Java文件编译与反编译(一):javac命令和javap命令1.创建一个Test.java文件,并输入内容public class Test{ private int m; public int inc(){ return m + 1; }}2.使用javac命令编译Test.java文件,得到Test.class文件$javac Test.java 3.使用Subli...原创 2018-09-19 15:50:29 · 15391 阅读 · 0 评论 -
JVM堆栈内存模型
1. 程序计数器(线程私有)Program Counter Register1)可以看作当前线程所执行的字节码的行号指示器;2)Java虚拟机的多线程是通过线程轮流切换并分配处理器执行时间的方式来实现的,为了线程切换后能恢复到正确的执行位置,每条线程都需要有一个独立的程序计数器,各个线程之间计数器互不影响,独立存储;3)此区域不存在OutOfMemoryError的异常2....原创 2018-11-27 22:13:38 · 576 阅读 · 0 评论 -
JVM类加载过程及类装载器
1.类的生命周期加载(loading)——验证(verification)——准备(preparation)——解析(resolution)——初始化(initialization)——使用(using)——卸载(unloading)验证、准备、解析 三个阶段统称为 连接(linking)1.1. 只有5种情况必须立即对类进行“初始化“:遇到new、getstatic、putsta...原创 2018-11-27 22:16:20 · 299 阅读 · 0 评论 -
JVM 垃圾收集算法及垃圾收集器
1.对象的创建在类加载检查通过后,虚拟机将为新生对象分配内存,对象所需内存的大小在类加载完成后就已经确定了。为对象分配空间等同于把一块确定大小的内存从Java堆中划分出来。有如下两种方式:指针碰撞(Bump the Pointer):假设Java堆中内存是绝对规整的,所有用过的内存都放在一边,空闲的内存放在一边,中间放着一个指针作为分界点的指示器,那所分配内存就仅仅是把那个指针向空闲的那边...原创 2018-11-27 22:18:04 · 176 阅读 · 0 评论 -
Java Class文件结构
Class文件是一组以8位字节为基础单位的二进制流。当遇到需要占用8位字节以上空间的数据项时,则会按照【高位在前】的方式分割成若干个8位字节进行存储,按照Java虚拟机规范的规定,Class文件结构只有两种数据类型:无符号数和表1. 无符号数无符号数属于基本的数据类型,以u1、u2、u4、u8来分别代表1个字节,2个字节,4个字节,8个字节的无符号数。无符号数可用来描述数字、索引引用、数量...原创 2018-11-28 12:56:17 · 1151 阅读 · 0 评论