java的初始化与清理

this关键字

《think in java》: this关键字只能在方法内部使用,表示对“调用该方法的那个对象”的引用。

通常写this的时候,都是指这个对象或当前对象。

用法

1.区分同名变量

2.返回自身类的引用

3.在当前类的一个构造函数当中调用另一个构造函数

代码

public class User {
    int a;
    User(){
        this(0);            //区分同名变量
    }
    User(int a){
        this.a = a;         //在构造方法中调用构造方法
    }
    public User getUser(){
        return this;        //返回自身类的引用
    }
}
注意:
1 . 只能调用一个构造方法,并且调用动作要放在最前面
2. 不能再其他方法中调用构造方法

初始化

顺序(创建对象时):

1. 静态变量、静态方法

2. 成员变量、成员方法

3. 构造器

静态变量初始化 :

1. 创建对象时(new关键字)

2. 访问该对象的静态数据时(class.staticdate)

数组

数组是class,所以当我们要使用它时,需要使用new关键字初始化,创建一个引用。

type[] arrayName = new type[size];
type[] arrayName = {type,type...};

arrayName 是 type[] 数组对象的引用 。

可变参数列表

一个方法只能有一个可变长参数,并且这个可变长参数必须是该方法的最后一个参数

public class TestClass {
    public static void getString(String... args) {
        for (String x : args) {
            System.out.print(x + "\t");
        }
    }
    public static void main(String[] args) {
        getString("hello", "world", "haha");
    }
}
out:
hello    world    haha

清理

以后看了垃圾清理再写

refence

http://alexyyek.github.io/2015/01/03/initial/

时间: 2024-10-09 06:05:14

java的初始化与清理的相关文章

Chapter5_初始化与清理_用构造器初始化

接下来进入第五章,java中初始化和清理的问题,这是两个涉及安全的重要命题.初始化的功能主要是为库中的构件(或者说类中的域)初始化一些值,清理的功能主要是清除程序中不再被需要的元素,防止资源过分被垃圾占用的出现,为解决这些问题,java中提供了对构造器和垃圾清理器的支持,首先讨论构造器的问题. 为了保证程序的安全性,java中采用了构造器的机制来保证初始化.第一个问题就是命名的问题,java中的构造器规定名称必须和类名相同.这主要是出于如下的考虑,第一如果让编程者自行命名,则可能会产生于其他任何

图解 & 深入浅出Java初始化与清理:构造器必知必会

Writer      :BYSocket(泥沙砖瓦浆木匠) 微         博:BYSocket 豆         瓣:BYSocket FaceBook:BYSocket Twitter    :BYSocket 在面向对象编程中,编程人员应该在意"资源".比如 ? 1 <font color="#000000">String hello = "hello": </font> 在代码中,我们很在意在内存中Stri

Java 编程思想 第五章 ----初始化与清理(1)

从今天开始每天一小时的java 编程思想的阅读和编码,其实就是把书上的代码抄下来. 5.5 清理:终结处理和垃圾回收 初始化和清理工作同等重要,但是清理工作却被常常忘记,但是在使用对象之后,对对象弃之不顾的做法并不是很安全.Java有自己的垃圾回收器负责回收无用的对象占据的内存资源.但也有特殊情况:假定你的内存区域不是用new获得的,这是无法用垃圾回收器释放所以java中允许在类中定义一个名为 finalize()的方法.       工作原理: 一旦垃圾回收器准备好释放对象占用的存储空间,将首

Thinking In Java笔记(第五章 初始化与清理(三))

第五章 初始化与清理 5.6 成员初始化 Java尽力保证:所有变量在使用前都能得到恰当的初始化.对于方法的局部变量,Java以编译错误的形式来保证.如下: void f() { int i; i++; //Error:i not initialized } 会得到一条错误的消息,提示i可能没有初始化.编译器可以给i赋初值,但是并没有这么做,因为没有初始化是程序员的疏忽,为了保证程序的稳定性,能帮助程序员找出程序的缺陷所在. 但如果是类的数据成员是基本类型,类的每个基本类型成员变量都会保证有一个

Java编程思想:第5章 初始化与清理

随着计算机革命的发展,“不安全”的编程方式已经逐渐成为编程代价高昂的主因之一. 初始化和清理,正是涉及安全的俩个问题. 5.1 用构造器确保初始化 构造器名与类名相同,没有返回值 5.2 方法重载 构造器的重载与方法重载 5.2.1 区分重载的方法 参数列表的不同(不同顺序也是重载,但不建议这么做) 5.2.2 涉及基本类型的重载 void print(char c){System.out.println("The character is "+c); }    void print(

Java编程思想(二) —— 初始化与清理

(一)操作符一章的int类型数据溢出的问题在Java7的版本中仍然存在,而且溢出的结果千奇百怪. public class Hello { public static void main(String[] args) { int i = Integer.MAX_VALUE; System.out.println(i); System.out.println(i*4); System.out.println(i*5); } } 结果分别为2147483647,-4,2147483643. 当应用中

Thinking In Java笔记(第五章 初始化与清理(二))

第五章 初始化与清理(二) 5.5 清理:终结处理和垃圾回收 清理的工作常常被忽略,Java有垃圾回收器负责回收无用对象占据的内存资源.但也有特殊情况:假定对象(并非使用new)获得了一块"特殊"的内存区域,由于垃圾回收器只知道释放那些由new分配的内存,所以不知道如何释放特殊内存.Java允许在类中定义一个名为finalize()的方法,工作原理"假定"是这样的:一旦垃圾回收器准备好释放对象占用的存储空间,首先调用其finalize()方法,并且在下一次垃圾回收动

java基础(初始化和清理)

一个java初始化的例子 运行结果 结论:执行main方法,必须加载test2类,然后静态域b和c被初始化,然后他们对应的类被加载,由于他们对应的类也包含静态A对象,所以A也被加载,所以在这个程序中,所有的类在main()开始之前就都被加载了.初始化的顺序是先静态对象,而后是非静态对象.静态初始化只有在类被初始化时才会创建,只有在第一次对象被初始化,或者第一次访问静态数据的时候,他们才被初始化,此后,静态对象不会再次被初始化. 疑问? 在看thinking in java 第四版189页中提到"

Java编程思想---第五章 初始化与清理(下)

第五章 初始化与清理(下) 5.7 构造器初始化 可以使用构造器来进行初始化,在运行时可以调用方法或执行某些动作来确定初值,但是我们无法阻止自动初始化的进行,它将在构造器被调用之前发生.例如: public class Counter { int i; Counter() { i = 7; } } 那么i首先被置为0,然后变成7.编译器不会强制你一定要在构造器的某个地方或在使用它们之前对元素进行初始化,因为初始化早已得到了保证. 5.7.1 初始化顺序 在类的内部,变量定义的先后顺序决定了初始化