操作系统 进程和线程 基本概念 通信 进程间通信 线程间通信 线程间同步方式 有进程后为什么需要线程 单核机器上写多线程程序是否考虑要加锁? 线程需要保存哪些上下文,SP、PC、EAX这些寄存器是干嘛用的 多进程和多线程的使用场景 并发和并行 Linux虚拟内存空间 程序的内存结构 缺页中断 页表寻 ...
分类:
其他好文 时间:
2020-11-10 11:11:11
阅读次数:
5
![image-20201109194801135](https://typora-oss.oss-cn-beijing.aliyuncs.com/image-20201109194801135.png) ![image-20201109194821190](https://typora-oss.o... ...
分类:
其他好文 时间:
2020-11-10 11:08:20
阅读次数:
7
虚拟机整体内存结构如下: 1. 内存区域 内存区域核心包含以下几部分:程序计数器、JAVA虚拟机栈、本地方法栈、方法区和堆。有的是线程级别的【一个线程会单独启动一个内存区域】,比如:程序计数器、JAVA虚拟机栈、本地方法栈。有的是虚拟机启动就存在的,不同线程共享使用。比如:堆和方法区。所有线程加载的 ...
分类:
其他好文 时间:
2020-11-10 10:30:43
阅读次数:
2
1. 判断对象存活 回收内存首先需要判断,那些内存需要回收。即需要判断那些对象还存活着,则这些是不需要被回收的。 (1) 引用计数法 原理:对象中添加一个引用计数器。被引用则累计。则计数器中数值大于0,则代表仍然被引用,不能被回收。 缺点:不能解决循环引用的情况。 (2) 可达性分析法 原理:从一些 ...
分类:
其他好文 时间:
2020-11-10 10:27:32
阅读次数:
8
输入与输出 将数据读入到虚拟机中==>输入 将数据从内部到外部存储起来或显示出来(如输出到控制台)==>输出 IO概念 在传输数据的时候,需要一个流(对象)的概念。而流简单而言就是内存与存储设备之间传输数据的通道,管道 JVM(虚拟机) 磁盘上的文件作为数据源。 流< 文件 虚拟机 将磁盘上的文件传 ...
分类:
编程语言 时间:
2020-11-08 17:17:06
阅读次数:
22
我们知道C/C++语言中有断言的功能(assert)。在Java SE 1.4版本以后也增加了断言的特性。 断言是为了方便调试程序,并不是发布程序的组成部分。理解这一点是很关键的。 默认情况下,JVM是关闭断言的。因此如果想使用断言调试程序,需要手动打开断言功能。在命令行模式下运行Java程序时可增 ...
分类:
编程语言 时间:
2020-11-07 17:47:05
阅读次数:
23
进程信息jpsjps -l 输出应用程序main.class的完整package名或者应用程序jar文件完整路径名jps -v 输出传递给JVM的参数 查看正在运行的java程序的扩展参数jinfo 16439 线程信息 jstack 更多https://www.cnblogs.com/duanxz ...
分类:
其他好文 时间:
2020-11-07 17:45:11
阅读次数:
22
TechRoad 1. Architecture <Java Application architecture> modular, Spring context config <EIS> technology decision, base eis-platform-brms <MS PPP> cha ...
分类:
其他好文 时间:
2020-11-07 16:51:15
阅读次数:
24
一. 现象 前段时间公司线上环境的一个Java应用因为OOM的异常报警,导致整个服务不可用被拉出集群,本地模拟重现的现象如下: 当时的解决方案是增加metaspace的容量:-XX:MaxMetaspaceSize=500m,从原来默认的256m改为500m,虽然没有再出现oom,但这个只是临时解决 ...
分类:
Web程序 时间:
2020-11-07 15:33:27
阅读次数:
22
1. 异常的概念 异常,就是不正常的意思。在生活中:医生说,你的身体某个部位有异常,该部位和正常相比有点不同,该部位的功能将 受影响. 在程序中的意思就是程序在执行过程中,出现的非正常的情况,最终会导致JVM的非正常停止。 异常发生的原因有很多,通常包含以下几大类: 用户输入了非法数据。 要打开的文 ...
分类:
编程语言 时间:
2020-11-06 02:38:57
阅读次数:
21