static与代码块:
static
class Student{
static String school; // 随着类的加载而执行 可以由类进行调用
static {
// 静态代码块 加载类时需要进行的初始化操作,比如说加载驱动
}
public static void study(){
// 静态方法 ,可以调用其他的静态方法。
// 可以调用其他 静态变量
// 但是不可以调用非静态的变量 ,加载时间不同
}
}
//应用场景实例: java中的工具类,如Math。
Math.floor(1.6) // 1.0 (向下取整)
Math.ceil(1.2) // 2.0 (向上取整)
Math.round(1.6) // 2.0
Math.round(1.2) // 1(四舍五入 返回long型)
Math.abs(-10) // 10 (取绝对值)
Math.PI //3.141592
Math.Max(3.0, 2.0) // 3.0
Math.pow(2.0, 3.0) //8.0 (次幂)
Math.random() // double类型的随机数(0~1)
构造代码块
// 随着对象的实例而执行 (实例化一个对象就执行一次)
{
//构造对象时的公共部分
}
面试题
public class BlockTest {
static {
System.out.println("BlockTest静态代码块执行"); //1
}
{
System.out.println("BlockTest构造代码块执行");
}
public BlockTest(){
System.out.println("BlockTest无参构造执行了");
}
public static void main(String[] args) {
System.out.println("BlockTest的主函数执行了"); //2
Coder c = new Coder();
Coder c2 = new Coder();
}
}
class Coder {
static {
System.out.println("Coder静态代码块执行"); //3
}
{
System.out.println("Coder构造代码块执行"); //4 6
}
public Coder() {
System.out.println("Coder无参空构造执行"); //5 7
}
}