摘要: 多线程中两个必要的开销:线程的创建、上下文切换 创建线程: 创建线程使用是直接向系统申请资源的,对操作系统来说,创建一个线程的代价是十分昂贵的, 需要给它分配内存、列入调度,同时在线程切换的时候还要执行内存换页,CPU 的缓存被 清空,切换回来的时候还要重新从内存中读取信息,破坏了数据的局部性。 关 阅读全文
posted @ 2019-05-27 15:30 孙伟业 阅读(3258) 评论(0) 推荐(0) 编辑
摘要: 一.首先来看一下JVM中的GC有哪几种类型? 1.-XX:UseSerialGC 虚拟机运行在Client模式的默认值,打开此开关参数后,使用Serial+Serial Old收集器组合进行垃圾收集。 2.-XX:UseParNewGC 打开此开关参数后,使用ParNew+Serial Old收集器 阅读全文
posted @ 2019-05-19 16:50 孙伟业 阅读(4386) 评论(1) 推荐(1) 编辑
摘要: 垃圾收集机制是 Java 的招牌能力,极大地提高了开发效率。如今,垃圾收集几乎成为现代语言的标配,即使经过如此长时间的发展, Java 的垃圾收集机制仍然在不断的演进中,不同大小的设备、不同特征的应用场景,对垃圾收集提出了新的挑战。 垃圾收集器(GC,Garbage Collector)是和具体JV 阅读全文
posted @ 2019-05-19 16:32 孙伟业 阅读(228) 评论(0) 推荐(0) 编辑
摘要: 一、垃圾回收机制的意义 Java语言中一个显著的特点就是引入了垃圾回收机制,使c++程序员最头疼的内存管理的问题迎刃而解,它使得Java程序员在编写程序的时候不再需要考虑内存管理。由于有个垃圾回收机制,Java中的对象不再有“作用域”的概念,只有对象的引用才有“作用域”。垃圾回收可以有效的防止内存泄 阅读全文
posted @ 2019-05-19 15:00 孙伟业 阅读(547) 评论(1) 推荐(0) 编辑
摘要: 内存溢出: 就是我们通常遇到的OutOfMemoryError异常,它俗理解就是内存不够,通常在运行大型程序时发生,当程序所需要的内存远远超出了JVM内存所承受大小,就会报出OutOfMemoryError异常(称为OOM异常)。 在我们的JVM内存区域中(可以点击链接了解详情),除了程序计数器所占 阅读全文
posted @ 2019-05-14 19:17 孙伟业 阅读(3977) 评论(0) 推荐(0) 编辑
摘要: 我们知道,计算机CPU和内存的交互是最频繁的,内存是我们的高速缓存区,用户磁盘和CPU的交互,而CPU运转速度越来越快,磁盘远远跟不上CPU的读写速度,才设计了内存,用户缓冲用户IO等待导致CPU的等待成本,但是随着CPU的发展,内存的读写速度也远远跟不上CPU的读写速度,因此,为了解决这一纠纷,C 阅读全文
posted @ 2019-05-12 18:07 孙伟业 阅读(1239) 评论(3) 推荐(0) 编辑
摘要: 之前写过一篇关于工厂模式(Factory Pattern)的随笔,里面分析了简单工厂模式,但对于工厂方法和抽象工厂的分析较为简略。这里重新分析分析三者的区别,工厂模式是java设计模式中比较简单的一个设计模式,但很多地方都用到了工厂模式,(如解析xml中,jdbc连接数据库等)利用好工厂模式对程序的 阅读全文
posted @ 2019-05-05 20:29 孙伟业 阅读(21877) 评论(7) 推荐(3) 编辑