九路 九路
3年前
3 Java对象的内存布局以及对象的访问定位
先来看看Java对象在内存中的布局一Java对象的内存布局在HotSpot虚拟机中,对象在内存中的布局分为3个区域对象头(Header)MarkWord(在32bit和64bit虚拟机上长度分别为32bit和64bit)存储对象自身的运行时数据,包括哈希码,GC分代年龄,锁状态标志,线程持有的锁,偏向线程ID,偏向时间戳等类型指
Wesley13 Wesley13
3年前
java四大线程池
一、为什么需要使用线程池  1、减少了创建和销毁线程的次数,每个工作线程都可以被重复利用,可执行多个任务。2、可以根据系统的承受能力,调整线程池中工作线线程的数目,防止因为消耗过多的内存,而把服务器累趴下(每个线程需要大约1MB内存,线程开的越多,消耗的内存也就越大,最后死机)。Java中创建和销毁一个线程是比较
Wesley13 Wesley13
3年前
java经典程序编程知识(一)
ScannerscannernewScanner(System.in)Scanner是一个类,nextXxx()是Scanner的成员函数,System.in作为参数传递给Scanner的构造函数,使Scanner用键盘作为输入,然后用new在内存中实例化一个Scanner出来,使得其它变量能调用这块内存区。next()
Wesley13 Wesley13
3年前
Java系列笔记
Java垃圾回收概况  JavaGC(GarbageCollection,垃圾收集,垃圾回收)机制,是Java与C/C的主要区别之一,作为Java开发者,一般不需要专门编写内存回收和垃圾清理代码,对内存泄露和溢出的问题,也不需要像C程序员那样战战兢兢。这是因为在Java虚拟机中,存在自动内存管理和垃圾清扫机制。概括地说,该机制对JVM(J
Stella981 Stella981
3年前
Linux Cache过大问题排查
 现场问题:操作系统 CentOSLinuxrelease7.3.1611(Core) 系统内存16Groot@clxcldgatewayprod~freegtotalusedfreesharedb
Wesley13 Wesley13
3年前
mysql 心跳检测
MySQL服务器所支持的最大连接数是有上限的,因为每个连接的建立都会消耗内存,因此我们希望客户端在连接到MySQLServer处理完相应的操作后,应该断开连接并释放占用的内存。如果你的MySQLServer有大量的闲置连接,他们不仅会白白消耗内存,而且如果连接一直在累加而不断开,最终肯定会达到MySQLServer的连接上限数,这会报'toomany
Stella981 Stella981
3年前
JVM 调优之 jstack 找出最耗cpu的线程
top命令观察到问题:内存不断增长CPU占用率居高不下!(https://oscimg.oschina.net/oscnet/upe838b490d1a75f988a3076794f329c9947d.png)topHp观察进程中的线程,哪个线程CPU和内存占比高topHp10424
Wesley13 Wesley13
3年前
Java oop 第13章_多线程
第13章\_多线程一、多线程相关的概念:1.程序:由某种编程语言开发可执行某些功能的代码组合,它是静态的概念。2.进程:当程序被执行时的过程可以理解为讲程序从外存调入内存的过程,会为每一个程序至少开辟一个独立的内存空间,程序在内存中的状态称为一个进程。3.线程:一个进程至少会有一个独
Stella981 Stella981
3年前
JVM的GC算法总结
Java程序在运行过程中,会产生大量的内存垃圾(一些没有引用指向的内存对象都属于内存垃圾,因为这些对象已经失去标记,程序用不了它们了,对程序而言它们已经废弃),为了确保程序运行时的性能,java虚拟机在程序运行的过程中不断地进行自动的垃圾回收(GC),这就是我们的垃圾回收机制,关于垃圾回收我总结了一下几种:标记–清除算法(MarkSweep)