1.程序计数器:指向当前线程执行的字节码指令文件的地址和行号 为了在cpu将线程挂起,进行线程切换时,能够记录当前线程的执行进程,正确安全的执行完.2.虚拟机栈:(存储当前线程运行的方法的栈帧,只有等方法执行完栈帧才会出栈) 测试看在同一给方法中的多个方法. 用来执行对应的方法所需的数据,通过对方法 ...
分类:
其他好文 时间:
2020-03-22 14:06:10
阅读次数:
66
Java虚拟机的内存可以分为三个区域:栈stack、堆heap、方法区method area。 栈的特点如下: 1. 栈描述的是方法执行的内存模型。每个方法被调用都会创建一个栈帧(存储局部变量、操作数、方法出口等) 2. JVM为每个线程创建一个栈,用于存放该线程执行方法的信息(实际参数、局部变量等 ...
分类:
编程语言 时间:
2020-03-12 20:24:26
阅读次数:
92
概述:记得有一次被一个技术人员面试,问我String是什么类型,如何和其他基本数据类型之间进行转换,那么今天就深入学习一下String 1、首先了解下JVM的体系结构图: 注意: 栈: 每个Java虚拟机线程都有自己的Java虚拟机栈,Java虚拟机栈用来存放栈帧,每个方法被执行的时候都会同时创建一 ...
分类:
其他好文 时间:
2020-03-03 10:44:21
阅读次数:
88
jvm全景图 其中蓝色区域是线程独有的,黄色区域是线程共享的 分析方法 里面的各种指令,可以用 jvm指令手册一个一个查 一个线程的全景图 程序计数器:和计组一样,是存放下一条指令所在单元的地址的地方。 栈帧: 一个方法对应一块栈帧内存区域。 放自己方法里面各种变量用的。 其中局部变量表一般是放局部 ...
分类:
其他好文 时间:
2020-02-20 17:19:48
阅读次数:
62
名称 说明 Add 将两个值相加并将结果推送到计算堆栈上。 Add.Ovf 将两个整数相加,执行溢出检查,并且将结果推送到计算堆栈上。 Add.Ovf.Un 将两个无符号整数值相加,执行溢出检查,并且将结果推送到计算堆栈上。 And 计算两个值的按位“与”并将结果推送到计算堆栈上。 Arglist ...
分类:
其他好文 时间:
2020-02-02 13:53:48
阅读次数:
81
OOM 异常 (OutOfMemoryError) OOM 异常 (OutOfMemoryError) Java 堆溢出 Java 虚拟机栈和本地方法栈溢出 方法区和运行时常量池溢出 直接内存溢出 Java 堆溢出 出现标志:java.lang.OutOfMemoryError: Java heap ...
分类:
编程语言 时间:
2020-02-01 19:47:03
阅读次数:
109
概述 垃圾收集 Garbage Collection 通常被称为“GC”,它诞生于1960年 MIT 的 Lisp 语言,经过半个多世纪,目前已经十分成熟了。 jvm 中,程序计数器、虚拟机栈、本地方法栈都是随线程而生随线程而灭,栈帧随着方法的进入和退出做入栈和出栈操作,实现了自动的内存清理,因此, ...
分类:
其他好文 时间:
2020-01-26 19:18:20
阅读次数:
90
StackOverflowError 比较常见的问题,虚拟机栈中栈帧过多超出栈容量,常见发生在递归方法深度过深。 OutOfMemoryError java heap space java堆内存不足以放下新生成的对象实例,1.考虑是否程序中存在内存泄露导致大量不需要的实例仍然占用内存未被回收2.当前 ...
分类:
编程语言 时间:
2020-01-25 16:59:50
阅读次数:
75
垃圾回收器在回收垃圾之前第一件事就是判断哪些是可以被回收的对象,如何判断呢?我们可以根据该对象是否还有引用指向它来进行判断,如果有则不能回收,如果没有则可以回收,具体有以下几种算法:引用计数算法:给对象添加一个引用计数器,每当它被引用一次计数器就加一,当该引用失效时就减一,如果计数器的值为0就表示它要被垃圾收集器作为垃圾收集了。这种算法存在一个问题,就是如果对象之间互相循环引用,他们就不可能被垃圾
分类:
其他好文 时间:
2020-01-22 18:29:40
阅读次数:
115
https://bbs.pediy.com/thread-178926.htm 普通模式调用SendMessage、PostMessage,增强模式调用keybd_event,mouse_event、 SendInput发送键盘鼠标消息。只要HOOK 内核层的NtUserPostThreadMess ...
分类:
其他好文 时间:
2020-01-20 09:18:42
阅读次数:
110