java垃圾处理机制
java文件通过编译器(javac命令)生成class文件(字节码文件),其通过java命令启动虚拟机将字节码文件转换成平台能够理解的方式运行。
类存在于源文件里面,方法存在于类中,语句存在与方法中。
真正被执行的是类。
override(重写父类方法),覆盖,由子类重新定义继承下来的方法,以改变或延申此方法的行为。
类是对象的蓝图。
受测试类名称+TestDrive
main方法的两种用途:1.测试真正的类;2.启动Java程序
//codegym内容
garbage collector(GC,垃圾回收机制)
**the garbage collector works in parallel with your program. But it wasn't always so. Garbage collection used to be performed on the same thread as your program. On some schedule (once every few minutes), the garbage collector would check for the presence of unwanted objects in the program. The problem was that the program would hang (not execute) during this check and garbage collection. This mechanism(机制) was later changed, and now the garbage collector runs in the background, not impeding the work of the program itself.**
GC不会统计对象的引用,就像例子中说的三个对象互相引用,程序中其他的与他们无关,若GC统计对象的引用,那就不会收集这三个对象,也就不会释放内存。虽然他们有关联,但是程序中用不到他们,那就是无用的垃圾。

**Accordingly, in Java, the decision was made to collect garbage based not on reference counting, but on a separation of objects into two types: reachable and unreachable.(可达/不可达) An object is reachable if it is referenced by another reachable object. Thus, we get a "chain of reachability". It starts when the program starts and continues for the duration of the program. The arrow in the figure indicates our program's executable code. The code (for example, the main() method) creates references to objects. These objects can refer to other objects, those objects to still others, and so on. This forms a reference chain.(引用链) If you can trace along to chain from an object to the "root reference" (the one created directly in executable code), then it is considered reachable. Such objects are marked black in the picture.
But an object is unreachable if the object drops out of this chain, i.e. none of the variables in the code currently being executed references it, and it cannot be reached through the "reference chain". In our program, two such objects are marked red.
Note that these "red" objects have references to each other.**


Eden中是使用new关键字创建的对象区域,当该区域内存耗尽时,会根据其中垃圾和引用对象的占比采取不同的算法,标记垃圾回收或是标记引用对象转移到生存空间,生存空间又根据对象经历的垃圾回收轮数定了代数,经历一轮就是1代,堆中还有一个长寿命对象的存放地,是经过很多论垃圾回收机制后进入,从生存空间进入长寿对象的存放地。在旧一代满后就会执行完全垃圾回收机制,这个过程涉及多个内存区域。一般来说,它涉及Java机器创建的所有对象。当然,这需要更多的时间和资源。
上面文章节选自[](https://codegym.cc/groups/posts/16-more-about-the-garbage-collector-)讲的是Java的垃圾回收机制。
finalize()方法不会每次都会调用,其是Object类中定义的方法
java垃圾处理机制的更多相关文章
- 第28章 java反射机制
java反射机制 1.类加载机制 1.1.jvm和类 运行Java程序:java 带有main方法的类名 之后java会启动jvm,并加载字节码(字节码就是一个类在内存空间的状态) 当调用java命令 ...
- Java反射机制
Java反射机制 一:什么事反射机制 简单地说,就是程序运行时能够通过反射的到类的所有信息,只需要获得类名,方法名,属性名. 二:为什么要用反射: 静态编译:在编译时确定类型,绑定对象,即通过 ...
- java基础知识(十一)java反射机制(上)
java.lang.Class类详解 java Class类详解 一.class类 Class类是java语言定义的特定类的实现,在java中每个类都有一个相应的Class对象,以便java程序运行时 ...
- java基础知识(十一)java反射机制(下)
1.什么是反射机制? java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法,对于任意一个对象都能够调用他的属性和方法,这种动态获取属性和方法的功能称为java的反射机制. ...
- JAVA 异常处理机制
主要讲述几点: 一.异常的简介 二.异常处理流程 三.运行时异常和非运行时异常 四.throws和throw关键字 一.异常简介 异常处理是在程序运行之中出现的情况,例如除数为零.异常类(Except ...
- java基础知识(四)java内存机制
Java内存管理:深入Java内存区域 上面的文章对于java的内存管理机制讲的非常细致,在这里我们只是为了便于后面内容的理解,对java内存机制做一个简单的梳理. 程序计数器:当前线程所执行的字节码 ...
- Java 事件机制
java事件机制包括三个部分:事件.事件监听器.事件源. 1.事件.一般继承自java.util.EventObject类,封装了事件源对象及跟事件相关的信息,用于listener的相应的方法之中,作 ...
- Java反射机制专题
·Java Reflection Reflection(反射)是被视为动态语言的关键,反射机制允许程序在执行期借助于Reflection API取得任何类的内部信息,并能直接操作任意对象的内部属性及方 ...
- java反射机制深入详解
java反射机制深入详解 转自:http://www.cnblogs.com/hxsyl/archive/2013/03/23/2977593.html 一.概念 反射就是把Java的各种成分映射成 ...
随机推荐
- Msi.h causes compilation error in vs2010
创建一个Win32 Console工程ReadFromMSM,什么都不需要做. 在ReadFromMSM.cpp文件中引入头文件: #include <msi.h> 编译,会发现有成堆的错 ...
- MLlib学习——基本统计
给定一个数据集,数据分析师一般会先观察一下数据集的基本情况,称之为汇总统计或者概要性统计.一般的概要性统计用于概括一系列观测值,包括位置或集中趋势(比如算术平均值.中位数.众数和四分位均值),展型(比 ...
- postman中环境变量的设置方法、使用方法和实际中常见使用场景
文中共介绍2种添加环境变量的方法.2种使用环境变量的方法,以及不同方法的适用范围. 文中给出了环境变量的两种常见使用场景:切换环境.动态参数关联(前一个请求的响应作为下一个请求的入参) 2种添加环境变 ...
- 人工智能——CNN卷积神经网络项目之猫狗分类
首先先导入所需要的库 import sys from matplotlib import pyplot from tensorflow.keras.utils import to_categorica ...
- MXNet学习:预测结果-识别单张图片
用到了model里的FeedForward.load和predict import os import mxnet as mx import numpy as np import Image from ...
- Mybatis结果映射器resultMap的基本用法
<mapper namespace="全局唯一的名称空间"> <resultMap id="本namespace下唯一" type=" ...
- Qunar风控安全产品的探索之路
李建威.2017年7月以春招实习生的身份加入去哪儿网,毕业后一直在从事抓取与反抓取相关工作,先后负责搭建过智能打码.设备指纹以及环境检测等服务.目前主要负责反爬风控的基础安全产品建设.对各类作弊原理感 ...
- [题解]第十一届北航程序设计竞赛预赛——H.高中数学题
题目描述 解题思路 可以求得通项公式:an = 2n + 1,所以问题就变成等差数列求异或和,这个具体为什么对我还不能很好地解释清楚,先挖坑吧. 附:c++代码 1 #include <iost ...
- [题解]Codeforces Round #254 (Div. 2) B - DZY Loves Chemistry
链接:http://codeforces.com/contest/445/problem/B 描述:n种药品,m个反应关系,按照一定顺序放进试管中.如果当前放入的药品与试管中的药品要反应,危险系数变为 ...
- Oracle之SQL的简单查询
查询结构 --SQL语句的执行原理以及语法结构: /* SELECT * | 列名1[,列名2...] | 表达式 FROM 表名 [表的别名] WHERE 分组前的筛选条件 GROUP BY 列名1 ...