Java技术体系中所提倡的自动内存管理最终可以归结为自动化地解决了两个问题:给对象分配内存以及回收分配给对象的内存。 对象的内存分配,从大方向上将,就是在堆上分配(但也可能经过JIT编译后被拆散为标量类型并...
分类:
编程语言 时间:
2014-08-19 13:02:34
阅读次数:
301
Android的开发平台搭建主要需要的工具有:Java虚拟机JDK、Eclipse、Eclipse插件ADT(Android Developer Tool)和Android开发包SDK,以下是具体的安装方法。 A、JDK 在MAC中已经为我们预装了JDK并默认配置了Java系统变量,因此JDK对.....
分类:
移动开发 时间:
2014-08-19 09:21:53
阅读次数:
283
只有几种情况可以解释这种结果
1.this并不指向son在堆中创建的实例
2.创建对象时内存中使用了其他机制来保证这种结果的生成。
翻看了一下《深入理解Java虚拟机 JVM高级特性与最佳实践》这本书 似乎得出了一些端倪
由此可见当访问成员变量时,检测到父类的成员变量之后程序停止继续寻找。
对于方法,由于其内容存放在方法区内,每个对象的发放应该是通过其自身的this即引用唯一绑定。故就差不多解释的通了。...
分类:
其他好文 时间:
2014-08-18 23:40:53
阅读次数:
414
jvm运行时数据区的简单介绍
JVM所管理的内存分为以下几个运行时数据区:程序计数器、Java虚拟机栈、本地方法栈、Java堆、方法区。
其中本文涉及到的主要有:java虚拟机站(简称java栈),java堆和方法区。
这里简单地普及一下这三种数据区的知识,java栈的读取速度是最快的(紧次与CPU的寄存器,跨平台性比寄存器好,android使用的是寄存器),但是里面...
分类:
其他好文 时间:
2014-08-18 13:09:22
阅读次数:
215
JDK1.6垃圾收集相关参数 参数 描述 UseSerialGC 虚拟机运行在Client模式下的默认值,打开此开关后,使用Serial+Serial Old的收集器组合进行内存回收 UseParNewGC 打开此开关后,使用ParNew+Serial Old的收集器组合...
分类:
编程语言 时间:
2014-08-18 12:44:34
阅读次数:
214
特点一:面向对象类、对象封装、继承、多态特点二:健壮性相对安全的内存管理和访问机制特点三:跨平台通过Java虚拟机(jvm)运行
分类:
编程语言 时间:
2014-08-18 00:15:23
阅读次数:
194
内存中对象的创建、对象的结构以及访问方式。
一、对象的创建
在语言层面上,对象的创建只不过是一个new关键字而已,那么在虚拟机中又是一个怎样的过程呢?
(一)判断类是否加载。虚拟机遇到一条new指令的时候,首先会检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号代表的类是否被加载、解析并初始化。如果没有完成这个过程,则必须执行相应类的加载。
(二)在堆上...
分类:
编程语言 时间:
2014-08-17 20:00:52
阅读次数:
196
类加载器(class loader)用来加载 Java 类到 Java 虚拟机中。一般来说,Java 虚拟机使用 Java 类的方式如下:Java 源程序(.java 文件)在经过 Java 编译器编译之后就被转换成 Java 字节代码(.class 文件)。类加载器负责读取
Java 字节代码,并转换成java.lang.Class类的一个实例。每个这样的实例用来表示一个
Java 类。...
分类:
编程语言 时间:
2014-08-17 19:58:22
阅读次数:
288
Java多线程学习1——两种基本实现框架一、前言 当一个Java程序启动的时候,一个线程就立刻启动,改程序通常也被我们称作程序的主线程。其他所有的子线程都是由主线程产生的。主线程是程序开始就执行的,并且程序最终是以主线程的结束而结束的。 Java编写程序都运行在在Java虚拟机(JVM)中,...
分类:
编程语言 时间:
2014-08-17 18:27:52
阅读次数:
377