1.程序计数器:指向当前线程执行的字节码指令文件的地址和行号 为了在cpu将线程挂起,进行线程切换时,能够记录当前线程的执行进程,正确安全的执行完.2.虚拟机栈:(存储当前线程运行的方法的栈帧,只有等方法执行完栈帧才会出栈) 测试看在同一给方法中的多个方法. 用来执行对应的方法所需的数据,通过对方法 ...
分类:
其他好文 时间:
2020-03-22 14:06:10
阅读次数:
66
一.java程序的具体执行过程: 1.java源文件会被java编译器编译成字节码文件 2.然后由jvm中的类加载器加载各个类的字节码文件 3.加载完后,由jvm的执行引擎执行 备注:在执行的过程中jvm一段空间来存储数据:运行时数据区,也称jvm内存 二.根据jvm规范,jvm把内存划分为了如下几 ...
分类:
其他好文 时间:
2020-03-22 13:47:07
阅读次数:
59
/** * 在阅读别人写的源代码中,有时候可以看到同样功能的泛型方法中的参数可以写成 T t 或者 Class<T> cls * 那么,两者有什么区别呢? * * Class类,是代表加载到jvm中的类的字节码,这个类本身是泛型类,其后可以加<具体类>从而表示具体类的字节码类型, * 于是Class ...
分类:
编程语言 时间:
2020-03-21 09:15:59
阅读次数:
82
这是最近面试时被问到的1道面试题,本篇博客对此问题进行总结分享。 1. 新手常犯的错误 可能很多新手(包括当年的我,哈哈)第一时间想到的写法是下面这样的: 然后满怀信心的去运行,结果竟然抛 异常了,翻译成中文就是:并发修改异常。 是不是很懵,心想这是为什么呢? 让我们首先看下上面这段代码生成的字节码 ...
分类:
编程语言 时间:
2020-03-20 13:04:06
阅读次数:
75
Java虚拟机(JVM)是运行Java字节码的虚拟机 JVM可以理解的代码叫做字节码(.class文件) Java程序从源代码到运行一般分3步 : .java文件 .class文件 机器可以执行的二进制机器码 字节码到机器码的过程中,JVM 类加载器首先加载字节码文件,然后通过解释器 逐行解释执行, ...
分类:
其他好文 时间:
2020-03-20 10:51:56
阅读次数:
61
今天本人给大家讲解一下Java的反射基础技术,如有不对的或者讲的不好的可以多多提出,我会进行相应的更改,先提前感谢提出意见的各位了!!! 什么是反射? 反射它是根据字节码文件可以反射出类的信息、字段、方法、构造方法等内容,还可以创建对象调用方法,我们称它为反射技术。 如何通过反射获取Class对象了 ...
分类:
编程语言 时间:
2020-03-20 00:56:31
阅读次数:
80
1.1 什么是字节码? Java 在刚刚诞生之时曾经提出过一个非常著名的口号: “ 一次编写,到处运行(write once,run anywhere) ”,这句话充分表达了软件开发人员对冲破平台界限的渴求。“与平台无关”的理想最终实现在操作系统的运用层上: 虚拟机提供商开发了许多可以运行在不同平台 ...
分类:
编程语言 时间:
2020-03-19 20:08:21
阅读次数:
77
RE 1,babypy 对字节码硬怼,就可分析出大致逻辑是倒序后异或 c=[0x7d,0x03,0x7d,0x04,0x57,0x17,0x72,0x2d,0x62,0x11,0x4e,0x6a,0x5b,0x04,0x4f,0x2c,0x18,0x4c,0x3f,0x44,0x21,0x4c,0x ...
分类:
其他好文 时间:
2020-03-18 14:02:59
阅读次数:
95
1.热更新的概念 热更新就是动态下发代码,它可以使开发者在不发布新版本的情况下,修复 BUG 和发布功能。 一般这样的概念我会去整理它的输入什么,输出什么,来快速将抽象具体化。 热更新的输入是:代码的字节码文件 输出是:运行的结果是走新修改的文件逻辑得出来的 2.使用工具 使用的工具是阿里的Arth ...
分类:
其他好文 时间:
2020-03-17 19:43:11
阅读次数:
99
动态代理说明:将你提供的接口改造成和你这个类有关的代理对象。 Java动态代理案例和原理:https://www.cnblogs.com/jssj/p/11771408.html 我们无法像JVM一样不需要生成Java文件直接生成字节码。我们模拟就通过手工生成java,然后编译成Class文件来实现 ...
分类:
编程语言 时间:
2020-03-15 18:46:36
阅读次数:
55