Java构造方法与析构方法实例剖析
Java构造方法
类有一个特殊的成员方法叫作构造方法,它的作用是创建对象并初始化成员变量。在创建对象时,会自动调用类的构造方法。
构造方法定义规则:Java 中的构造方法必须与该类具有相同的名字,并且没有方法的返回类型(包括没有void)。另外,构造方法一般都应用 public 类型来说明,这样才能在程序任意的位置创建类的实例--对象。
示例:下面是一个 Rectangle 类的构造方法,它带有两个参数,分别表示矩形的长和宽:
1 public class Rectangle { 2 public Rectangle(int w, int h) { 3 width = w; 4 height = h; 5 } 6 public Rectangle() {} 7 }
每个类至少有一个构造方法。如果不写一个构造方法,Java 编程语言将提供一个默认的,该构造方法没有参数,而且方法体为空。如果一个类中已经定义了构造方法则系统不再提供默认的构造方法。
Java析构方法
当垃圾回收器将要释放无用对象的内存时,先调用该对象的finalize()方法。如果在程序终止前垃圾回收器始终没有执行垃圾回收操作,那么垃圾回收器将始终不会调用无用对象的finalize()方法。在Java的Object基类中提供了protected类型的finalize()方法,因此任何Java类都可以覆盖finalize()方法,通常,在析构方法中进行释放对象占用的相关资源的操作。
Java 虚拟机的垃圾回收操作对程序完全是透明的,因此程序无法预料某个无用对象的finalize()方法何时被调用。如果一个程序只占用少量内存,没有造成严重的内存需求,垃圾回收器可能没有释放那些无用对象占用的内存,因此这些对象的finalize()方法还没有被调用,程序就终止了。
程序即使显式调用System.gc()或Runtime.gc()方法,也不能保证垃圾回收操作一定执行,也就不能保证对象的finalize()方法一定被调用。
当垃圾回收器在执行finalize()方法的时候,如果出现了异常,垃圾回收器不会报告异常,程序继续正常运行。
@Override protected void finalize(){System.out.println("in finalize"); }
在 Java 编程里面,一般不需要我们去写析构方法,这里只是了解一下就可以了。
转载于:https://www.cnblogs.com/ECJTUACM-873284962/p/8383463.html
Java构造方法与析构方法实例剖析相关推荐
- java 构造方法和析构方法_PHP面向对象程序设计之构造方法和析构方法详解
本文实例讲述了PHP面向对象程序设计之构造方法和析构方法.分享给大家供大家参考,具体如下: 构造方法和析构方法是对象中的两个特殊方法,它们都与对象的生命周期有关.构造方法是对象创建完成后第一个被对象自 ...
- python中构造方法和析构方法的区别_类的构造方法、析构方法、实例方法
类的构造方法.析构方法.实例方法 上一个小节我们学习了 Python 的类属性和实例属性的知识点,这个小节我们还是会学习关于类的知识.这节课我们会学习类的构造方法.析构方法和实例方法. 1. 实例方法 ...
- java构造方法和普通方法区别
java构造方法和普通方法 构造方法 构造方法也叫做构造器,使用来创建一个实例对象的. 1.构造方法必须和类名一致,并且没有返回值 public class Test{public Test(){} ...
- 009-对象—— 构造方法__construct析构方法__destruct使用方法 PHP重写与重载
<?php /**构造方法__construct析构方法__destruct使用方法 PHP重写与重载*/ //构造方法:当实例化对象时,自动运行的方法 /*class channel{func ...
- Java.io.File.getPath()方法实例
转载自 Java.io.File.getPath()方法实例 java.io.File.getPath() 方法将抽象路径名到路径名字符串.为了分离名称的序列所产生的字符串使用默认名称分隔符. 声明 ...
- Java中的析构方法finalize
Java中的析构方法finalize 在C++程序设计中有构造函数与析构函数的概念,并且是内存管理技术中相当重要的一部分,而在Java语言中只有构造器(也可以称为构造函数)的概念,却没有析构器或析构函 ...
- Java 程序连接 Informix 数据库方法实例介绍
Java 程序连接 Informix 数据库方法实例介绍 Informix 是一种应用广泛的关系型数据库服务器,支持多种类型的客户端连接程序,包括 .Net.Java.PHP 等.对于 Java 程序 ...
- python中构造方法和析构方法的区别_基于Python构造方法与析构方法的研究
基于 Python 构造方法与析构方法的研究 林观德 [期刊名称] < <现代职业教育> > [年 ( 卷 ), 期] 2019(000)018 [摘要] Python 语言是 ...
- 陈力:传智播客古代 珍宝币 泡泡龙游戏开发第32讲:PHP 构造方法、析构方法
陈力:传智播客古代 珍宝币 泡泡龙游戏开发第32讲:PHP 构造方法.析构方法 构造方法__construct()的主要作用是完成对新对象的初始化,没有返回值,析构方法__destruct的作用主要用 ...
最新文章
- 对现有代码的分析方法随想
- SQLServer之创建非聚集索引
- 关于【C++项目:无法解析的外部符号】
- 匿名函数、冒泡排序,二分法, 递归
- memcached的java客户端_Memcached Java客户端
- Android工程中三种库的区别:Private Libraries、Referenced Libraries、Dependency Libraries
- iBatis下使用like查询,以及需要注意的问题
- android main system log,android日志缓冲区,system,radio,main,events是什么意思啊?
- Super超图,GIS软件
- zerorpc java_Zerorpc 支持暴露多个远程Api接口类
- HTML5开发手机项目—个人总结
- python多线程实现同时下载_Python实现多线程下载
- 【VSLAM学习记录2】初识cmake
- 求1到20的阶乘之和
- 有限元基础(一) Jacobian 矩阵和高斯积分
- 图片短链接生成器在线
- while循环的用法
- 民工哥读者中秋福利!包邮送书!
- Windows HANDLE是什么
- 关于Likelihood 和 Probability的差别
热门文章
- 多线程socket 端口扫描程序,实现了,但是速度不行,求指点。
- 【android】ActivityGroup初体验
- DelphiX教程系列 3 - 动画 part 1
- 道指mt4代码_道恩转债上市首日遭大股东清仓式减持!
- cas .net 重定向循环_接口测试平台接入企业cas(一)
- feign直接走熔断_SpringCloud微服务面试必问:Hystrix 服务降级、熔断
- android京东首页轮播代码,仿京东商品详情轮播图
- Eclipse安装STS插件并解决安装缓慢问题
- 字节新产品「识区APP」上线
- 什么是中台业务架构?