![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JVM
huayang183
不积跬步无以至千里
不积小流无以成江海
展开
-
Java中线程的生命周期-图解
线程的生命周期:当一个线程被创建之后,进入新建状态,JVM则给他分配内存空间,并进行初始化操作。当线程对象调用了start()方法,该线程就处于就绪状态(可执行状态),JVM会为其创建方法调用栈、和程序计数器,处于可执行状态下的线程随时可以被cpu调度执行。CPU执行该线程的时候,该线程进入执行状态。执行过程中,该线程遇倒像wait()等待阻塞、以及synchronized锁同步阻塞或者调用线程的sleep()方法等进入一个阻塞状态,阻塞之后通过notify()或者notifyAll()方法唤醒重新获取对象原创 2020-05-11 11:03:21 · 283 阅读 · 0 评论 -
Java中堆和栈的概念与区别
栈内存:栈内存首先是一片内存区域,存储的都是局部变量,凡是定义在方法中的都是局部变量(方法外的是全局变量),for循环内部定义的也是局部变量,是先加载函数才能进行局部变量的定义,所以方法先进栈,然后再定义变量,变量有自己的作用域,一旦离开作用域,变量就会被释放。栈内存的更新速度很快,因为局部变量的生命周期都很短。 堆内存:存储的是数组和对象(其实数组就是对象),凡是new建立的都是在堆中,堆中存放的都是实体(对象),实体用于封装数据,而且是封装多个(实体的多个属性),如果一个数据消失,这个...原创 2020-05-11 10:58:58 · 227 阅读 · 0 评论 -
Java堆溢出错误:java.lang.OutOfMemoryError: Java heap space
java.lang.OutOfMemoryError: Java heap space 问题的解决方法内存溢出java.lang.OutOfMemoryErrory后面一般会跟上内存溢出的区域PermGen space(方法区), heap space(堆内存)如果是PermGen space方法区内存溢出,可尝试加大MaxPermSize如果是heap space 堆内存溢出,可尝试修改...原创 2020-04-30 13:09:47 · 952 阅读 · 0 评论 -
Java 内存溢出(java.lang.OutOfMemoryError)解决
导致OutOfMemoryError异常的常见原因有以下几种:内存中加载的数据量过于庞大,如一次从数据库取出过多数据; 集合类中有对对象的引用,使用完后未清空,使得JVM不能回收; 代码中存在死循环或循环产生过多重复的对象实体; 使用的第三方软件中的BUG; 启动参数内存值设定的过小;此错误常见的错误提示:tomcat:java.lang.OutOfMemoryError: Pe...原创 2020-04-21 16:06:26 · 1161 阅读 · 0 评论 -
Tomcat最大线程数的设置
Tomcat的server.xml中连接器设置如下<Connectorport="8080" maxThreads="150"minSpareThreads="25"maxSpareThreads="75" enableLookups="false"redirectPort="8443"accept...原创 2020-04-21 12:32:15 · 3388 阅读 · 0 评论 -
jvm最大最小内存参数设置
-Xms 为jvm启动时分配的初始堆的大小,也是堆大小的最小值,比如-Xms200m,表示分配200M-Xmx 为jvm运行过程中分配的最大堆内存,比如-Xmx500m,表示jvm进程最多只能够占用500M内存-Xss 为jvm启动的每个线程分配的内存大小,默认JDK1.4中是256K,JDK1.5+中是1M...原创 2020-04-21 12:28:34 · 5222 阅读 · 0 评论 -
查看jvm的full gc的频率
1.查看gc的次数jstat -gc java进程ID[看FGC列,下图代表GC了7次]【附:列说明】S0C:第一个幸存区的大小S1C:第二个幸存区的大小S0U:第一个幸存区的使用大小S1U:第二个幸存区的使用大小EC:伊甸园区的大小EU:伊甸园区的使用大小OC:老年代大小OU:老年代使用大小MC:方法区大小MU:方法区使用大小CCSC:压缩类空间大小...原创 2020-02-22 17:11:45 · 6735 阅读 · 3 评论