JVM学习笔记--类加载和字节码技术篇 在本系列内容中我们会对JVM做一个系统的学习,本片将会介绍JVM的类加载和字节码技术部分 我们会分为以下几部分进行介绍: 类文件结构 字节码指令 编译期处理 类加载阶段 类加载器 运行期优化 类文件结构 这一小节我们将简单介绍一下类的文件结构部分,简单阅读一下以下内容即可 整体文件展示 首先我们通过一个简单的HelloWorld文件来进行类文件结构介绍 首先我们给出Java文件代码: package cn.itcast.jvm.t5; // HelloWo…
字节码操作Javassist 字节码:字节码是设计被用来将代码高效的传送给多种软件平台.硬件平台,字节码的设计也实现了Java的平台无关性,字节码比机器码更抽象,它通常被认为是包含了一个可执行文件的二进制文件. Javassist是一个类库用于在java中编辑字节码.它允许在程序运行时定义一个新类在JVM加载时修改类文件 面向切面编程(AOP):Javassist可以动态在一个类中增加一个新的方法,或者是在调用者或者被调用者的前(before).后(after).周围(around)加代码. R…
一.概念 [基本] /** * */ package cn.sxt.jvm; import javassist.ClassPool; import javassist.CtClass; import javassist.CtConstructor; import javassist.CtField; import javassist.CtMethod; public class Test_0420_Javassist { public static void main(String[] args…
IO字节输入输出流 OutputStream:字节输出流 该抽象类是所有字节输出流的超类: 定义了一些共性的成员方法: 1.写入一个字节 void write(int b);//b表示字节 2.写入字节数组 void write(byte[] b);//写入一个字节数组 3.写入字节数组的一部分 void write(byte[] b,int off, int len);//off 表示起始索引,len表示写几个 4.刷新输出流,并强制写出所有缓冲的输出字节 void flush(); 5.关闭…
可能你只想简单的使用,暂时不想了解太多的知识,那么请看这里,了解一下如何读文件,写文件 读文件示例代码 File file = new File("D:\\test\\t.txt"); //这里的有两条斜杠,其实实际的路径为D:\test\t.txt,多的那一条斜杠是转义用的 InputStreamReader inputStreamReader = new InputStreamReader(new FileInputStream(file), "GBK"); /…
JVM虚拟机 Java虚拟机有自己完善的硬件架构(处理器.堆栈.寄存器等)和指令系统 Java虚拟机是一种能运行Java bytecode的虚拟机 JVM并非专属于Java语言,只要生成的编译文件能匹配JVM对载入编译文件格式要求,任何语言都可以交由JVM运行,比如Scala.Groovy.Fantom等,见Java虚拟机维基百科 JVM虚拟机除了Sun开发的HotSpot外,还有BEA.IBM.微软.等公司都有开发.见<深入理解Java虚拟机(第二版)> 查看自己用的JVM:cmd->…
<Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多态 第七章 接口与多态 第八章 异常处理 第九章 Collection与Map 第十章 输入/输出 第十一章 线程与并行API 第十二章 Lambda 第十三章 时间与日期 第十四章 NIO与NIO2 第十五章 通用API 第十六章 整合数据库 第十七章 反射与类加载器 第十八章 自定义类型.枚举 补充:Ja…
20145330第六周<Java学习笔记> . 这周算是很忙碌的一周.因为第六周陆续很多实验都开始进行,开始要准备和预习的科目日渐增多,对Java分配的时间不知不觉就减少了,然而第十和十一章内容相对有很多,所以效率是一件很重要的事情. 第十章 输入与输出 Java将输入输出抽象化为串流,数据有来源及目的地,衔接两者的是串流对象. 比喻来说,数据就好比水,串流就好比水管,通过水管的衔接,水由一端流向另一端 如果想要将数据从来源取出,可以使用输入串流. 如果想要将数据写入目的地,可以使用输出串流.…
Java学习笔记4 1. JDK.JRE和JVM分别是什么,区别是什么? 答: ①.JDK 是整个Java的核心,包括了Java运行环境.Java工具和Java基础类库. ②.JRE(Java Runtime Environment,Java运行环境),运行JAVA程序所必须的环境的集合,包含JVM标准实现及Java核心类库. ③.JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种…
java学习笔记01--数据类型 java数据类型划分 分为两大类型: 1)基本数据类型:类似于普通的值. 2)引用数据类型:传递的是内存的地址. 浮点类型实际上就是表示小数. java基本数据类型 数据的溢出 当整数的数据大小超出了可以表示的范围,而程序中又没有做数值范围的检查时,这个整型变量所输出的值将发生絮乱,且不是预期的运行结果. 例如:求出整型的最大值 public class T { public static void main(String[] args) { int max =…