java 这段代码怎么理解,中间的{}是干什么的?

public class test3 {
protected MessageDigest messagedigest = null;
{
try {
messagedigest = MessageDigest.getInstance("MD5");
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
}

直接将代码用{}的方式包裹起来,俗称代码块,其可以分离作用域,即实现同名变量间不相互干扰。可以用在类体和方法体。方法体中{}包裹起来的代码按照正常流程执行,类体(即方法外部/类内部)中{}包裹起来的代码,在该类被实例化时执行,加static表示静态代码块,在类加载时执行。

例如:

package jobs;

public class XXX {

    {
        int a = 2;
        System.out.println(a);
    }

    static {
        int a = 1;
        System.out.println(a);
    }

    public static void main(String[] args) {
        new XXX();
        {
            int a = 3;
            System.out.println(a);
        }
        {
            int a = 4;
            System.out.println(a);
        }

    }

}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-06-24
这是一个异常处理语句,try代码块放的是可能出现异常的语句,catch负责捕获和处理异常,应该后面还有一个finally,这个可以省略,其作用是无论是否发生异常,这个代码块的代码始终要执行
第2个回答  2016-06-24
{} 内表示 获取MD5加密实体,这句比较容易理解本回答被提问者采纳
第3个回答  2016-06-24
返回实现指定摘要算法的 MessageDigest 对象。
用于MD5加密的。
相似回答