JAVA知识_9
来源:互联网 发布:怎么用淘宝客买东西 编辑:程序博客网 时间:2024/06/06 14:48
一、- GC垃圾回收器
- 回收算法
- 引用计数算法
- 资源一旦被引用就进行记录 //例:String name = “张三”; count=0 +1 +1 -1 -1
- 根搜索算法(Roots)
- 理解为正在练倒立的一棵大树
- 相比较引用计数算法,这种根搜索算法能够最大限度规避掉内存泄漏
- 补充
- 垃圾回收器,简称GC,主要的工作位置在堆里面,所以堆我们也称之为GC堆
- GC自己本身有固定的回收周期,根据需要程序员可以手动调用垃圾回收器
- 相比较C和Cpp(c++),java在内存管理方面很智能,一般情况下不需要手动进行回收
- 栈
- 本地方法栈
- 主要用于native方法的描述
- 虚拟机栈
- 主要行为:进栈出栈
- 谁在进出呢?//栈帧
- 栈帧的主要构成元素
- 局部变量表
- byte short int long float double char boolean reference(所有的引用类型的运行时类型)
- 所有类型在栈中只有一个槽位
- 但是long和double比较特殊,它们占用两个槽位
- 方法执行成功的信息
- 方法执行失败的信息
方法区
- 类加载的时候,方法和全局变量以及final和static修饰的内容全部在方法区里面
堆
- 主要用于存放实体内容,最典型的就是对象和数组
- 引用数据类型基本都是在堆当中
- 基本数据类型部分在堆中
纠正:
- 基本数据类型 byte short int long float double char boolean 它们是在栈中的
- 局部变量和成员变量?初始化的问题~
- 基本数据类型的局部变量是存放在虚拟机栈中的,虚拟机栈本身不是线程共享的
- 基本数据类型的全局变量存放在方法区当中,方法区本身是共享的一个内存空间,所以方法能够共享这个变量
多态的存在价值
- 解耦
- 提高代码的扩展性
- 编译器会在编译的阶段进行标记,在解释器工作阶段进行解析
- 在java代码的运行阶段,载入?
- 是通过ClassLoader(类加载器)进行加载,完成class中间文件从磁盘加载到内存的这个事情
- ClassLoader有一个特殊机制,叫做双亲绑定
- Fuqin fq = new Erzi();//父类引用指向子类对象
- fuqin和erzi本身存在继承关系,那么我在加载的过程当中 如果遇到fuqin类型的声明,其对应的存储位置可以存放它所有派生出来的子类
- 在java代码的运行阶段,载入?
HashMap
- JAVA知识_9
- JavaSE学习笔记_9:Java包
- java学习日记_9:面向对象的概念以及思想
- 4_9
- 工作总结_9
- 日语小说连载_9
- 初学C#_9
- c++_9: 内存管理
- 算法_9:随机算法
- 数据结构_9:位算法
- 安卓基础_9
- Qt笔记_9
- JAVA知识
- Java 知识
- Java知识
- java知识
- Java知识
- java知识
- lua 截取中英文字符串
- SpringMVC 框架中,@RequestParam 的简单用法
- VSTO入门 (一) 建立测试工程
- SpringMVC框架搭建详解
- 使用Notepad++来比较文件
- JAVA知识_9
- Python面试常用二十题总结
- 我是一个线程
- C#mysql数据操作
- CCF——数字排序
- [易飞]展BOM数据结构之函数版本
- error C2065: “Graphics”: 未声明的标识符解决办法
- COM组件学习资料
- python--插入排序