1. Java内存区域 1.1 运行时数据区 Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。主要包括:程序计数器、虚拟机栈、本地方法栈、Java堆、方法区(运 行时常量池)、直接内存。 程序计数器 程序计数器(Program Counter Register) ...
分类:
编程语言 时间:
2020-01-05 22:37:11
阅读次数:
95
常量池(也称常量表):主版本号之后就是常量池的开始位置;java类所对应的常量池主要由常量池数量和常量池数组两部分组成,常量池数量是主版本号之后的两个字节;常量池数组在常量池数量之后,常量池数组中不同元素的类型,结构是不同的,所以该数组长度是不同的,但是数组中的每一种元素的第一个字节是标记位是一个u... ...
分类:
编程语言 时间:
2020-01-05 18:36:56
阅读次数:
85
1.适配器模式(Adapter):将原来不兼容的类组合,现有类通过适配器转换为目标需要的类 成为目标对象并拥有原有的功能--实现目标接口,并拥有原有类或继承原有类-->转换它 (1)FileInputStream-->InputStreamReader FileOutputStream-->Outp ...
分类:
其他好文 时间:
2020-01-05 15:51:20
阅读次数:
77
package com.atzhangwl.jvm.classloader;/** * @ClassName Run_02 * @Description final修饰的变量会被存入调用这个常量的方法的常量池中,本质上调用类并没有直接引用到定义常量的类,因此并不会触发 * 定义常量类的初始化 注意: ...
分类:
其他好文 时间:
2020-01-04 12:35:14
阅读次数:
53
总结 javap是jdk自带的反解析工具。它的作用就是根据class字节码文件,反解析出当前类对应的code区(汇编指令)、本地变量表、异常表和代码行偏移量映射表、常量池等等信息。 javap的用法格式: javap <options> <classes> 其中classes就是你要反编译的clas ...
分类:
编程语言 时间:
2020-01-02 19:06:15
阅读次数:
134
[toc] Java之String类常用API ,String类被final修饰,代表的是最终类。 字符串在内存中以字符数组的形式来存储 字符串是常量,本身被存储在方法区的常量池中,只要字符串的实际值是一样的,那么用的就是同一个字符串,意思是可以被共享。 字符串都是String类的实例。 以下所有方 ...
分类:
编程语言 时间:
2019-12-29 18:13:05
阅读次数:
93
String a = "abc"; //返回String必须是常量池的 String intern = a.intern(); //长度 int length = a.length(); //指定位置的字符 char charAt = a.charAt(0); //是否空串 boolean empt ...
分类:
其他好文 时间:
2019-12-29 16:56:58
阅读次数:
111
一.String问题答疑String字符串是如何设计与实现考量的?String字符串缓存intern()方法,由永久代移到堆中。String的演化,Java9中底层把char数组换成了byte数组,占用更少的空间二.String的创建机理由于String在Java世界中使用过于频繁,Java为了避免在一个系统中产生大量的String对象,引入了字符串常量池。其运行机制是:创建一个字符串时,首先检查
分类:
编程语言 时间:
2019-12-27 15:17:08
阅读次数:
88
内存管理 内存分配和内存释放 内存分配由程序完成,内存释放由GC完成 运行时数据区域 (1)程序计数器(program counter register) 一块较小的内存空间 当前线程所执行的字节码的行号指示器,字节码解释器在工作的时候就是通过改变程序计数器的值来选取下一跳要执行的指令 多线程环境下 ...
分类:
其他好文 时间:
2019-12-27 13:09:40
阅读次数:
94
一、javap命令简述 javap是jdk自带的反解析工具。它的作用就是根据class字节码文件,反解析出当前类对应的code区(汇编指令)、本地变量表、异常表和代码行偏移量映射表、常量池等等信息。当然这些信息中,有些信息(如本地变量表、指令和代码行偏移量映射表、常量池中方法的参数名称等等)需要在使 ...
分类:
编程语言 时间:
2019-12-27 11:25:14
阅读次数:
100