java基础-005
27.Java中垃圾回收的目的及回收的时机
垃圾回收的目的是识别并且丢弃不再使用的对象来释放和重用资源.
如果对象的引用被置为null,垃圾收集器不会立即释放对象占用的内存.
什么时候进行垃圾回收,主要取决于JVM.可以参考 http://www.cnblogs.com/lrh-xl/p/5292495.html
28.System.gc()和Runtime.gc()
这两个方法是用来提示JVM要进行垃圾回收了.但是,立即开始还是延迟开始进行垃圾回收是取决于JVM的.
这两个方法的行为没有什么不同,本质上是一样的.
29.finalize()方法
垃圾回收器决定回收某对象时,就会运行该对象的finalize()方法,但是在Java中,如果内存充足,那么垃圾回收可能永远不会进行,也就是说finalize()可能永远不会被执行,显然靠它做收尾工作是不可靠的.(何时会进行垃圾回收取决于JVM的类型,以及JVM采用何种垃圾回收算法,内存分配回收策略等).fianlize()方法的主要用途是回收特殊通道申请的内存.Java程序有垃圾回收器,所以一般情况下内存问题不用程序员担心,但有一种JNI(Java Native Interface)调用non-Java程序(C/C++),finalize()的工作就是回收这部分内存.
30.Java堆及永久代
JVM的堆是运行时数据区,所有类的实例和数组都在堆上分配内存.它在JVM启动时被创建.对象所占的内存是由自动内存管理系统,也就是垃圾回收器回收.
堆内存是由存活和死亡的对象组成的,存活的对象是应用可以访问的,不会被回收,死亡的对象是应用不可访问尚且没有被垃圾收集器回收掉的对象,一直到垃圾收集器把这些对象回收掉之前,它们会一直占据内存空间.
了解更多关于运行时数据区可以参考http://www.cnblogs.com/lrh-xl/p/5277585.html
31.串行收集器和吞吐量收集器的区别
吞吐量收集器使用并行版本的新生代垃圾收集器,它用于中等规模和大规模数据的应用程序.而串行收集器对大多数的小应用(现代处理器上需要大概100M左右的内存)就足够了.
32.JVM的永久代的垃圾回收
垃圾回收不会发生在永久代(不是很准确).如果永久代满了或者是超过了临界值们就会触发完全垃圾回收(Full GC) 也叫Major GC.
关于垃圾收集可以参考http://www.cnblogs.com/lrh-xl/p/5312877.html 和 http://www.cnblogs.com/lrh-xl/p/5292495.html
33.Java中的两种异常类型
Java中有两种异常:受检查(checked)异常和不受检查(unchecked)异常.不受检查的异常不需要在方法或者构造函数上声明,就算方法或者构造函数的执行可能会抛出这样的异常,并且不受检查的异常可以传播到方法或者是构造函数的外面.相反,受检查的异常必须用throws语句或者是构造函数上声明.
34.java中的Exception和Error
Exception和Error都是Throwable的子类.Exception用于用户程序可以捕获的异常情况.Error定义了不期望被用户捕获的异常.
35.throw和throws
throw关键字用来在程序中明确地抛出异常,相反,throws语句用来表明方法不能处理的异常.每一个方法都必须要指定哪些异常不能处理,所以方法的调用者才能够确保处理可能发生的异常,多个异常是用逗号分隔的.
36.finally代码块和fianlize()方法
无论是否抛出异常,finally代码块都会执行,它主要是用来释放用用程序占用的资源.
finalize()方法是Object类的protected()方法,它是在对象被垃圾回收前由JAVA虚拟机来调用的.
java基础-005的更多相关文章
- 005 01 Android 零基础入门 01 Java基础语法 01 Java初识 05 Eclipse简介
005 01 Android 零基础入门 01 Java基础语法 01 Java初识 05 Eclipse简介 Eclipse是一款集成开发工具--IDE. 集成开发环境(IDE,Integrated ...
- 微冷的雨Java基础学习手记(一)
使用Java理解程序逻辑 之凌波微步 船舶停靠在港湾是很安全的,但这不是造船的目的 北大青鸟五道口原玉明老师出品 1.学习方法: 01.找一本好书 初始阶段不适合,可以放到第二个阶段,看到知识点时,要 ...
- Java基础知识(壹)
写在前面的话 这篇博客,是很早之前自己的学习Java基础知识的,所记录的内容,仅仅是当时学习的一个总结随笔.现在分享出来,希望能帮助大家,如有不足的,希望大家支出. 后续会继续分享基础知识手记.希望能 ...
- [Java面经]干货整理, Java面试题(覆盖Java基础,Java高级,JavaEE,数据库,设计模式等)
如若转载请注明出处: http://www.cnblogs.com/wang-meng/p/5898837.html 谢谢.上一篇发了一个找工作的面经, 找工作不宜, 希望这一篇的内容能够帮助到大 ...
- 【JAVA面试题系列一】面试题总汇--JAVA基础部分
JAVA基础 基础部分的顺序: 基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法 线程的语法,集合的语法,io 的语法,虚拟机方面的语法 每天几道,持续更新!! 1.一个". ...
- 最适合作为Java基础面试题之Singleton模式
看似只是最简单的一种设计模式,可细细挖掘,static.synchronized.volatile关键字.内部类.对象克隆.序列化.枚举类型.反射和类加载机制等基础却又不易理解透彻的Java知识纷纷呼 ...
- java基础练习 字符串,控制流,日历,日期等
1,对基本控制流程的一些练习 package org.base.practice3; import org.junit.Test; /** * Created with IntelliJ IDEA. ...
- Java基础知识【下】( 转载)
http://blog.csdn.net/silentbalanceyh/article/details/4608360 (最终还是决定重新写一份Java基础相关的内容,原来因为在写这一个章节的时候没 ...
- Java基础知识【上】(转载)
http://blog.csdn.net/silentbalanceyh/article/details/4608272 (最终还是决定重新写一份Java基础相关的内容,原来因为在写这一个章节的时候没 ...
- java基础学习03(java基础程序设计)
java基础程序设计 一.完成的目标 1. 掌握java中的数据类型划分 2. 8种基本数据类型的使用及数据类型转换 3. 位运算.运算符.表达式 4. 判断.循环语句的使用 5. break和con ...
随机推荐
- MariaDB 加密特性及使用方法
版权声明:本文由吴洪辉原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/193 来源:腾云阁 https://www.qclo ...
- java 集合(List)
List: 特有的方法: 添加: add(int index, E element) addAll(int index, Collection<? extends E> c) 获取: ge ...
- java main函数
public static void main(String[] args)[String args[]]也对 1)public :公共的权限最大,在任何情况下都可以访问. 原因:为了保证java虚拟 ...
- 本地化Model Factory
即让其生成中文的测试数据 先简单介绍Model Factory两个常用方法: 进入tinker页面生成测试数据: Factory(User::class,10)->make():make()方法 ...
- canvas调节视频颜色
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Java线程与多线程教程
本文由 ImportNew - liken 翻译自 Journaldev. Java线程是执行某些任务的轻量级进程.Java通过Thread类提供多线程支持,应用可以创建并发执行的多个线程. 应用 ...
- 为什么要使用SLF4J而不是Log4J
每一个Java程序员都知道日志对于任何一个Java应用程序,尤其是服务端程序是至关重要的,而很多程序员也已经熟悉各种不同的日志库如java.util.logging.Apache log4j.lo ...
- C与C++在const用法上的区别
首先,C和C++在大体结构上不同,却在语法上相同. 所以在使用的时候,我们会时常遇到一些莫名其妙的问题,觉得语法上是正确的,但是编译的时候却出现一个红色的 error! 比如今天我遇到的这个有意思的 ...
- (转载)Android理解:显式和隐式Intent
Intent分两种:显式(Explicit intent)和隐式(Implicit intent). 一.显式(设置Component) 显式,即直接指定需要打开的activity对应的类. 以下多种 ...
- Java 集合系列 13 WeakHashMap
java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...