J2SE-程序执行与内存图
全局程序运行内存图
基础数据类型:byte,short,int,long(整数) float,double(浮点) -- 数值
char --字符型
boolean --布尔型
程序执行时所有的东西都是先载入到内存中的code segment,然后关联内存的其他三个区,程序执行,变量是内存中的小块区域,使用变量名来访问,先声明,然后赋值,之后才能使用
类,方法都位于代码区(code segment)
字符串常量"sdsd" "a",静态常量位于数据区(data segment)
对象是new出来的,位于堆内存(heap),类的每个成员在不同的对象中都有不用的值(除了静态变量),而方法只有一份,执行的时候才占用内存
局部变量在栈内存(stack)中,方法里面的局部变量当方法执行完毕之后,局部变量会马上消失
code,heap,stack
对象转型代码:
View Code
class Animal { private String name; Animal(String name) {this.name = name;} } class Cat extends Animal { private String eyesColor; Cat(String n,String c) {super(n); eyesColor = c;} } class Dog extends Animal { private String furColor; Dog(String n,String c) {super(n); furColor = c;} }
内存图:
代码:
View Code
public class Cat { private static int sid = 0; private String name; int id; Cat(String name) { this.name = name; id = sid++; } public void info(){ System.out.println ("My name is "+name+" No."+id); } public static void main(String arg[]){ Cat.sid = 100; Cat mimi = new Cat("mimi"); mimi.sid = 2000; Cat pipi = new Cat("pipi"); mimi.info(); pipi.info(); } }
一步一个脚印,方便自己复习,欢迎大家指正,非常感谢,共同进步!
posted on 2012-03-22 12:17 lovebeauty 阅读(595) 评论(0) 编辑 收藏 举报