美文网首页
5.Java初始化与清理

5.Java初始化与清理

作者: 云木杉 | 来源:发表于2018-07-16 11:21 被阅读0次

清理与初始化那一章,那个难呀,太难了。

用构造器确保初始化

  • 在Java中,通过提供构造器,类的设计者可确保每个对象都会得到初始化。
  • 创建对象时,如果其类具有构造器,Java就会在用户有能力操作对象之前自动调用相应的构造器,从而保证初始化的进行。

方法重载

  • 在Java里,构造器是强制重载方法名的另一个原因。既然构造器(构造函数 无参)已经由类名决定,如果想用多种方式创建对象时(即可以用标准方式进行初始化,也可以多个参数作为构造来初始化),这就需要两个构造器
  • 区分重载的方法:每个重载的方法都必须有一个独一无二的参数类型列表。

默认构造器

this关键字

  • 通常写this,都是指“这个对象”或者当前对象,本身表示对当前对象的引用。
  • 一个类中写入多个构造器,当其中一个构造器想调用另外一个构造器时,使用this关键字。
  • 当构造参数的名称与当前成员变量的名称相同时,可用this关键字来区分

清理:终结处理和垃圾回收

  • 对象可能不被垃圾回收
  • 垃圾回收并不等于“析构”
  • 垃圾回收只与内存有关
    Java清理模式
  • 停止-复制-清理 复制清理的大概逻辑是,暂停当前的程序,将所有存活的对象复制出到另一个怼,没有复制的都是可回收的,然后进行清理
  • 标记-清扫 所依据的思路同样是从堆栈和静态存储区出发,遍历所有的引用,进而找出所有存活的对象。找到一个就标记一个,全部标记完成时,开始清理动作。
  • 停止-复制 意思是这种垃圾回收动作不是在后台进行的。

成员初始化

  • 局部变量 Java会强制初始化 但成员变量 有默认初始化值。

构造器初始化

  • 成员变量初始化优先级 > 构造函数 > 成员方法
    总结一个对象的创建过程 假设有个名为Dog的类
  • 1 即使没有显示地使用static关键字,构造器实际上也是静态方法。因此,当首次创建类型为Dog的对象时(构造器可以看成静态方法),或者Dog类的静态方法首次被访问时,Java解释器必须查找类路径,定位Dog.class文件
  • 2 然后载入Dog.class,有关静态初始化的所有动作都会执行。因此,静态初始化只在Class对象首次加载的时候进行一次。
  • 3 当用new Dog()创建对象的时候,首先将在堆上为Dog对象分配足够的存储空间。
  • 4 这块存储空间将被清零,这就自动地将Dog对象中的所有基本类型数据都设置成了默认值,而引用被设置成了null。
  • 5 执行所有出现于字段定义处的初始化动作。
  • 6 执行构造器。
  • 静态代码块,只在生成这个类的一个对象时,执行一次。(或首次访问属于哪个类的静态数据成员时)

数组初始化

  • 模模糊糊

枚举

  • 模模糊糊

相关文章

  • 5.Java初始化与清理

    清理与初始化那一章,那个难呀,太难了。 用构造器确保初始化 在Java中,通过提供构造器,类的设计者可确保每个对象...

  • 初始化与清理

    1.类中的成员变量会被自动初始化,而普通变量则必须要显式初始化后才能使用。 2.构造器初始化顺序:类中的任何位置的...

  • 初始化与清理

    static方法是没有this的方法。在static方法内部不能调用非静态方法(因为没有this关键字)。stat...

  • 初始化与清理

    1. 区分重载方法 规则很简单,每个重载的方法都必须有一个独一无二的参数类型列表。以返回值来区分重载方法是行不通的...

  • Spark Core源码精读计划#17:上下文清理器Contex

    目录 前言 初始化与类定义SparkContext中的初始化逻辑ContextCleaner类的属性成员清理任务及...

  • Java编程思想(四)

    第5章 初始化与清理 这一章主要讲了... Java 中提供了构造器和“垃圾回收器”解决初始化和清理的问题。 5...

  • 初始化与清理(java)

    整理总结 随着计算机革命的发展,“不安全”的编程方式已逐渐称为编程代价高昂的主因之一。其中,初始化与清理正是涉及安...

  • 005 初始化与清理

    用构造器确保初始化 在Java中,通过提供构造器,类的设计者可确保每个对象都会得到初始化 构造器采用与类相同的名称...

  • Java 初始化与清理

    初始化与清理是涉及到安全的两个问题。 1.用构造器确保初始化: 当我们通过new关键字来创建对象的时候,就是调用了...

  • Java编程思想(第四版)学习笔记(6)

    第五章 初始化与清理(2) 1.成员初始化 Java尽力保证:所有变量在使用前都能得到恰当的初始化。 对于方法的局...

网友评论

      本文标题:5.Java初始化与清理

      本文链接:https://www.haomeiwen.com/subject/cclfpftx.html