初始化块
package test0904;
/* 1、什么是初始化块?
* 语句块 --- 在一个类中,用一对大括号括起来的语句系列;
* 在类体中的用来初始化实例变量的语句块称之为初始化块。
*
* 2、初始化块的作用?
* 它通常用来实现实例变量的初始化.
*
* 注意: 在java语言中,实例变量的初始化有三种方式:
* 1) 显示初始化。在声明实例变量时就给它赋值。
* 2) 构造器初始化。在构造对象时通过构造器实现实例变量的初始化。
* 3) 初始化块。
*
* 3、初始化块在何时被执行?
* 在每一次构造对象时被执行而且比构造器先执行。
*
* 4、静态初始化块?
* 用 static 修饰的初始化块。
*
* 5、静态初始化块的作用是什么?
* 它通常用来实现 静态变量(类变量)的初始化。
*
* 注意: 在静态初始化块中不能出现非静态的实例变量。
*
* 6、静态初始化块在何时被执行?
* 在第一次加载类时被执行且只执行一次。
*
* <span style="font-size:12px;"> </span><strong><span style="font-size:12px;">静态变量(类变量)
</span></strong> * 用static修饰的实例变量。
*
* 1、什么时候使用?
* 管理共享资源时,使用静态变量(类变量)。
*
* 2、类变量的特性
* 是共享的。
*
* 3、什么是静态方法?
* 用 static 修饰的方法。
*
* 4、静态方法的特性?
* 1) 它必须用 static 关键字修饰。
*
* 2) 它属于类;但,它也可以被所有对象共享使用。
*
* 3) 它的访问(调用)方式为: 类名.静态方法名([参数]);
* 例如: Math.pow( 5, 2 );
*
* 5、在一个类中,什么情况下将方法编写为静态的?
* 1) 在一个类中,若某个方法只针对静态变量(类变量)操作时,则该方法编写为静态的。
* 或者说: 当一个类中的静态变量被private 关键字修饰时,则必须为此静态变量提供静态的访问器。
*
* 2) 在一个类中,若某个方法只用来完成一个特定的任务且完成任务所需要的数据均来自类外;
* 并且,该方法不针对非静态的实例变量操作。
* 说明: 第二种情况,在工具类中非常常见。
*/
class IntBlock {
private int id; //职工编写
private String name = "张三";
private boolean sex;
private int age;
//初始化块,用一对大括号包括起来,用来初始化类的属性;
{
System.out.println("初始化块被执行了。");
this.id = 2014001;
this.name = "李四";
this.sex = true;
this.age = 20;
}
public IntBlock() {
System.out.println("默认构造器被调用了。");
}
public IntBlock( String name , boolean sex ){
this.name = name;
this.sex = sex;
}
}
/*
* java语言中存在垃圾回收机制,在虚拟机空闲时,自动回收被占用的内存垃圾空间
*
<span style="font-size:14px;"> * <strong>打包: package</strong>
</span> * 1) 为什么需要打包?
* 主原因是:java语言规定同一个位置下类名必须唯一(不可重复)。
* 为了让多个同名的类存在,则必须打包将同名的类分别存放在不同的包中。
*
* 次原因是: 可以将功能近似的类规划到同一个包中。这样有助于管理和后期的应用。
*
* 2) 如何打包?
* 在源程序的开始处使用关键字 package 实现打包。其使用格式如下:
* package 包名[.子包名[.子包名[......]]];
* 例如: package com;
* package com.bjsxt;
* package com.bjsxt.array;
*
* 注意: 打包语句必须在源程序的第一行(或者说:它必须是源程序的第一个语句)。
*
* 3) 如何使用包中的成份?
* 通过 import 关键字将包中的成份导入到当前类中,从而使用它。
*
* 格式: import 包名[.子包名[.子包名[......]]].类名;
* 例如: import aa.bb.cc.Tools;
*
* *4) 在命令窗口中如何编译打包的源程序,如何运行打包的字节码文件?
* CLASSPATH 环境变量的作用:
* 用来告诉JVM(java虚拟机)到它指定的地址下寻找所需要的字节码文件。
* javac -d %CLASSPATH% PackageTest.java
* java com.bjsxt.PackageTest
*/