JAVA中的对象是在堆上分配,而在堆上分配存储空间的方式是昂贵的.正是由于GC才使java在堆上的空间分配速度得以于其他语言在堆栈上分配速度相媲美.java对象也不再有作用域的概念.作用域是对于引用而言的.垃圾回收器通常是作为一个单独的低级别的线程运行,不可预知的情况下对内存堆中已经死亡的或者长时间没有使用的对象进行清楚和回收,程序员不能实时的调用垃圾回收器对某个对象或所有对象进行垃圾回收.程序可以用System.gc() 或Runtime.getRuntime().gc() 请求垃圾回收,但并不保证立即执行垃圾回收.
GC的工作原理: 引用计数,标记复制
"引用计数"是一种简单但速度很慢的垃圾回收技术.所有对象都有一个引用计数器,当有引用连接时计数器加1,当引用离开作用域时或者被置于NULL时,计数器-1,垃圾回收器会在所以包含对象引用的列表上进行遍历,当发现某个对象的引用计数为0时,就释放占用的空间.
"标记复制"的运行机制,垃圾回收器遍历包含所有引用的列表,当发现存活的对象引用时做上标记,这样当遍历完所有对象引用并做上标记的时候,执行垃圾回收,将没有标记的对象堆空间释放.
垃圾回收机制的优点:
Java的垃圾回收机制是的程序员不用担心内存空间的分配,减少了内存溢出.但同时也牺牲了一定的性能.
分享到:
相关推荐
### Java基础知识总结 #### Java概述 - **何为编程**:编程是指通过编写代码来告诉计算机执行特定任务的过程。这包括定义数据结构、算法逻辑、输入输出操作等。 - **什么是Java**:Java是一种广泛使用的高级编程...
在Java面试中,面试官常常会考察候选人的基础知识、问题解决能力以及对Java特性的理解。以下是一些基于题目给出的信息展开的Java知识点详解: 1. 异常处理机制:Java中的异常处理是通过try-catch-finally语句块实现...
Java基础知识面试题通常涵盖广泛的Java编程概念和技术,旨在评估应聘者的Java编程技能和理解程度。以下是一些重要的Java知识点: 1. **Java编程基础**: - 编程是使用特定编程语言(如Java)来解决特定问题的过程...
### Java基础知识总结大全 #### 一、方法与字符串操作 1. **String 是最基本的数据类型吗?** - 在 Java 中,`String` 不是一种基本数据类型,而是 `java.lang.String` 类的一个实例。基本数据类型包括:`byte`, `...
JVM的面试基础篇章主要涉及其组成、内存管理、垃圾回收算法等方面,这些知识在面试中是高级程序员必备的技能。 首先,JVM的组成包括几个核心部分,如堆、方法区、本地方法栈、Java虚拟机栈和程序计数器。堆是线程...
#### Java基础 - **Hashtable和HashMap的区别**: - `Hashtable`是线程安全的,而`HashMap`不是。这意味着在多线程环境中使用`Hashtable`时无需额外的同步措施,但这也使得其性能较低。 - `HashMap`允许键值为`...
Java 面试题基础篇是面向Java开发人员的一份详细的面试题库,涵盖了 Java 的基础知识点,包括面向对象编程、变量作用域、事件委托机制、垃圾回收机制、序列化、排序算法、继承、多态、内部类、Collection 框架等。...
【JAVA·初级】GC垃圾回收机制是...总之,【JAVA·初级】GC垃圾回收机制是Java开发者必须掌握的基础知识,深入理解和运用GC机制,能有效提升程序的性能和稳定性。在实践中不断探索和学习,才能真正成为Java编程的高手。
内容概要:本文档详细介绍了Java虚拟机(JVM)的相关知识点,涵盖Java内存模型、垃圾回收机制及算法、垃圾收集器、内存分配策略、虚拟机类加载机制和JVM调优等内容。首先阐述了Java代码的编译和运行过程,以及JVM的...
这一季不仅深入讲解了Java 8新增加的Lambda表达式等特性,还覆盖了一系列重要的Java编程概念和技术,如异常处理、泛型、反射、AOP(面向切面编程)、枚举、注解、线程管理和垃圾回收机制等。通过这些课程的学习,...
### Java常见面试题详解 #### 1. 异常处理机制的简单原理和应用 ...以上是针对给定文件内容中提到的一些Java基础知识的详细解释。这些知识点涵盖了Java面试中经常出现的基础问题,希望对学习和准备面试有所帮助。
### Java基础教学大纲知识点解析 #### 一、教学目标要求 ...通过以上详细的教学大纲分析,学生不仅能够系统地掌握Java基础知识,还能够在实践中不断提高自己的编程能力,为今后的学习和工作奠定坚实的基础。
此外,JVM(Java虚拟机)的工作原理,如垃圾回收机制、内存模型(堆、栈、方法区)也是面试者需要掌握的核心知识。 **MySQL**: MySQL是一款流行的开源关系型数据库管理系统,以其高效、稳定和易于管理著称。面试中...
### 详细的Java基础总结 #### 第一章:Java概述 - **Java的发展史** Java语言由Sun Microsystems公司的James Gosling等人设计,于1995年正式发布。最初被命名为Oak,后改名为Java。Java的发展历程如下: - 1995...
1. **Java基础知识** - 描述Java的垃圾回收机制及其工作原理。 - 解释Java中的封装、继承和多态。 - 讲解Java集合框架中的ArrayList和LinkedList的区别。 - 什么是JVM?它是如何运行Java程序的? - Java异常...
- **垃圾回收机制**:掌握垃圾回收的工作原理可以帮助开发者更好地优化内存使用。 6. **数据库连接池** - 数据库连接池是一种管理数据库连接的机制,可以显著提高应用程序的性能。了解不同的连接池实现(如C3P0、...
因此,求职者在准备面试的过程中,不仅需要系统地复习Java基础知识,还要结合实际工作经验,准备一些项目的深入讨论。 对于这份题集,它可能包含了这些题目的分类汇总,帮助求职者更有针对性地进行复习和练习。对于...
### Java面试知识文档 #### 重要知识点概览 本文档旨在帮助求职者更好地准备Java相关的面试,提升面试通过率。...以上是对Java面试中常见知识点的总结和解释,希望能帮助到即将参加面试的求职者们。
3. 垃圾回收的优点和原理。并考虑2种回收机制。 Java语言中一个显著的特点就是引入了垃圾回收机制,使c++程序员最头疼的内存管理的问题迎刃而解,它使得Java程序员在编写程序的时候不再需要考虑内存管理。由于有个...