- 博客(5)
- 资源 (25)
- 收藏
- 关注
原创 JVM参数及调优
JVM垃圾回收涉及到一个名词叫垃圾回收器三、常见配置举例堆大小设置 JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。32位系统 下,一般限制在1.5G~2G;64为操作系统对内存无限制。我在Windows Server 2003 系统,3.5G物理内存,JDK5.0下测试,最大可设置为1478...
2018-08-30 18:07:21 370
原创 堆 栈 方法区 区别和使用
4、java堆主要用于分配对象实例和数组。5、方法区线程共享用于存储已被虚拟机加载的类信息、常量、静态变量、即使编译后的代码等数据。 6、直接内存直接内存并不是虚拟机运行时数据区的一部分。在NIO中,引入了一种基于通道和缓冲区的I/O方式,它可以使用native函数直接分配堆外内存,然后通过一个存储在java堆中的DirectByteBuffer对象作为这块内存的引用进...
2018-08-30 15:32:18 2079
原创 GC垃圾回收
GC主要分为 7大区进行垃圾回收下面我来介绍下这几个区 以及这几个区的工作:首先是 年轻区(young区) :此区主要负责接收新的对象(也就是说新来一个对象先到young区报道)年轻区 又包括 Eden区 和 Survivor区 新对象其实是先到Eden区报道, 然后不断增加 如果Eden区满了 会将区中数据复制到Survivor区中,同时清空Eden区(第一次GC完成,也就...
2018-08-30 15:28:07 235
原创 内存可见volatile
volatile主要保证内存可见例子:定义变量底层实现原理:Java内存模型(JMM)规定了所有的变量都存储在主内存中,主内存中的变量为共享变量,而每条线程都有自己的工作内存,线程的工作内存保存了从主内存拷贝的变量,所有对变量的操作都在自己的工作内存中进行,完成后再刷新到主内存中。区别在于:非volatile:读取自己的工作内存(不刷新)volatile:读取自己的工作内存...
2018-08-29 16:10:52 113
原创 浅谈 BIO和NIO和AIO 区别
引言BIO和NIO是两种不同的网络通信模型,现如今NIO已经大量应用在Jetty、ZooKeeper、Netty等开源框架中。 一个面向流、一个面向缓冲区一个是阻塞式的、一个非阻塞一个没有io多路复用器、一个有下面通过一个例子解释两者区别:假设当前服务端程序需要同时从与多个客户端建立的连接读取数据。 使用BIO如果采用阻塞式IO,单线程情况下,处理者线程可能...
2018-08-15 10:55:05 8100 4
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人