![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java 虚拟机
文章平均质量分 71
虚拟机
CAT_cwds
笨鸟先飞,欢迎大佬指摘文章
展开
-
5.堆内存溢出以及导出Excel表格超时问题解决(性能优化心得)
堆内存溢出和导出Excel表格超时问题原创 2022-09-13 15:24:56 · 1104 阅读 · 0 评论 -
5.堆内存溢出以及导出Excel表格超时问题解决(性能优化心得)
业务场景是主要是查询或者导出某家分销商一个月内产生的退票退款订单数据。由于涉及到机密数据,因此不便展示效果图。只记录一下遇到的两个经典的问题以及解决思路以供参考。出现的问题:因为测试环境测试不出生产环境的问题,生产环境订单量较大,我看了一下订单加在一起有三千多万条,因此部署到生产环境之后导出功能出现了两个问题,一个是内存溢出,另一个是导出超时。思路:因为导出的数据格式和查询的数据格式相同...原创 2022-05-12 11:07:00 · 787 阅读 · 0 评论 -
GC 可达性分析中哪些算是GC ROOTS?
首先那肯定还得是看看概念了,在JVM中,什么可以作为GC Root呢?虚拟机栈(栈帧中的本地变量表)中引用的对象。 方法区中类静态属性引用的对象。 方法区中常量引用的对象。 本地方法栈中JNI(即一般说的Native方法)引用的对象。class v { b,c}class b{ d}class d{ c}class c{ b}1. fun(...){2. v a = new A;3. a.b = new B;4. a.c = new C;5.转载 2021-03-04 16:36:34 · 489 阅读 · 1 评论 -
java值传递和引用传递
在牛客网上做题,做错了一道关于值传递和引用传递的问题,如下:class Value{ public int i=15;}public class Test{ public static void main(String argv[]){ Test t=new Test( ); t.first( ); }public void first( ){ int i=5; Value v=new Value( ); v.i=原创 2021-03-01 17:13:38 · 211 阅读 · 0 评论 -
Java-类加载机制
通过灵活定义classloader的加载机制,我们可以完成很多事情,例如解决类冲突问题,实现热加载以及热部署,甚至可以实现jar包的加密保护。本篇回答从classloader的原理解析讲起,详细解读一下背景和实际使用场景。什么是classloaderclassloader顾名思义,即是类加载。虚拟机把描述类的数据从class字节码文件加载到内存,并对数据进行检验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。了解java的类加载机制,可以快速解决运行时转载 2021-03-03 08:39:32 · 204 阅读 · 0 评论 -
栈和栈帧
堆栈(stack)又称为栈或堆叠,是计算机科学里最重要且最基础的数据结构之一,它按照FILO(First In Last Out,后进先出)的原则存储数据。栈的相关概念:栈顶和栈底:允许元素插入与删除的一端称为栈顶,另一端称为栈底。 压栈:栈的插入操作,叫做进栈,也称压栈、入栈。 弹栈:栈的删除操作,也叫做出栈。下面是栈的示意图,从图中可以清楚的看到,不管是插入数据还是删除数据,都是在栈顶进行的,还有就是FILO原则,可以看到,如果你想取出B的值,那么你必须先要将B的上面的C取出,要取出C的值转载 2021-02-27 16:19:28 · 1029 阅读 · 0 评论 -
a == MESSAGE以及(b+c)== MESSAGE研究
在牛客网回顾以前的错题,有一道题再次出现问题,因此在这里分析一下这道题以及背后的原理private static final String MESSAGE = "taobao";public static void main(String [] args){ String b = "tao"; String c = "bao"; System.out.println(a == MESSAGE); System.out.println((b+c) == MESSAGE);}https:原创 2021-02-26 13:10:17 · 372 阅读 · 0 评论