`
Xiaor
  • 浏览: 54540 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

第五章 初始化与清理学习总结与疑问

 
阅读更多
1、构造器初始化
①在概念上,“创建”和“初始化”是两回事,在java中,两者是捆绑在一起不可分割的。java提供了构造函数初始化对象,当用户有能力操作对象的方法之前,java编译器自动调用构造函数初始化对象。
②如果一个类中,用户没有定义任何构造函数,系统会自动分配一个默认构造函数(无参构造函数),但是,只要用户定义了至少一个构造函数,系统就不会再自动分配。
③在一个类中,一个构造函数可以调用另一个构造函数(不可以调用两个),但是不允许构造函数在其他方法中被调用。
④java中可以调用C和C++程序(本地方法)。
2、方法重载
①区分重载方法的依据:参数列表(个数,类型,顺序),但不能根据返回值区分。
②传入的数据类型小于方法中声明的形参类型时,会被自动提升,提升顺序为byte-short-int-long-float-double,但是char例外,它直接被提升为int。反之,必须显示进行类型转化,否则编译不通过。
3、清理:终结清理和垃圾回收
①如果程序运行期间不面临内存耗尽的情况,是不会调用垃圾回收器去进行垃圾回收的,因为这也是有开销的。
②垃圾回收器准备好回收某个对象时,先调用finalize方法,在下次回收的时候,才真正的将这个对象回收。
③finalize除了可以做一些清理工作外,如释放非new方式创建对象分配的空间。另外可以作为终结条件进行验证。
④垃圾回收器的模式有引用计数和另一种模式,这种模式的思想是,从堆栈或者静态存储区开始,遍历所有的引用,就可以找到活的对象,然后追踪该对象的所有引用,直至遍历了整个网,不在网内的对象即为死对象,基于这种模式的垃圾回收技术有停止-复制,标记-清除,他们都必须在程序停止的情况下可能进行。
⑤java中提供了JIT编译器提供速度,它负责把程序翻译成本地机器码,机器码要比字节码长的多。翻译时有两种方法:一次全部翻译完和惰性评估
4、成员初始化
①对于方法的局部变量,若未初始化就使用,编译是通不过的。
②类的成员变量会被自动赋值,而且是在构造函数赋值之前。这与成员变量的声明位置无关。
java中初始化顺序:显示静态变量,后是非静态变量,静态变量只被初始化一次,非静态变量会被初始化多次,当它所在的类new一个对象的时候,它就被初始化一次。
③对于类中的static{}程序块,同静态初始化一样只执行一次,当首次生成这个累的一个对象时,或者首次访问属于这个类的静态数据成员时(即使从未生成过
这个类的对象)。
5、数组初始化
①声明方式:int[] a;  int a[];
②int[] a1={1,2,3,4};//这种初始化方式只可以用在定义的地方
  int[] a2=a1;
  当a2改变时,a1也变。
③可变参数列表:数据类型可变,采用Object作为形参;
                数组作为形参:String[],或者String...(java SE5之后支持)
6、enum
①定义形式
public enum Types{T1,T2,T3,T4}
②使用形式
Types t= Types.T1;
③java为enum提供的方法有toString(),ordinal(),values()。
④enum可以用作switch的条件:
Types type;
switch(type){
case T1:  ...; break;
case T2:  ...; break;
...
}


求解:①一个类中,在定义时就被初始化了的String域,和通过构造器初始化的另一个String域,有什么差异?
②垃圾回收第二种模式中,为什么活的对象,一定能最终追溯到其存活在堆栈或者静态存储区中的引用?为什么位于这个网中的对象就是活的,而遍历不到的就是要回收的呢?



分享到:
评论

相关推荐

    java编程思想-初始化与清理

    java编程思想-初始化与清理了解this之后,你就能更全面地理解“静态(static)方法”的含义。静态方法就是没有this的方法。在“静态方法”的内部不能调用“非静态方法”,反过来倒是可以的。而且你可以在没有创建...

    第4章 初始化和清理.ppt

    在Java程序设计中,初始化和清理是至关重要的概念,它们涉及到对象的生命周期管理和资源的有效利用。本章将探讨几个关键的方面,包括构造函数、函数重载、成员初始化以及垃圾回收机制。 首先,构造函数是Java中用于...

    Java编程思想初始化与清理PPT教案学习.pptx

    总结来说,Java编程思想中的初始化与清理主要涉及构造器的使用,方法的重载,以及`this` 关键字的应用。这些概念对于理解和编写有效的Java代码至关重要,因为它们直接影响到对象的创建、状态设置以及代码的可读性...

    java初始化和清理

    Java初始化和清理是Java语言中非常重要的两个过程,它们确保了Java程序的正确运行和资源的有效管理。Java的初始化包括类的加载、连接和初始化三个过程,而清理则主要指垃圾回收机制。 首先,Java初始化的主要特性...

    java 初始化与方法

    总结来说,Java初始化与方法是编程基础,深入理解这两个概念对于任何Java开发者都至关重要。通过阅读源码、运用开发工具和不断实践,我们可以不断提高自己的编程水平,从而在实际工作中游刃有余。

    SIN初始化_混沌初始化_matlab_混沌映射_种群初始化_sin映射初始化粒子群_

    标题中的“SIN初始化_混沌初始化”指的是使用正弦混沌映射对粒子群进行初始位置的设置。混沌系统具有高度的敏感性,使得初始条件的微小差异可能导致显著不同的结果,这为种群的多样性和探索性提供了可能。SIN映射是...

    winform NUNIT的测试初始化和清理

    本文将深入探讨如何在WinForm应用中结合NUnit进行测试初始化和清理工作,以确保测试的准确性和可维护性。 首先,理解NUnit的基础概念至关重要。NUnit是一个开源的.NET测试框架,它提供了一套丰富的断言方法来验证...

    C++构造函数初始化列表

    #### 构造函数初始化列表的作用与语法 构造函数初始化列表的主要作用在于: 1. **成员变量初始化**:它能确保类的成员变量在构造函数体执行之前就被正确初始化,这对于包含复杂类型的成员变量尤其重要。 2. **提高...

    PCI设备BAR空间的初始化

    初始化BAR寄存器是建立这种映射关系的第一步。 3. **资源分配的必要条件**:通过初始化BAR寄存器,系统软件可以为每个PCI设备分配特定的地址空间,这是实现资源共享和避免地址冲突的重要步骤。 #### 三、初始化...

    第7章初始化程序(main.c).rar_Linux的初始化程序main.c

    `第7章初始化程序(main.c).pdf`这份文档可能详细阐述了上述过程中的步骤、函数调用和关键数据结构。通过阅读这份文档,读者可以深入理解Linux内核启动背后的机制,这对于系统开发者和维护者来说至关重要。 总的来...

    ARM初始化文件详解

    ARM初始化文件详解 ...总结,ARM初始化文件是嵌入式系统启动过程中的关键组件,它的正确配置直接影响系统的稳定性和性能。理解并掌握初始化文件的结构和工作原理,对于开发高效、可靠的嵌入式系统至关重要。

    详解Spring 中如何控制2个bean中的初始化顺序

    我们可以在业务层自己控制 A 和 B 的初始化顺序,在 A 中设置一个“是否初始化的”标记,B 初始化前检测 A 是否得以初始化,如果没有则调用 A 的初始化方法,所谓的 check-and-act。 这种方法的优点是可以做到 lazy...

    typedef struct 与 struct 的区别及初始化

    初始化结构体时,通常有两种方式:构造函数初始化(如果结构体是类)和成员初始化列表。由于 `struct` 在C++中等同于类,但不支持构造函数,所以我们必须使用成员初始化列表。例如,对于 `PhotoInfo` 结构体,其初始...

    C++类成员和数据成员初始化总结

    6. **常量数组**的问题在于,由于第3和第5条的约束,C++不支持在类中定义常量大小的数组并进行初始化。 关于`const`的用法,我们可以区分两种情况: - `const`在星号左侧,如`const int *ptr`,表示`ptr`指向的内容...

    类继承的初始化顺序类,继承的初始化顺序

    在面向对象编程中,类继承是一种非常重要的概念。它允许我们定义一个基类或父类,并从中派生出子类或派生类。通过继承,子类可以复用(或...希望通过对这些知识点的学习,能够帮助读者更好地掌握类继承的初始化机制。

    LS-DYNA3D中的应力初始化_lsdyna_应力初始化_

    利用实验数据进行应力初始化可以提高模拟的准确性,这通常需要与应变测量结合,如应变计或声发射传感器的数据。 8. **后处理与验证**:完成模拟后,通过后处理工具可视化和分析应力分布,对比实验结果或其他计算...

    FANUC机器人初始化系统的基本方法和步骤.docx

    3. **选择初始化选项**:屏幕上会出现初始化菜单,选择“INIT start”(通常为第三项),输入数字3并按下Enter键确认。 4. **继续初始化**:根据屏幕提示继续操作,输入数字1并按下Enter键确认。 5. **等待初始化...

    第二篇金蝶k3供应链系统初始化.pptx

    初始化是指完成手工与电脑系统的工作交接、数据交接、管理交接的过程。在供应链系统中,初始化是指设置系统的基础参数和基础资料,以便于后续的业务操作。 二、系统初始化流程 系统初始化流程主要包括系统参数...

    柯尼卡美能达7828载体初始化方法

    5. **进行载体初始化**: - 在维修模式界面中,选择“成像处理调整”选项。 - 进入后,选择“TCR传感器调整”项。 - 选择“黑色”进行调整,并按下“开始”按钮。 - 等待打印机完成初始化过程,期间打印机指示灯...

    DDR 初始化 流程

    在DDR初始化的第一步,电源被应用到DDR芯片上。根据Micron Technology Inc.的资料,为避免DDR2 SDRAM设备的latch-up(闩锁效应),必须满足特定条件。首先,确保所有输出在电源应用期间保持禁用状态,这可以通过将...

Global site tag (gtag.js) - Google Analytics