(一)java 静态代码块 静态方法区别一般情况下,如果有些代码必须在项目启动的时候就执行的时候,需要使用静态代码块,这种代码是主动执行的;需要在项目启动的时候就初始化,在不创建对象的情况下,其他程序来调用的时候,需要使用静态方法,这种代码是被动执行的. 静态方法在类加载的时候 就已经加载 可以用类
分类:
编程语言 时间:
2016-03-11 01:16:24
阅读次数:
206
内存回收策略 1、标记清除 优点:简单 缺点:存在大量的碎片 2、标记整理(老生代) 优点:、 缺点: 3、复制(适用于新生代) 优点:简单,高效 缺点:因为实现上需要有一个区域作为复制区域,所以浪费内存 可达性分析 GC Root:虚拟机栈 方法区静态变量 方法区的常量引用的对象 本地方法栈 引用
分类:
其他好文 时间:
2016-03-10 23:37:19
阅读次数:
419
1、在JDK1.6(HotSpot虚拟机)及之前,运行时常量池(属于方法区的一部分)是永久代的,而在JDK1.7之后运行时常量池(里面用于存放编译期生成的各种字面量和符号引用,这部分内容将在类加载后进入方法区的运行时常量池当中存放)已经从永久代(Permanent Generation)移出。(问:
分类:
其他好文 时间:
2016-03-10 00:07:09
阅读次数:
152
你对JVM内存组成结构和JVM垃圾回收机制是否熟悉,这里和大家简单分享一下,希望对你的学习有所帮助,首先来看一下JVM内存结构,它是由堆、栈、本地方法栈、方法区等部分组成,结构图如下所示。 JVM学习笔记 JVM内存管理和JVM垃圾回收 JVM内存组成结构 JVM内存结构由堆、栈、本地方法栈、方法区
分类:
其他好文 时间:
2016-03-08 19:37:04
阅读次数:
163
这篇文章主要介绍了C#中ref和out的区别浅析,当一个方法需要返回多个值的时候,就需要用到ref和out,那么这两个方法区别在哪儿呢,需要的朋友可以参考下 在C#中通过使用方法来获取返回值时,通常只能得到一个返回值。因此,当一个方法需要返回多个值的时候,就需要用到ref和out,那么这两个方法区别
一、垃圾回收的概念 Java中的内存回收即Jvm运行时的内存的回收,需要回收的区域有方法区和Java堆。由于程序计数器,Java虚拟机栈和本地方法栈在方法结束或者是线程结束时会自动进行回收所以无须考虑回收。为什么需要垃圾回收呢?因为电脑中的内存的大小是有限而固定的,在运行过程中由于类的加载和创建,内
分类:
其他好文 时间:
2016-03-05 20:30:59
阅读次数:
230
使用某个类是发生的事情 加载->链接(验证、准备、解析)->初始化->可以使用 加载:将class文件字节码内容加载到内存当中,并将这些静态数据转换成方法区中的运行时数据结构 在堆中生成一个代表这个类的java.lang.Class对象,作为方法区类数据的访问入口。 链接:将java类的二进制代码合
分类:
编程语言 时间:
2016-02-26 23:34:02
阅读次数:
262
ch 3 对象与类型 类和结构 相同:1.都是创建对象的模板;2.每个对象都包含数据,并提供了处理和访问数据的方法; 区别:在内存中的存储方式、访问方式:类存储在堆栈(heap)上的引用类型;结构存储在栈(stack)上的值类型,且结构不支持继承; 类 包含:数据成员(字段、常量、事件)、函数成员(
划分为5个内存空间:堆存储new出来的对象,特点:每个new出来的东西都有地址值,一般为16进制的值;每个变量都有默认值;使用完毕就变成了垃圾,但没有立即回收,会在垃圾回收期空闲时回收栈存储局部变量,特点:用完就释放方法区本地方法区与系统相关寄存器给CPU使用
分类:
编程语言 时间:
2016-02-23 19:10:27
阅读次数:
171
线程私有 线程共享 程序计数器,虚拟机栈,本地方法栈 堆,方法区 内存区 异常 异常原因 程序计数器 无 虚拟机栈 StackOverflowError 线程请求的栈深度大于虚拟机栈所允许的深度 OutOfMemoryError 如果扩展无法申请到足够的内存 本地方法栈 如上等同虚拟机栈 堆 Out
分类:
编程语言 时间:
2016-02-18 17:31:58
阅读次数:
128