zoukankan      html  css  js  c++  java
  • 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左右的内存)就足够了.

      了解更多关于垃圾收集器可以参考http://www.cnblogs.com/lrh-xl/p/5309141.html

    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虚拟机来调用的.

  • 相关阅读:
    OllyUni.dll
    系统修改利器XueTr
    dubbo+zipkin调用链监控(二)
    Kafka Manager
    简易RPC框架-SPI
    Spring Cache扩展:注解失效时间+主动刷新缓存(二)
    从头开始搭建一个Spring boot+ActiveMQ高可用分布式环境
    简易RPC框架-熔断降级机制
    简易RPC框架-代理
    转:一篇讲线上优化查 CPU的脚本
  • 原文地址:https://www.cnblogs.com/lrh-xl/p/5335420.html
Copyright © 2011-2022 走看看