java第七周博客

java第七周

1.清理:
假定你的对象(并非使用 new)获得了一块"特殊"“的内存区域,由于垃圾回收器只知道释放那些经由new分配的内存,所以他不知道该如何释放该对象的这块"特殊"内存.为了应对这种情况,java允许在类中定义一个名为finalize()的方法。它的工作原理“假定”是这样的,一旦垃圾回收器准备好,释放对象占用的存储空间,将首先调用其finalize()方法,并且在下一次垃圾回收动作发生时,才会真正回收对象占用的内存。
java你的对象并非总是被垃圾回收
对象可能不被垃圾回收。
垃圾回收并不等于“析构”。
2.System.gc()用于强制进行终结动作。
3.成员初始化:
类的每个基本类型数据成员保证都会有一个初始值
char的默认初值为0,显示为空白。
类里定义一个对象时,如果不将其初始化,此引用就会获得一个特殊值null。
4.指定初始化:
数组初始化
方法1:
int [ ] a;
a=new int[10];
a[0]=3;
方法2:
int [ ] c={2,3,4,5,6,7};
for(int i:c)
{System.out.println(i+” ");}
对象初始化
Dog [ ] b=new Dog[ 10];
b[0]=new Dog( );
Dog [ ]b={new Dog( ),new Dog( ),new Dog( )};//此句的[ ]里面必须为空,不能放任何数字
5.构造器初始化
无法阻止自动初始化的进行,他将在构造器被调用之前发生

Public class Counter{
int i;
Counter(){i=7;}
}//i首先会被置0,然后变成7

在类的内部,变量定义的先后顺序决定了初始化的顺序。即使变量定义散布于方法定义之间,它们仍然会在任何方法,(包括构造器)被调用之前得到初始化。

import static net.mindview.util.print.*;
Class Window{
Window(int marker){Print("Window("+marker+")");}
}
Class House{
Window W1=new Window(1);
House(){
print("House()");
W3=new Window(33);
}
Window W2=new Window(2);
void f(){print ("f()");}
Window W3=new Window(3);
}
public class OrderOfInitialization {
public static void main(String[] args)
{House h=new House();
h.f();
}
}

Static关键字不能应用于局部变量,它只能作用于域

Class Dog{
String name;
static int age;//age在静态存储区内,不在对象里
double prince;
char sex;public Static void main(String [] args)
{Dog d1 =new Dog()};

在这里插入图片描述
即使没有显示的使用static关键字,构造器实际上也是静态方法。因此,当首次创建类型为对象时(构造器可以看成静态方法),或者类的静态方法/静态域首次被访问时,JAVA解释器必须查类路径,以定位.class文件。
存储空间会被清空,这就自动将对象中的所有基本类型数据都设置成了默认值(对数字来说就是零对布尔型和字符型也相同),而引用则被设置成了null。
初始化顺序为:先静态,后非静态,最后构造器。1.静态(按定义顺序)2.普通成员3.普通代码.4父类构造器5.子类构造器。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值