面向对象_引用类型_内存分析_垃圾回收JAVA028-033
来源:互联网 发布:域名为什么要解析 编辑:程序博客网 时间:2024/05/04 00:00
来源: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垃圾回收机制
0 0
- 面向对象_引用类型_内存分析_垃圾回收JAVA028-033
- 33_面向对象_06_虚拟机内存管理_垃圾回收机制_C++和java的比较
- Java精选笔记_面向对象(包、访问控制、内存机制、垃圾回收机制)
- 46_面向对象_19_多态_内存分析
- java面向对象_内存分析1
- C#_垃圾回收
- java学习之旅33--面向对象_06_虚拟机内存管理_垃圾回收机制_c++和java的比较
- 36_面向对象_09_static变量和方法_内存分析static
- 37_面向对象_10_this隐式参数_内存分析
- 47_面向对象_20_多态_内存分析深化(模拟servlet中方法的调用)
- PHP面向对象_类型约束
- C++_引用类型
- C#_引用类型
- 面向对象_猫狗案例分析
- 面向对象_静态
- 面向对象_封装
- 面向对象_继承
- 面向对象_多态
- MySQL时间戳和日期相互转化
- post压力测试
- 使用 Nginx 静态化动态网站
- Ubuntu 安装eclipse
- 第1章 JavaScript概述
- 面向对象_引用类型_内存分析_垃圾回收JAVA028-033
- vim下的代码块对齐操作
- 机器视觉之光源
- C++中虚函数的用法详细讲解
- docker registry安装
- go-lang开发环境搭建
- Android学习之四大组件(四)——BroadcastReceiver
- 常见面试算法总结(一)
- Android开发模板------常用工具类(方法)