一个变量指向new对象,就是引用,在java中有四种引用,分别是强软弱虚,常见的Object o = new Object(),就是强引用,垃圾回收的时候,强引用不会被回收。 公用类: public class M { @Override protected void finalize() thro ...
分类:
编程语言 时间:
2020-04-21 12:48:05
阅读次数:
56
1、System.gc() 和 Runtime.gc() 这两个方法用来提示JVM要进行垃圾回收。但是,立即开始还是延迟进行垃圾回收是取决于JVM的。 程序员可以手动执行 System.gc(),通知 GC 运行,但是 Java 语言规范并不保证 GC 一定会执行。 2、. finalize() 方 ...
分类:
其他好文 时间:
2020-04-14 22:42:40
阅读次数:
79
1. 概述 1. 继续聊 jvm 命令行工具 2. 背景 1. 之前聊过一些简单的命令行工具 1. jps 1. 查看当前 java 进程 2. jinfo 1. 查看 java 运行参数 2. 查看当前 相关系统变量 3. jstat 1. 查看 jvm 的 堆内存,gc 统计信息 2. 如果我想 ...
分类:
编程语言 时间:
2020-04-08 20:41:39
阅读次数:
89
74. throw 和 throws 的区别? throw:是真实抛出一个异常。 throws:是声明可能会抛出一个异常。 75. final、finally、finalize 有什么区别? final:是修饰符,如果修饰类,此类不能被继承;如果修饰方法和变量,则表示此方法和此变量不能在被改变,只能 ...
分类:
编程语言 时间:
2020-03-27 12:26:13
阅读次数:
60
74. throw 和 throws 的区别? throw:是真实抛出一个异常。 throws:是声明可能会抛出一个异常。 75. final、finally、finalize 有什么区别? final:是修饰符,如果修饰类,此类不能被继承;如果修饰方法和变量,则表示此方法和此变量不能在被改变,只能 ...
分类:
编程语言 时间:
2020-03-23 00:25:48
阅读次数:
95
阅读目录(Content) 一、clone()方法 1.1、clone与copy的区别 1.2、Shallow Clone与Deep Clone 1.3、clone方法的保护机制 1.4、clone方法的使用 二、toString()方法 三、getClass()方法 四、finalize()方法 ...
分类:
其他好文 时间:
2020-03-18 00:04:07
阅读次数:
77
74、throw和throws的区别? throw是抛出异常 throws是声明可能会抛出异常 75、final、finally、finalize的区别? final: 是修饰符,如果修饰类,此类不能被继承; 如果修饰方法和变量,则表示此方法和变量不能在被改变,只能使用。 finally: 是try ...
分类:
编程语言 时间:
2020-03-11 01:05:34
阅读次数:
72
1.尽早释放无用对象的引用 A a = new A(); a = null;//对象a使用完毕后,主动将其设为null2.尽量不要主动调用某个对象的Finalize()方法 ,应该交给垃圾回收机制调用 覆盖finalize方法以确保资源释放 作为一个补充操作,以防用户忘记“关闭“资源,3.尽量减少C ...
分类:
编程语言 时间:
2020-03-06 13:03:13
阅读次数:
58
为什么不要通过finalize方法去释放资源? 当java只跑一个main方法,它背后也是在跑多线程。其中有一个守护线程就是Finalizer,是它去执行所有的finalize方法。 但是由于它是守护线程,因此当主线程(main线程)结束,守护线程也会结束,很可能没来得及执行finalize方法。 ...
分类:
其他好文 时间:
2020-03-06 01:45:47
阅读次数:
86
本文源码: "GitHub·点这里" || "GitEE·点这里" 一、并发编程简介 1、基础概念 程序 与计算机系统操作有关的计算机程序、规程、规则,以及可能有的文件、文档及数据。 进程 进程是计算机中的程序,关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础 ...
分类:
编程语言 时间:
2020-03-04 20:54:06
阅读次数:
73