前言:总结一下类加载的过程,于静态代码块、静态变量、事例变量等一些构建方式。因为这部分挺绕的,容易出错。 1、在java中可以将对象分为两大体系:字节码对象和实例对象 1.1、字节码对象: 每个类在加载(将类读到内存)时都会创建一个字节码对象,且这个对象在一个JVM内存中是唯一的.此对象中存储的是类 ...
分类:
其他好文 时间:
2019-04-20 12:42:32
阅读次数:
216
上面已经聊过JVM是什么东东,也谈过了JVM内存的垃圾回收机制。这一篇博客我们来聊聊JVM运行时数据区域。 JVM运行时数据区域由5块部分组成,分别是堆,方法区,栈,本地方法栈,以及程序计数器组成。 可以根据内存是否线程共享划分成线程独享内存区域/线程共享内存区域。 我们从简单的部分开始吧 1.程序 ...
分类:
其他好文 时间:
2019-04-15 17:59:32
阅读次数:
174
概念 单例模式即一个JVM内存中只存在一个类的对象实例 分类 1、懒汉式 类加载的时候就创建实例 2、饿汉式 使用的时候才创建实例 当然还有其他的生成单例的方式,双重校验锁,枚举和静态内部类,文中会有介绍 实践 懒汉式 1)线程不安全,不可用 2)线程安全,同步方法,效率低,不推荐 3)线程不安全, ...
分类:
其他好文 时间:
2019-04-14 09:13:48
阅读次数:
141
压测webserver接口-数据库测试 1、压到1000并发时,应用服务器报两个错误,并且伴随着并发数的不断降低 具体错误如下 2、解决应用服务器报错方法 修改数据库的连接池,如图 修改jvm内存参数,如图: 修改监听请求的线程数,如图: --以上调优的连接数都是为了解决jdbc连接数不够的情况 把 ...
分类:
其他好文 时间:
2019-04-12 13:14:47
阅读次数:
150
某日 - 测试组 MM 要进行服务压测,询问本猿如何查看线上服务的jvm内存,cpu消耗情况。果断放下手中代码。为MM 耐心解惑 ~ ~ 1、启动项目的 .sh 方法内,启动配置下 添加配置信息: -Xms2048m -Xmx2048m 【可省略】 -Dcom.sun.management.jmxr ...
分类:
其他好文 时间:
2019-04-11 19:30:44
阅读次数:
179
Java内存模型是每个java程序员必须掌握理解的,这是Java的核心基础,对我们编写代码特别是并发编程时有很大帮助。由于Java程序是交由JVM执行的,所以我们在谈Java内存区域划分的时候事实上是指JVM内存区域划分。 首先,我们回顾一下Java程序执行流程: 如上图所示,首先Java源代码文件 ...
分类:
其他好文 时间:
2019-04-10 11:52:22
阅读次数:
181
Jira和Confluence部署在同一台服务器上,跑一段时间后,发现访问jira和confluence时,打开越来越缓慢。这是因为根据主机物理内存不同,默认的java虚拟机内存也会不同(一个较低值),有时候不够用,可以修改JAVA默认的JVM内存设置,改善内存不足导致的问题。操作如下: 1、Jir ...
分类:
其他好文 时间:
2019-04-06 00:16:29
阅读次数:
106
内存模型 1,程序计数器(Program Counter Register):程序计数器是一个比较小的内存区域,用于指示当前线程所执行的字节码执行到了第几行,可以理解为是当前线程的行号指示器。字节码解释器在工作时,会通过改变这个计数器的值来取下一条语句指令。 每个程序计数器只用来记录一个线程的行号, ...
分类:
其他好文 时间:
2019-04-04 16:01:11
阅读次数:
194
Tomcat Tomcat 默认配置的最大请求数是 150 当某个应用拥有 250 个以上并发的时候,应考虑应用服务器的集群。 当一个进程有 500 个线程在跑的话,那性能已经是很低很低了 Linux 每个进程中的线程数不允许超过 1000 在Java中每开启一个线程需要耗用1MB的JVM内存空间用 ...
分类:
其他好文 时间:
2019-04-03 16:25:40
阅读次数:
168
1.JVM运行时内存区域划分? 2.内存溢出OOM和堆栈溢出SOE的案例、原因、排查及解决? 3.常用的JVM性能监控工具? 4.JVM参数设置? 5.类加载过程? 6.JVM内存模型? 7.四大引用类型?区别? 8.JVM性能调优? 9.Minor GC和Full GC 分别在什么时候触发? 10 ...
分类:
其他好文 时间:
2019-04-01 22:40:14
阅读次数:
227