1. 如何确定某个对象是垃圾 1.1. 引用计数法 在Java中,引用和对象是有关联的。如果要操作对象则必须用引用进行。因此,很显然一个简单的办法是通过引用计数来判断一个对象是否可以回收。简单说,即一个对象如果没有任何与之关联的引用,则说明对象不太可能再被用到,那么这个对象就是可回收对象。这种方式即 ...
分类:
其他好文 时间:
2018-08-30 15:44:44
阅读次数:
205
一、简介 Java GC(Garbage Collection,垃圾回收)机制,是Java与C++/C的主要区别之一 在C++/C语言中,程序员必须小心谨慎地处理每一项内存分配,且内存使用完后必须手工释放曾经占用的内存空间。当内存释放不够完全时,即存在分配但永不释放的内存块,就会引起内存泄漏,严重时 ...
分类:
其他好文 时间:
2018-08-27 18:08:51
阅读次数:
214
线程分为两种,一种是用户线程,另外一种是守护线程。 守护线程最经典的实现就是GC(垃圾回收机制) 守护线程是一种特殊的线程,当进程中不存在非守护线程时,守护线程也就自动销毁的。 用个比较通俗易懂的比喻来解释一下吧: 任何一个守护线程都是JVM中所有非守护线程的“保姆”,只要JVM中还有非守护线程在运 ...
分类:
编程语言 时间:
2018-08-25 18:59:14
阅读次数:
133
Java语言引入了垃圾回收机制,让C++语言中令人头疼的内存管理问题迎刃而解,使得我们Java狗每天开开心心地创建对象而不用管对象死活,这些都是Java的垃圾回收机制带来的好处。但是Java的垃圾回收机制的核心原理是什么呢?今天我们来聊聊GC回收算法吧。 JVM的GC回收场景很复杂,不是单个算法就可 ...
分类:
编程语言 时间:
2018-08-25 15:31:38
阅读次数:
223
主要有三点: 1,引用计数 2,标记-清除(针对循环引用) 3,分代回收 一.垃圾回收机制 Python中的垃圾回收是以引用计数为主,分代收集为辅。引用计数的缺陷是循环引用的问题。在Python中,如果一个对象的引用数为0,Python虚拟机就会回收这个对象的内存。 执行f1()会循环输出这样的结果 ...
分类:
编程语言 时间:
2018-08-22 11:05:29
阅读次数:
152
垃圾回收机制(GC)是java常重要特性之一。它让开发者无需关注内存的创建和释放,而是通过GC自动回收垃圾(无用对象)。 哪些内存需要回收 java堆和方法区是垃圾回收的主要内存区域,程序计数器、虚拟机栈、本地方法栈这几个内存区域是现成私有的,线程结束时内存自然也就回收了。 如何判断对象可回收? 在 ...
分类:
编程语言 时间:
2018-08-17 22:20:01
阅读次数:
177
一、变量 什么是变量 为什么要有变量 如何定义变量(图解) 变量的定义规范 定义方式: 定义变量名不好的方式 定义变量会有:id,type,value 变量的修改与内存管理(引用计数与垃圾回收机制) 二、用户与交互 服务端与客户端的交互 python2 与python3 交互说明 三、基本运算符 计 ...
分类:
编程语言 时间:
2018-08-17 20:07:04
阅读次数:
218
一、什么是内存泄露 内存泄露是指一个不在被程序使用的对象或变量还在内存中占有存储空间。 1. 内存泄露主要有两种情况: (1). 在堆中申请的空间没有释放 (2.) 该对象已经不再使用,却还在内存中保留着 一般垃圾回收机制可以有效的解决第一种情况。 Java内存泄露主要是第二种情况。 在循环中不断创 ...
分类:
其他好文 时间:
2018-08-15 18:32:19
阅读次数:
154