1. 判断对象存活 回收内存首先需要判断,那些内存需要回收。即需要判断那些对象还存活着,则这些是不需要被回收的。 (1) 引用计数法 原理:对象中添加一个引用计数器。被引用则累计。则计数器中数值大于0,则代表仍然被引用,不能被回收。 缺点:不能解决循环引用的情况。 (2) 可达性分析法 原理:从一些 ...
分类:
其他好文 时间:
2020-11-10 10:27:32
阅读次数:
8
高并发,几乎是每个程序员都想拥有的经验。原因很简单:随着流量变大,会遇到各种各样的技术问题,比如接口响应超时、CPU load升高、GC频繁、死锁、大数据量存储等等,这些问题能推动我们在技术深度上不断精进。 在过往的面试中,如果候选人做过高并发的项目,我通常会让对方谈谈对于高并发的理解,但是能系统性 ...
分类:
其他好文 时间:
2020-11-08 17:21:16
阅读次数:
20
输入与输出 将数据读入到虚拟机中==>输入 将数据从内部到外部存储起来或显示出来(如输出到控制台)==>输出 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
一. 简介 Arthas是阿里在2019年9月份开源的一款java在线诊断工具,能够分析、诊断、定位java应用问题,例如:JVM信息、线程信息、搜索类中的方法、 跟踪代码执行、观测方法的入参和返回参数等等。 Arthas最大的特点是能在不修改代码和不需要重新发布的情况下,对业务问题进行诊断,包括查 ...
分类:
编程语言 时间:
2020-11-06 01:24:36
阅读次数:
25
是否值得付费?Oracle,OpenJDK等四大JVM性能全面对比导读:随着Java11的发布,OracleJDK成为收费软件,很多公司转向寻找OracleJDK的替代品。有很多人都会怀疑,OracleJDK和其他JDK之间有没有很大的性能差异,本文作者通过多方面测试,给出这个问题的答案,适合Java程序员研读。市面上可供选择的JVM发行版还是有不少的。选择合适的JVM需要考虑不同的因素。性能是其
分类:
数据库 时间:
2020-11-06 01:04:25
阅读次数:
20