java初始化和清除

1、构造器初始化

new一个对象首先会给器分配一块内存,并且调用构造方法进行初始化。

构造方法:构造方法与类型一致,且没有返回类型。每个类都有一个默认的构造方法。

构造方法和普通方法一样可以重载,用于传入不同的参数。区分构造方法,只能由参数个数不同,类型不同去区分。

 

public class Contruct {
	Contruct() {	//无参构造方法
		System.out.println("构造器");
	}
	
	Contruct(int i){	//有参构造方法
		System.out.println("构造器:"+i);
	}
	
	Contruct(double s){
		System.out.println("构造器:"+s);
	}
	
	public void Contruct(int i){	//普通方法(非构造方法)
		System.out.println("非构造方法");
	}
}

 

 

 

 

 

 

 

2、 成员初始化 成员初始化

类的成员变量,基本类型默认初始化,对象需要手动将其初始化,免得使用的时候会报错。

局部成员变量需要初始化,包括基本类型,否则编译报错。

static方法内,不能直接引用非是static变量和方法。

 

public class TestMain {
	int j;
	static int k;//类的成员变量,默认初始化为0
	public static void main(String[] args) {
		TestMain t;
		for(int i=0; i<j; i++){	//Cannot make a static reference to the non-static field j
			t.f();	//The local variable t may not have been initialized
			new Contruct();
			new Contruct(i);
			System.out.println("k:"+k);	//k:0
		}
	}
	
	public void f(){
		int m;//局部变量
		System.out.println(j);	//j非局部变量,默认初始化值为0
		System.out.println(m);//The local variable m may not have been initialized
	}
}


3、数组初始化

 

数组初始化的方法:

1、静态初始化:int[] a1 = {1,2,3,4,5};

2、动态初始化: 先声明int[] a2; for(){a2[i]};

3、创建数组对象,默认初始化int[] a3 = new int[];

 

public class ArrayTest {
	public static void main(String[] args) {
		int[] a1 = {1,2,3,4,5};	//(1)静态初始化
		int[] a2;	//声明
		int[] a3 = new int[5];//(2)创建数组对象,默认初始化为0
		a2 = a1;//引用的赋值
		for(int i=0; i<a2.length; i++){	
			a2[i]++;	//(3)动态初始化
		}
		for(int j=0; j<a1.length; j++){
			prin("a1["+j+"]:"+a1[j]);
		}
		for(int k=0; k<a3.length; k++){
			prin("a3["+k+"]:"+a3[k]);
		}
	}
	
	static void prin(String s){
		System.out.println(s);
	}
	
}

 

 

 

 

 

 

 

3、清除

GC:JVM垃圾回收机制,回收new出来的内存,只针对内存回收,当对象的不再使用的时候自动调用。

 

final、finally、finalize的区别

final:定义属性、方法和类。定义的属性不可改变;定义的方法不可重写;定义的类不可继承。

finally:异常处理语句的一部分,表示总是执行try{}catch{}finally{}

finalize:在垃圾回收的时候调用被回收对象的此方法,用于垃圾回收。

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值