system类的 静态方法可以启动垃圾回收器。_Java—System类入门学习
![](/assets/blank.gif)
第三阶段 JAVA常见对象的学习
System类
System类包含一些有用的字段和方法,他不能被实例化
//用于垃圾回收public static void gc()//终止正在运行的java虚拟机。参数用作状态码,根据惯例,非0表示异常终止public static void exit(int status)//System.out.println(System.currentTimeMillis());//返回从1970年1月1日到现在时间的毫秒数(协调时间)public static currentTimeMills()public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)//src - 源数组。 //srcPos - 源数组中的起始位置。 //dest - 目标数组。 //destPos - 目的地数据中的起始位置。 //length - 要复制的数组元素的数量。
arraycopy方法的使用案例
int[] arr = {11, 22, 33, 44, 55};int[] arr2 = {6, 7, 8, ,9 ,10};System.arraycopy(arr, 1, arr2, 2, 2);System.out.println(Arrays.toString(arr));System.out.println(Arrays.toString(arr2));//运行结果[11, 22, 33, 44, 55][6, 7, 22, 33, 10]
currentTimeMills()使用案例
package cn.bwh_02_currenTimeMillis;public class SystemDemo {public static void main(String[] args) {//统计这段程序运行时间long start = System.currentTimeMillis();for (int x = 0; x < 10000; x++){System.out.println("Hello" + x);}long end = System.currentTimeMillis();System.out.println("共耗时" + (end - start) + "毫秒");}}//运行结果Hello9997Hello9998Hello9999共耗时79毫秒
System.gc() 可用于垃圾回收.当使用System.gc() 回收某个对象所占用的内存之前,通过要求程序调用适当的方法来清理资源,在没有明确指定资源清理的情况下,Java提高了默认机制来清理该对象的资源,就是调用object类的finalize()方法,finalize()方法的作用是释放一个对象占用的内存空间时会被JVM调用.而子类重写该方法, 就可以清理对象占用的资源,该方法没有链式调用, 所以必须手动实现。
从程序结果上可以发现执行system.gc() 前系统会自动调用finalize() 方法清除对象占有的资源。通过super.finalize()可以实现从下到上的方法调用,即先释放自己的资源,再释放父类的资源。
但是不要在程序中频繁的调用垃圾回收,因为每一次执行垃圾回收jvm都会强制启动垃圾回收器运行,就会耗费更多的系统资源会与正常的Java程序运行争抢资源,只有在执行大量的对象的释放才调用垃圾回收最好。
package cn.bwh_01_gc;public class Student {private String name;private int age;public Student() {}public Student(String name, int age) {this.name = name;this.age = age;}@Overrideprotected void finalize() throws Throwable {System.out.println("当前对象被回收了" + this);super.finalize();}}package cn.bwh_01_gc;public class GcDemo {public static void main(String[] args) {Student s = new Student("admin", 20);System.out.println(s);//让s不再指定堆内存,成为了垃圾s = null;System.gc();}}//运行结果cn.bwh_01_gc.Student@1b6d3586当前对象被回收了cn.bwh_01_gc.Student@1b6d3586
结尾:
如果内容中有什么不足,或者错误的地方,欢迎大家给我留言提出意见, 蟹蟹大家 !^_^
如果能帮到你的话,那就来关注我吧!(系列文章均会在公众号第一时间更新)
在这里的我们素不相识,却都在为了自己的梦而努力 ❤
一个坚持推送原创Java技术的公众号:理想二旬不止
![](/assets/blank.gif)
system类的 静态方法可以启动垃圾回收器。_Java—System类入门学习相关推荐
- system类的 静态方法可以启动垃圾回收器。_跟小伟一起学习类加载机制
我们在学习 java 基础的时候,从宏观上了解了一个类到运行大致是:.java文件通过javac编译器编译得到.class文件,在用到该类时,jvm 会加载该 class 文件,并创建对应的 clas ...
- 谈谈System类,再细细品味 垃圾回收机制System.gc()
目录 一.嵌套类汇总 1.为什么需要有垃圾回收机制? 2.System.gc(); 3.finalize()方法 System类:系统类,主要用于获取系统的属性数据,没有构造方法. System类包含 ...
- 面向对象,类,对象,GC垃圾回收器,private关键字
一.面向对象 是一种编程思想 1.三大特征 封装.继承.多态 二.类 class 类是一类事物的抽象 属性 --事物的特征 方法 --事物的行为 三.对象 是一类事物中具体的个体 对象类型 对象名 = ...
- 类和对象:一些相关的BIF - 零基础入门学习Python040
类和对象:一些相关的BIF 让编程改变世界 Change the world by program 一些类和对象相关的 BIF 今天我们来谈谈跟类和对象相关的一些BIF(内置函数): issubc ...
- Java基础知识强化83:System类之gc()方法(垃圾回收)以及和finalize()区别
1. System概述: System类包含一些有用的类字段和方法.它不能被实例化. 2. gc()方法:垃圾回收器 1 public static void gc() 调用gc方法暗示着 ...
- System类入门学习
第三阶段 JAVA常见对象的学习 System类 System类包含一些有用的字段和方法,他不能被实例化 //用于垃圾回收 public static void gc()//终止正在运行的java虚拟 ...
- JAVA学习3-抽象类、内部类、数组、Object、System、String、基本包装类型
21.类之间的关系 is a:继承关系 has a : 关联关系,通常以属性的形式存在 like a:实现关系,通常是类与接口的关系; 22.抽象类与接口的区别 抽象类是半抽象的,接口是完全抽象的: ...
- 垃圾回收算法_Java 垃圾回收算法与几种垃圾回收器
一.如何确定某个对象是"垃圾"? 目前主流垃圾回收器都采用的是可达性分析算法来判断对象是否已经存活,不使用引用计数算法判断对象时候存活的原因在于该算法很难解决相互引用的问题.如何确 ...
- 垃圾回收器之串行、吞吐量优先、响应时间优先的的垃圾回收器
4. 垃圾回收器 本篇讲述了串行.吞吐量优先.响应时间优先的垃圾回收器,关于自从JDK9 开始默认的 G1 垃圾回收器会在下篇文章讲述. 串行 单线程 堆内存较小,适合个人电脑 吞吐量优先 多线程 堆 ...
最新文章
- WhatFontIs - 字体百科全书,没有不认识的字体
- duilib 子窗口位置_Duilib学习笔记《02》— 界面布局
- 8分频verilog线_Verilog设计分频器(面试必看)
- 检查表单元素的值是否为空
- Java集合Collection与List的关系、常见用法
- 《小马哥Spring Cloud系列》十五:分布式应用追踪-视频笔记
- 姿态估计:人体骨骼关键点检测综述(2016-2020)
- Silverlight中需要用到模板选择器(DataTemplateSelector)的替代方案
- 作为企业创业者的老板,只要把这十八个方面做正确就好
- dw的php文件怎么连接mysql_wordpress php文件如何链接到mysql数据库
- pycharm怎么安装python3.6_【python】Mac在Pycharm中导入python3.6(简单易行)
- Oracle 数据库常用操作总结二之数据库的导入和导出
- 华为tftp服务器如何配置文件,配置tftp服务器
- 817c语言程序设计,全国名校C语言程序设计考研真题汇编
- ⭐App爬虫系列⭐:获取王者荣耀全英雄的名称、类型、热度、胜率、登场率、Ban率
- 英文PDF免费翻译成中文小方法!!!
- Matplotlib等高线图
- 计算机图形学VC 配置,计算机图形学(VC++实现)(第2版)
- 骚男的计算机音乐,lol骚男战歌bgm_lol骚男战歌背景音乐汇总_快吧游戏
- 基于java植物养护管理系统ssm
热门文章
- 使用graphite和grafana进行应用程序监控
- web 开发之js---js 中的数组操作
- DLL文件无法删除怎么解决
- VMware vSphere Replication 5.5 安装配置【展现虚拟化商业价值征文大赛】
- select标签中的选项分组
- python 实现感知器(一)
- 维特比算法—打字输入预测
- 简单易用的.NET免费开源RabbitMQ操作组件EasyNetQ解析
- 解决VS2013调试ASP.NET中无法调试的问题:当前不会命中断点。在 XXXX.dll 中找到了 XXX.cs 的副本,但是当前源代码与 XXXX.dll 中内置的版本不同。...
- Entity Framework在WCF中序列化的问题