![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JVM
开心的小尾叭
这个作者很懒,什么都没留下…
展开
-
静态成员常量的初始化
package com.jmdf.redis.project.jvm;import java.util.UUID;/** 当一个常量的值并非编译器可以确定的,那么其值就不会被放到调用类的常量池中, 这时在程序运行时,会导致主动使用这个常量所在的类,鲜艳会导致这个类被初始化。 */public class MyTest2 { public static void main(String[] args) { System.out.println(MyParent2.s原创 2020-05-24 22:39:38 · 382 阅读 · 0 评论 -
jvm对类的加载、链接、初始化
package com.jmdf.redis.project;/** * 对于静态字段,只有直接定义了该字段的类才会被初始化 * 当一个子类初始化时要求其全部父类已经初始化完毕。 * -XX:+TraceClassLoading 用于追踪类的加载信息并且打印出来 * * -XX:+<option> 表示开启option选项 * -XX:-<option> 表示关闭option选项 * -XX:<option>=<value> 表示将optio原创 2020-05-24 17:12:38 · 227 阅读 · 0 评论 -
window10查看内存情况
win+Rjconsole原创 2020-05-19 17:28:51 · 952 阅读 · 0 评论 -
tomcat并发优化
cd /tomcat/confvim server.xml把BIO<Connector port="8080" protocol="HTTP/1.1"connectionTimeout="2000"redirctPort="8443"/>替换为APR<Connector port="8080" protocol="org.apache.coyote.http11....原创 2019-12-08 11:27:47 · 98 阅读 · 0 评论 -
JVM系列:生产环境参数实例及分析【生产环境实例增加中】
java application项目(非web项目)改进前:-Xms128m-Xmx128m-XX:NewSize=64m-XX:PermSize=64m-XX:+UseConcMarkSweepGC-XX:CMSInitiatingOccupancyFraction=78-XX:ThreadStackSize=128-Xloggc:logs/gc.log-Dsun.rmi.d...原创 2019-12-08 10:56:43 · 115 阅读 · 0 评论 -
Tomcat内存优化
内存优化cd tomcat/binvim catalina.shexport JAVA_OPTS="-server -Xms1600M -Xmx1600M -Xss512K -XX:+AggressiveOpts -XX:+UseBiasedLocking -XX:PermSize=128M -XX:MaxPermSize=256M -XX:+DisableExplicitGC -XX:...原创 2019-12-08 10:47:44 · 125 阅读 · 0 评论 -
JVM系列一:JVM内存组成及分配
java内存组成介绍:堆(Heap)和非堆(Non-heap)内存按照官方的说法:“Java 虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配。堆是在 Java 虚拟机启动时创建的。”“在JVM中堆之外的内存称为非堆内存(Non-heap memory)”。可以看出JVM主要管理两种类型的内存:堆和非堆。简单来说堆就是Java代码可及的内存,是留给开发人员使用的;非堆就...原创 2019-12-08 10:38:32 · 63 阅读 · 0 评论 -
GC垃圾回收器
Serial 串行 它为单线程环境设计且只使用一个线程进行垃圾回收,会暂停所有的用户线程,所以不适合服务器环境Parallel 并行 多个垃圾收集线程并行工作,此时用户线程时暂停的,适用于科学计算、大数据等弱交互场景。CMS 并发 用户线程和垃圾收集线程同时执行(不一定是并行,可能是交替执行),不需要停顿用户线程,互联网公司多用它,使用堆响应时间有要求...原创 2019-10-12 18:00:51 · 106 阅读 · 0 评论 -
OOM
一:栈溢出1.线程请求的栈深度大于虚拟机允许的最大深度 StackOverflowError2.虚拟机在扩展栈深度时,无法申请到足够的内存空间 OutOfMemoryErrorpackage oom;/** * 栈溢出oom是错误,不是异常 *方法的深度递归调用 */public class StackOverflowErrorDemo { public static vo...原创 2019-10-12 15:45:19 · 206 阅读 · 0 评论 -
四种引用类型:强、软、弱、虚
强引用:package ref;/** * 强引用 * */public class StrongReferenceDemo { public static void main(String[] args) { Object obj1=new Object();//这样定义是强引用,OOM也不会被gc回收 Object obj2=obj1;//复制的是引用地址 ob...原创 2019-10-12 12:21:45 · 104 阅读 · 0 评论 -
jvm基础篇
public static void main(String[] args) throws InterruptedException { long totleMemory=Runtime.getRuntime().totalMemory(); long maxMemory = Runtime.getRuntime().maxMemory(); System.out.println...原创 2019-10-12 12:02:11 · 94 阅读 · 0 评论