一个优秀Java程序员,必须了解Java内存模型、GC工作原理,以及如何优化GC的性能、与GC进行有限的交互,有一些应用程序对性能要求较高,例如嵌入式系统、实时系统等,只有全面提升内存的管理效率,才能提高整个应用程序的性能。 本文将从JVM内存模型、GC工作原理,以及GC的几个关键问题进行探讨,从G ...
分类:
编程语言 时间:
2016-08-27 18:05:43
阅读次数:
247
转自: http://www.hollischuang.com/archives/489 一、基础篇 1.1 JVM 1.1.1. Java内存模型,Java内存管理,Java堆和栈,垃圾回收 http://www.jcp.org/en/jsr/detail?id=133 http://ifeve. ...
分类:
编程语言 时间:
2016-08-27 15:27:46
阅读次数:
327
一、Java内存模型介绍 内存模型的作用范围: 在Java中,所有实例域、静态域和数组元素存放在堆内存中,线程之间共享,下文称之为“共享变量”。局部变量、方法参数、异常处理器等不会在线程之间共享,不存在内存可见性问题,也不受内存模型的影响。 重排序与可见性: 现代编译器在编译源码时会做一些优化处理, ...
分类:
编程语言 时间:
2016-08-27 00:29:27
阅读次数:
223
1. 概述 多任务和高并发是衡量一台计算机处理器的能力重要指标之一。一般衡量一个服务器性能的高低好坏,使用每秒事务处理数(Transactions Per Second,TPS)这个指标比较能说明问题,它代表着一秒内服务器平均能响应的请求数,而TPS值与程序的并发能力有着非常密切的关系。在讨论Jav ...
分类:
编程语言 时间:
2016-08-24 12:52:58
阅读次数:
146
1. 概述 多任务和高并发是衡量一台计算机处理器的能力重要指标之一。一般衡量一个服务器性能的高低好坏,使用每秒事务处理数(Transactions Per Second,TPS)这个指标比较能说明问题,它代表着一秒内服务器平均能响应的请求数,而TPS值与程序的并发能力有着非常密切的关系。在讨论Jav ...
分类:
编程语言 时间:
2016-08-23 21:55:10
阅读次数:
200
转自:http://rainyear.iteye.com/blog/1734311 java线程内存模型 线程、工作内存、主内存三者之间的交互关系图: key edeas 所有线程共享主内存 每个线程有自己的工作内存 refreshing local memory to/from main memo ...
分类:
编程语言 时间:
2016-08-23 18:43:55
阅读次数:
252
非常感谢洋哥的本周知识分享,灰常精辟~!洋哥的知识串起来了线程安全的大部分知识,我也根据我的知识储备及网络搜寻,整理了一份我自己当前的理解。 一. 线程安全性的知识准备 1.1 知识准备a:JVM 内存模型 与 线程安全 线程安全,就是通过多个线程对某个资源进行有序访问或者修改,这里的某项资源对应的 ...
分类:
编程语言 时间:
2016-08-22 18:00:22
阅读次数:
260
JVM内存区域模型 1.方法区 也称"永久代” 、“非堆”, 它用于存储虚拟机加载的类信息、常量、静态变量、是各个线程共享的内存区域。默认最小值为16MB,最大值为64MB,可以通过-XX:PermSize 和 -XX:MaxPermSize 参数限制方法区的大小。 运行时常量池:是方法区的一部分, ...
分类:
其他好文 时间:
2016-08-19 15:01:19
阅读次数:
122
1、JMM:Java Memory Model(Java内存模型) 关于synchronized的两条规定: 1、线程解锁前,必须把共享变量的最新值刷新到主内存中 2、线程加锁时,将清空工作内存中共享变量的值,从而使用共享变量时需要从主内存中重新读取最新的值(注意:加锁和解锁需要是同一把锁) 注:线 ...
分类:
编程语言 时间:
2016-08-17 01:36:42
阅读次数:
182