java初始化与清理
初始化与清理
欢迎转载,转载烦请注明出处,谢谢。
https://www.cnblogs.com/sx-wuyj/p/11177257.html
1.用构造器确保初始化
java中通过提供构造器,可以确保每个对象都得到初始化.创建某个对象时,如果该对象具有构造器,java就会在用户有能力调用该对象之前自动调用该对象的构造器,从而保证了初始化的进行.
构造器的命名:
1. 因为取的任何名字都有可能与类的某个成员名称冲突.
2. 必须让你编译器知道应该调用哪一个方法.
所以构造器的命名和类名相同.在初始化期间要自动调用构造器.
class Rock{
Rock(){
System.out.println("这是一个构造器")
}
}
由于构造器的名字和类名完全相同,所以每个方法首字母小写的编码风格并不适用于构造器.
- java当中有两种形式的构造器
1. 无参构造器:也叫默认构造器.很多时候我们在定义某个实体类时并没有去编写构造器,但是对象依旧被初始化了,正是因为无参构造器的存在.
class Rock{
Rock(){
System.out.println("这是一个无参构造器")
}
}
1. 有参构造器:可以指定如何创建对象,可以在初始化对象时提供实际参数.参数可以是一个,也可以是参数.以下两种都是可以的.
class Rock{
Rock(int i){
System.out.println("这是一个有参构造器")
}
Rock(int i,String str){
System.out.println("这同样也是一个有参构造")
}
}
需要注意的是,构造器可以重载.另外如果没有定义构造器,那么java就会为我们创建一个无参构造器;如果定义了具体的构造器,那java就不会再为我们创建无参构造器,此时如果需要无参构造器那就需要我们手动创建了.正是因为会默认创建一个无参构造,所以确保了对象的初始化.
2. 方法重载
- 2.1 区分重载方法
每个重载方法都拥有独一无二的参数列表,可以根据参数的个数区分,甚至参数列表的顺序也可以用来区分重载方法,但是不建议这么做,不利于程序的后期维护. - 2.2涉及基本类型的重载
如果传入的数据类型小于方法中声明的参数类型,实际数据类型就会被提升.
如果传入的数据类型大于方法中声明的参数类型,就必须强制类型转换大类型转为小类型,不然编译器就会报错 - 2.3 以返回值区分重载方法
首先说明这种方式是错误的
class{
method();
method(int x){
return x;
}
int x = method(1);
}
这种情况下是可以的,可我们有时候并不关心方法的返回值是什么,比如method();
这时候java应该调用哪个方法呢,所以以这种方式来区分方法重载是行不通的.
- 2.4 this关键字
this表示调用方法的对象的引用,this只能用在方法内部. - 2.5 清理:终结处理和垃圾回收
- 对象可能不被垃圾回收
只要程序没有濒临存储空间用完的那一刻,对象所占的空间总也得不到释放.制止程序运行结束,垃圾回收也一直没有释放你创建任何对象的存储空间,随着程序的退出,这些资源也将交由系统.因为垃圾回收本身也有开销,要是不使用他,就不需要支付这部分的开销.
2.5.1 finalize()的用途
finalize()主要用于通过某种创建对象以外的方式创建了对象,这种特殊情况主要是发生在使用了本地方法的情况下,本地方法是一种在java中调用非java代码的方式.
- 对象可能不被垃圾回收
java初始化与清理的更多相关文章
- 图解 & 深入浅出Java初始化与清理:构造器必知必会
Writer :BYSocket(泥沙砖瓦浆木匠) 微 博:BYSocket 豆 瓣:BYSocket FaceBook:BYSocket Twitter ...
- Java 初始化和清理
初始化和清理是影响代码安全的两个重要因素. 一.初始化 1. 方法重载 构造器与类名相同,成为强制重载方法名的原因之一.重载规则:每个重载的方法必须拥有独一无二的参数类型列表.不能根据返回值来区分重载 ...
- [THINKING IN JAVA]初始化和清理
4.5初始化和清理 5.1 构造器初始化 无参:如果一个类没有构造器,那么会有一个默认的无参构造器,并且只能通过无参构造器初始化对象: 带参:传入参数初始化成员变量或者其它初始化操作需要的参数,如果类 ...
- Java 初始化与清理
用构造器确保初始化 如何自定义构造器(constructor)? 构造器方法的名称与类名相同,并且没有返回值. 需要注意,在定义构方法时,方法名前面不要添加任何的类型说明符,格式:类名(){},构造方 ...
- 浅谈Java中的初始化和清理
引言 这篇文章我们主要介绍Java初始化和清理的相关内容,这些内容虽然比较基础,但是还是在这边做一个简单的总结,方便以后查阅. 初始化过程 Java尽力保证:所有变量在使用之前都会得到恰当的初始化(对 ...
- Java编程思想——初始化与清理
PS:最近一直忙于项目开发..所以一直没有写博客..趁着空闲期间来一发.. 学习内容: 1.初始化 2.清理 1.初始化 虽然自己的Java基础还是比较良好的..但是在解读编程思想的时候还是发现了 ...
- Java的初始化与清理
大家都知道,Java是站在巨人的肩上成功的,它是在C&C++的基础上进一步的开发,投入面向对象开发的怀抱.Java吸取了很多以前的教训,加入自己很多独创的方式.在程序语言发展初期,许多C程序员 ...
- Java编程思想学习(五)----第5章:初始化与清理
随着计算机革命的发展,“不安全”的编程方式已逐渐成为编程代价高昂的主因之一. C++引入了构造嚣(constructor)的概念,这是一个在创建对象时被自动调用的特殊方法.Java中也采用了构造器,并 ...
- 《Java编程思想》——初始化与清理(一)读书笔记
第一次写这个,这一章都用word写的,结果复制过来没图片....只能上传word文档了.以后改用markdown比较好 word文档地址:<Java编程思想>--初始化与清理(一)读书笔记
随机推荐
- sql server 2014 的安装
1.双击打开sql_server2014的安装包 2.点击弹出来的对话框的确定按钮 3.等待一会,安装包在准备中 4.弹出SQL server 安装中心,点击全新 SQL Server 独立安装 5. ...
- 菜鸟 ssm 框架的学习之路
跟着老师学习了两个月的java语言,现在学习到了框架的部分,一直想在博客上写点东西的,只是自己一直没有时间,其实到底也是懒,鲁迅说过:"时间就像海绵里的水,只要愿意去挤还是有的", ...
- 61 (OC)* 代理 block 通知 代理 kvo
1.从源头上理解和区别block和delegate delegate运行成本低,block的运行成本高. block出栈需要将使用的数据从栈内存拷贝到堆内存,当然对象的话就是加计数,使用完或者bloc ...
- 40 (OC)* 数据库常见sql语句
1:增加INSERT INTO t_student (name, age) VALUES ('liwx', 18);2:删除DELETE FROM t_student WHERE name = 'li ...
- C++基础之顺序容器
顺序容器简介: 顺序容器类型 描述 vector 可变大小数组,支持快速访问,在尾部之外的地方插入或删除时可能很慢 deque 双端队列.支持快速访问,在头尾插入删除会很快. list 双向列表.只支 ...
- ECSHOP完美解决Deprecated: preg_replace()报错的问题
随着PHP5.5 的普及,ECSHOP系统又爆出了新的错误.PHP发展到PHP5.5版本以后,有了很多细微的变化.而ECSHOP官方更新又太慢,发现这些问题后也不及时升级,导致用户安装使用过程中错误百 ...
- 1.html基础知识
1.html定义: html是一种超文本标记语言,“超文本”是指页面可以包含图片.链接.音乐.程序等非文字元素. Html不是一种编程语言. 2.html5的新特性: 用于绘画的canvas元素: 用 ...
- SUSE Storage6 环境搭建详细步骤 - Win10 + VMware WorkStation
学习 SUSE Storage 系列文章 (1)SUSE Storage6 实验环境搭建详细步骤 - Win10 + VMware WorkStation (2)SUSE Linux Enterpri ...
- Python采集VIP收费QQ音乐,一起来听周董最新的《说好不哭》,省3块不香吗?
环境: windows python3.6.5 模块: requests selenium json re urllib 环境与模块介绍完毕后,就可以来实行我们的操作了. 第1步: 通过一个解析网站: ...
- redis实践 —— redisReply简析
redisReply 定义如下: /* This is the reply object returned by redisCommand() */ typedef struct redisReply ...