您的位置:首页 > 编程语言 > Java开发

面向对象_引用类型_内存分析_垃圾回收JAVA028-033

2015-10-15 22:42 656 查看
来源:http://www.bjsxt.com/

1、S01E028_01面向对象概述



2、面向对象编程(OOP)的本质

——以类的方式组织代码,以对象的方式组织(封装)数据

对象:是具体的事物

类:是对对象的抽象(抽象 抽出象的部分)

先有具体的对象,然后抽象各个对象之间象的部分,归纳出类,通过类再认识其它对象

3、引用类型

JAVA中除基本类型之外的变量类型都称之为引用类型;JAVA中的对象是通过引用对其操作的。

4、JAVA中方法的参数传递是:值传递!

5、内存分析

栈(自动分配连续的空间,后进先出):

——存放:局部变量

堆(不连续的空间):

——存放:new出来的对象

方法区(堆内的区域,也是堆):

——存放:类的信息(代码)、static变量、常量池(字符串常量)等

6、S01E031_01程序执行过程的内存分析

public static void main(String[] args){
//Student:JVM在方法区找类的信息(class文件),没有就在类路径(class.path)找。
//找到再加载(JVM的类加载器CLASS LOADER)。加载后,在方法区就有Student类的信息。
Student s1 = new Student();
s1.name = "高琪";
//栈中开一个栈帧(Stack Frame),在栈帧中执行一个方法,执行完后,栈帧就不存在了
s1.study();
s1.sayHello(马士兵);

//Student类已加载过了
Student s2 = new Student();
//基本数据类型直接赋值,18直接赋值给age,而不是引用地址
s2.age = 18;
s2.name = "老高";
}




7、S01E032_01程序执行过程的内存分析

//java Test2//首先加载Test2类
public class Test2{
public static void main(String[] args){
Student s1 = new Student();
s1.name = "高琪"//在方法区中的常量池,"高琪"跟Student类中的是同一个(共享)
s1.age = 18;

Computer c = new Computer();
c.brand = "联想";
c.cpuSpeed = 100;

s1.computer = c;

System.out.println(s1.computer.brand);
}
}




8、S01E033_01垃圾回收机制

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: