Java编程思想之五-初始化与清理
- 初始化和清理的作用:为了提高程序的安全性,消除资源占用的浪费,Java当中采用了构造器来初始化,提供了“垃圾回收器”是内存资源自动回收。
- Java当中,提供了构造器来进行初始化操作,因此就没有必要在每个类都要定义一个initialize () 方法来进行初始化操作。
- Java类的构造器名称必须与类名相同,它是一种特殊类型的方法,因为它没有返回值(new表达式返回的是新建对象的引用,但构造器本身并没有任何返回值),而且没有参数的构造器是默认构造器,从概念上讲,“初始化”和“创建”是彼此独立的,但是在Java当中,“初始化”和“创建”捆绑在一起,两者不分离。
- 方法的重载是指方法名相同,参数不同,Java通过参数类型列表来确定执行的是哪一个方法,传输过程中,如果传入的数据类型小于方法中声明的形式参数类型,实际数据类型就会被提升,另外,根据方法的返回值来区分重载方法行不通。
- Java当中,this关键字只能在方法内部使用,表示对当前对象的引用,如果在方法内部调用同类中另一个方法,不必使用this,直接调用即可。
- Java静态类,static方法内部不能调用非静态方法,static方法就是没有this的方法。
- Java当中的垃圾回收器只知道释放那些经由new分配的内存,对于并非使用new获得的那些内存,Java允许在类中定义一个名为finalize()的方法,它的工作原理:一旦垃圾回收器准备好释放对象占用的存储空间,会首先调用finalize()方法,并且在下一次垃圾回收动作发生时,才会真正回收对象占用的内存,如果程序执行结束,垃圾回收器一直都没有释放所创建的任何对象的存储空间,程序退出时,这些资源也会全部交还给操作系统。
- 对象可能不被垃圾回收,垃圾回收不等于析构,垃圾回收只与内存有关;无论是“垃圾回收”还是“终结”,都不能保证一定会发生,如果Java虚拟机并没有面临内存耗尽的情况下,它不会浪费时间去执行垃圾回收去释放内存;System.gc()用于强制进行终结动作。
- Java垃圾回收采用的是自适应工作模式,“停止-复制”要求在释放旧有对象之前,必须把存活的对象把旧堆复制到新堆,将会导致大量的内存复制行为,垃圾回收引入了块,有了块之后,垃圾回收器在回收的时候就可以望废弃的块中复制对象了,每个块都有相应的代数来记录它是否存活,块在某处被引用,代数也会增加,垃圾回收器将对上次回收动作之后新分配的块进行整理,垃圾回收器会定期进行完整的清理动作-大型对象不会被复制(只是代数会增加),内含小型对象的那些块则被复制并整理,Java虚拟机会进行监视,如果所有对象都很稳定,垃圾回收器的效率降低的话,就切换到“标记-清扫”方式,同样,Java虚拟机会跟踪“标记-清扫”的效果,要是堆空间出现很多碎片,就会切换回“停止-复制”方式,这就是“自适应”技术。
- 在同一个类中无论局部变量放在任何位置,它们都会在调用构造器或其他方法之前得到初始化。
- 无论创建多少个对象,静态数据都只占用一份存储区域,初始化的顺序是先静态对象,而后是“非静态”对象,构造器实际上也是静态的。
- 在类的内部,变量定义的先后顺序决定了初始化的顺序,即使变量定义散布于方法定义之间,它们仍旧会在任何方法(包括构造器)被调用之前得到初始化。
- Static关键字不能应用于局部变量,它只能作用于域,如果一个域是静态的基本类型域,且没有初始化,那么,它默认是基本数据类型的初值,如果是对象引用,它默认的初值就为null。
- 所有数组都有一个固有成员length,Java数组默认从0开始,以length-1结束。
- Arrays.toString()方法属于java.util标准类库,它将产生一维数组的可打印版本。
- 枚举类型enum关键字,枚举类型的实例是常量,按照命名惯例它们都用大写字母表示。
相关推荐
java编程思想-初始化与清理了解this之后,你就能更全面地理解“静态(static)方法”的含义。静态方法就是没有this的方法。在“静态方法”的内部不能调用“非静态方法”,反过来倒是可以的。而且你可以在没有创建...
《Java编程思想》第五章主要讨论的是对象的初始化与清理,包括构造器的使用、方法重载以及默认构造器的概念。下面将详细阐述这些知识点。 ### 一、构造器确保初始化 1. **为什么要引入构造器**:在Java中,构造器...
Java编程思想中的初始化与清理是编程过程中的关键环节,它涉及到类的实例化以及对象生命周期的管理。在Java中,构造器(Constructor)是确保对象初始化的重要工具。 1. **构造器确保初始化** - 构造器是与类同名的...
以上知识点总结了《Java编程思想》前几章的主要内容,涵盖了对象的创建与存储、类的定义、函数参数和返回值、运算符与流程控制以及初始化等方面的基础知识,对于初学者理解和掌握Java语言的基本概念非常有帮助。
《Java编程思想》是 Bruce Eckel 的经典著作,旨在深入阐述Java编程语言的核心概念和机制。这本书强调了Java作为一门“纯粹”的面向对象语言,与C++相比,它在设计时更加注重对象导向的本质。虽然C++和Java都是混合...
### Java编程思想学习笔记知识点...以上是《Java编程思想》学习笔记中关于操作符、控制语句、对象、初始化与清理等关键知识点的总结。通过理解这些基础概念和技术细节,可以更好地掌握 Java 编程的核心原理和技术实践。
《Java编程思想读书笔记》 ...以上内容是《Java编程思想》的前四章概述,涵盖了Java编程的基础概念,包括对象、类、内存管理、控制流和初始化。深入理解和掌握这些知识点是成为熟练Java开发者的基石。
### 中文 Java编程思想(完整的中文简体第二版) #### 重要知识点概览 本教材由Bruce Eckel撰写,智慧东方工作室翻译,是一本全面深入介绍Java编程语言的经典之作。本书不仅适合Java初学者,也适合希望深入了解Java...
#### 五、初始化与清理 对象的初始化和清理是Java程序中不可忽视的部分。构造函数确保了对象的正确初始化,而垃圾回收机制自动处理对象的销毁,避免了手动释放资源的复杂性和潜在的错误。 #### 六、隐藏实现 封装...
但是在解读编程思想的时候还是发现了许多的细节问题自己并没有完全的掌握.既然是研磨,那么应该更加的细致. i.构造方法的重载. 首先说明一下,为什么构造方法需要重载. 需要重载的一个重要原因是,因为我们...
通过构造函数(constructor)可以初始化新创建的对象,析构函数(在Java中为 finalize() 方法)则用于清理对象在内存中的占用。 描述中提到的“第二版”可能是指《Thinking in Java》的早期版本,但实际上提供的...
《JAVA编程思想》这本书深入探讨了JAVA这门编程语言的核心概念和实践技巧。以下是其中一些关键知识点的详细解析: 1. **对象与接口**:对象是面向对象编程的基础,它封装了数据和操作这些数据的方法。接口是定义...
### Java编程思想笔记知识点概述 #### 第 1 章 对象导论 在这一章节中,主要介绍了Java中的基本概念——对象。对象是面向对象编程的核心,它封装了数据和行为。本章首先解释了对象的概念,接着讨论了如何创建对象...