类是java的核心之一。今天来对简单的java类做一下分析(个人见解,不当之处欢迎指正)。
1 public class SimpleTest { 2 3 private int count = 2; 4 private Bird globalBird = new Bird(); 5 6 public void run(){ 7 int num = 10; 8 Bird bird = null; 9 bird = new Bird(); 10 bird.setName("huangli"); 11 } 12 13 private static class Bird{ 14 15 private String name; 16 public void setName(String name){ 17 this.name = name; 18 } 19 public String getName(){ 20 return this.name; 21 } 22 } 23 }
上面是SimpleTest 类,当该类被java虚拟机加载到内存中还没有被实例化对象时,它的信息(域和方法的代码)被存放在jvm中的perm(永久代)区,当用户创建
了一个SimpleTest对象后,jvm会在堆内存为这个对象分配内存空间,主要是全局变量中的基本类型count和globalPara对象的引用(用一块小的内存存放该对象的
真实地址)。若该对象的run()方法被一个用户线程所执行,则基本类型num和bird对象的引用会被放入当前线程的栈内存中存储,这里的引用也是指Bird对象真实
内存位置的地址。因为bird不是用final修饰的,所以如果将bird指向另一个新的Bird对象,则保存bird引用的内存值也会被改写为新的Bird的地址。
原文:http://www.cnblogs.com/sxg2012/p/5225563.html