连接:http://my.oschina.net/sunchp/blog/3697071.JVM内存模型JVM运行时内存=共享内存区+线程内存区1).共享内存区共享内存区=持久带+堆持久带=方法区+其他堆=Old Space+Young SpaceYoung Space=Eden+S0+S1(1)持...
分类:
其他好文 时间:
2015-01-22 14:39:35
阅读次数:
275
连接:http://my.oschina.net/sunchp/blog/3697071.JVM内存模型JVM运行时内存=共享内存区+线程内存区1).共享内存区共享内存区=持久带+堆持久带=方法区+其他堆=Old Space+Young SpaceYoung Space=Eden+S0+S1(1)持...
分类:
其他好文 时间:
2015-01-22 13:12:23
阅读次数:
323
基础数据类型直接在栈空间分配, 方法的形式参数,直接在栈空间分配,当方法调用完成后从栈空间回收。 引用数据类型,需要用new来创建,既在栈空间分配一个地址空间,又在堆空间分配对象的类变量 。 方法的引用参数,在栈空间分配一个地址空间,并指向堆空间的对象区,当方法调用完成后从栈空间回收。局部变量 ne...
分类:
编程语言 时间:
2015-01-22 00:06:23
阅读次数:
187
一、JVM内存划分方法区(持久代):存放要加载的类信息、类中静态变量、final常量、方法信息等;class对象的getname,isInterface等数据都来源于方法区。sunjdk中对应permanetgeneration堆:默认物理内存的1/64。本地方法栈:用于支持native方法的执行,存储了每个native方法调..
分类:
其他好文 时间:
2015-01-21 20:15:38
阅读次数:
191
(一)java内存区域概况
jvm运行java程序时把所管理的内存分成几个部分:方法区、java栈、本地方法栈、java堆、pc程序计数器。
class字节码装载解析后,在多线程环境中,方法区和java堆数据共享,每个线程自带pc程序计数器和java栈,栈帧中包含方法的所有状态(局部变量、传参、返回值、运算中间结果等)。对共享数据需要考虑多线程并发问题。
更详细内容可参考《深入理解JVM虚拟...
分类:
编程语言 时间:
2015-01-20 10:34:31
阅读次数:
222
线程指进程中的一个执行场景,也就是执行流程,那么进程和线程的区别是什么1. 每个进程是一个应用程序,都有独立的内存空间2. 同一个进程中的线程共享其进程中的内存和资源(共享的内存是堆内存和方法区内存,栈内存不共享,每个线程有自己的)什么是进程?一个进程对应一个应用程序。 例如:在 windows ....
分类:
编程语言 时间:
2015-01-19 23:30:13
阅读次数:
292
/* java.lang.String 是字符串类型 注意:只要采用双引号赋值字符串,那么在编译期将会放到方法区中的字符串的常量池里, 如果是运行时对字符串.加或相减会放到堆中(放之前会先验证方法区中是否含有 相同的字符串常量,如果存...
分类:
编程语言 时间:
2015-01-18 22:41:01
阅读次数:
319
Java线程同步两种途径:
1.synchronized 同步方法或者同步语句块(wait,notify,notifyAll方法)
2.JDK1.5以后有并发编程包,使得以后编程对于线程同步提供了更好的方法。
区别:
相同点:concurrent几乎可以完成synchronized的所有功能。
区别:【1】concurrent包效率高于synchronized。
...
分类:
编程语言 时间:
2015-01-17 22:14:50
阅读次数:
313
C#在类工厂中动态创建类的实例,所使用的方法为:1. Activator.CreateInstance (Type)2. Activator.CreateInstance (Type, Object[])两种方法区别仅为:创建无参数的构造方法和创建有参数的构造函数。//Activator.Creat...
1.简单工厂:简单工厂中的工厂类包含了逻辑判断,可以根据客户端的选择,来动态创建实例,去除了客户端对具体产品的依赖。注意简单工厂违背了设计模式中的开闭原则,所以说简单工厂并不属设计模式。构成:一个包含逻辑判断的具体工厂类;一个抽象产品类,可以派生多个具体的产品类。2.工厂方法模式:定义一个抽象工厂类...
分类:
其他好文 时间:
2015-01-13 19:47:22
阅读次数:
135