• Java编程思想笔记(初始化与清理)


          1.用构造器确保初始化:new Rock(); //将会为对象分配存储空间,并调用相应的构造器。

          2.方法重载

          2(1)区分重载方法:每个重载的方法都必须有独一无二的参数类型列表(参数顺序的不同也足以区分两个方法,一般不要这样做)

          2(2)涉及基本类型的重载:如果传人的数据类型小于方法中声明的形式参数类型,实际数据类型就会被提升(char型略有不同,如果无法找到恰好接受char参数的方法,就会把char直接提升至int)。如果传人的实际参数较大,就得通过类型转换来执行窄化转换。

          2(3)以返回值区分重载方法:(不用)

          3.默认构造器:你没有提供任何构造器,编译器会认为“你需要一个构造器,让我给你制造一个吧”;但假如你已写了一个构造器,编译器则会认为“啊,你已写了一个构造器,所以你知道你在做什么,你是刻意省略了默认构造器。”

          4.this关键字:this关键字只能在方法内部使用,表示对“调用方法的那个对象”的引用。为了将其自身传递给外部方法,Apple必须使用this关键字。

          4(1).在构造器中调用构造器:由于参数s的名称和数据成员s的名字相同,所以会产生歧义。使用this.s来代表数据成员就能解决这个问题。

          4(2).static的含义:仅仅通过类本身来调用static方法(static主要用途)

          5.清理:终结处理和垃圾回收:1.假设某个对象在创建过程中会将自己绘制到屏幕上,如果不是明确地从屏幕上将其擦除,它可能永远得不到清理。2.只要程序没有濒临存储空间用完的那一刻,对象占用的空间就总得不到释放。如果程序执行结束,并且垃圾回收器一直都没有释放你创建的任何对象的存储空间,则随着程序的推出,那些资源也会全部交还给操作系统。

          5(1).finalize()的用途何在:回收程序不再使用的内存。

          5(2).你必须实施清理:如果希望进行除释放存储空间之外的清理工作,还是得明确调用某个恰当的Java方法。这就等同于使用析构函数了,只是没有它方便。

          5(3).终结条件:要是对象代表了一个打开的文件按,在对象被回收前程序员应该关闭这个文件。只要对象中存在没有被适当清理的部分,程序员就存在很隐晦的缺陷。finalize()可以用来最终发现这种情况——尽管它并不总是会被调用。如果某次finalize()的动作使得缺陷被发现,那么就可据此找出问题所在——这才是人们真正关心的。

          5(4).Java垃圾回收器如何工作:

          6.成员初始化:数据成员的初始值没有给出,但它们确实有初始值(char值为0,所以显示为空白)。这样至少不会冒“未初始化变量”的风险了。在类里定义一个对象引用时,如果不将其初始化,此引用就会获得一个特殊值null。

          6(1).指定初始化

          7.构造器初始化:无法阻止自动初始化的进行,它将在构造器被调用之前发生。public class Counter{ int i; Counter() { i = 7;}} //i首先会被置0,然后变成7。

          7(1).初始化顺序

          7(2).静态数据的初始化:1.无论创建多少个对象,静态数据都只占用一份存储区域。2.static关键字不能应用于局部变量,因此它只能作用于域。3.只有在第一个Table对象被创建(或者第一次访问静态数据)的时候,它们才会被初始化。此后,静态对象不会再次被初始化。4.初始化的顺序是先静态对象,而后是“非静态”对象。

          7(3)显示的静态初始化:static int i; static {i = 47;}

          7(4).非静态实例初始化:

          8.数组初始化:int[] a1;(或者 int a1[];)

          8(1).可变参数列表:static void printArray(Object... args)

          9.枚举类型:你可以将enum用作另外一种创建数据类型的方式,然后直接将所得到的类型拿来使用。

        

  • 相关阅读:
    Tech road one step Dec-5 to Dec-11
    Tech road one step Nov-28 to Dec-4
    Tech road one step 13-Nov to 20-Nov
    Unity 相机花式分屏
    Unity渲染
    Perfect Rectangle(完美矩形)
    Max Points on a Line(直线上最多的点数)
    Unity之CharacterController 碰撞问题总结
    cocos2dx 实现flappybird
    effectiveC++ 内存管理 学习笔记
  • 原文地址:https://www.cnblogs.com/Zara/p/5760016.html
Copyright © 2020-2023  润新知