来源: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垃圾回收机制