代码块

image.png

普通代码块

定义在方法中,使用{}括起来的代码叫做普通代码块

构造代码块

定义在类中的使用{}括起来的代码块,叫做构造代码块
注意:
1、每次代码运行的时候会将构造代码块中的代码添加到构造方法的前面
2、构造代码块的代码会添加到每一个构造方法中,但是如果某个构造方法中使用了this(),则不会添加

静态代码块

image.png
使用static{}括起来的代码叫做静态代码块,在类载入的时候就会执行,所以它总是在其他的代码块之前执行

同步代码块

在多线程的时候会使用,用来给共享空间进行加锁操作(后面再细说)
执行顺序:静态代码块-》构造代码块(创建对象的时候才会用到)-》普通代码块

package com.msbline.oop;
public class CodeBlockDemo {
    int a;
    int b;
    static {
        System.out.println("静态代码块");
    }
    {
        System.out.println("构造代码块");
    }
    public CodeBlockDemo() {
        //此处会添加构造代码块
 System.out.println("构造方法");
    }
    public CodeBlockDemo(int a){
        //此处会添加构造代码块
 this.a = a;
    }
    public CodeBlockDemo(int a, int b){
//        this(a);//如果使用了this,上面的构造代码块不会添加进来
 this.a = a;
        this.b = b;
    }
    public void test() {
        System.out.println("test");
        //普通代码块
 {
            System.out.println("我应该是什么分类");
        }
    }
    public static void main(String[] args) {
        CodeBlockDemo codeBlockDemo = new CodeBlockDemo(1,2);
        codeBlockDemo.test();
    }
}

package

image.png
image.png
只有lang包是不需要手动导入的,自动加载

import

image.png

静态导包

image.png

当需要使用某个类的多个方法的时候,同时又不想频繁写该类的名称,此时可以使用静态导包(一般不会使用)

package com.msbline.oop;
//导入util里面的Date类(一般使用这种)
import java.util.Date;
//将当前包下的所有类文件都进行导入(这种不好,可能导入太多的类)
import java.util.*;

//静态导包
import static java.lang.Math.*;
public class ImportDemo {
    public static void main(String[] args) {
        Date date = new Date();
        System.out.println(date.getYear());
        java.sql.Date date1 = new       java.sql.Date(date.getTime());
        System.out.println(date1.toLocalDate());
        //使用静态导包之后,使用这个类的方法时就可以不写类名了
        System.out.println(sqrt(2));
    }
}

萌妹子_liu
28 声望43 粉丝

萌萌哒,程序猿