A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Evred 中级黑马   /  2014-11-4 21:52  /  1263 人查看  /  13 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

java中的静态代码块可以处理异常或者用while循环吗?为什么?

评分

参与人数 1黑马币 +1 收起 理由
杨佳名 + 1

查看全部评分

13 个回复

倒序浏览
静态代码块是在类加载的时候执行的,并且只执行一次,此时还没有生成对象,也没有对类进行一些什么操作,所以你所说的在静态代码块里写什么异常处理 while循环也没什么意义了。静态代码块主要完成一些初始化的工作。关于静态代码: 1)static代码块:静态代码块。 静态代码块的作用也是完成一些初始化工作。首先执行静态代码块,然后执行构造方法,静态代码块在类被加载的时候执行,而构造方法是在生成对象的时候执行;所谓加载类,即是,要想调用某个类来生成对象,首先需要将类加载到Java 虚拟    机上( JVM),然后由JVM 加载这个类来生成对象。
2)类的静态代码块只会执行一次,是在类被加载的时候执行的,因为每个类只会被加载一次,所以静态代码块也只会被执行一次      而构造方法则不然,每次生成一个对象的时候都会调用类的构造方法,所以 new 一次就会调用构造方法一次。
3)如果继承体系中既有构造方法,又有静态代码块,那么首先执行最顶层的类的静态代码块,一直执行到最底层类的静态代码块   然后再去执行最顶层类的构造方法,一直执行到最底层类的构造方法。 注意:静态代码块只会执行一次。

评分

参与人数 1技术分 +1 收起 理由
杨佳名 + 1 赞一个!

查看全部评分

回复 使用道具 举报
啊?静态代码不是跟类出现就出现了么,是在JVM开启这个类就加载了,只初始化一次,while循环有什么用。
回复 使用道具 举报
feng_0207 发表于 2014-11-5 12:52
静态代码块是在类加载的时候执行的,并且只执行一次,此时还没有生成对象,也没有对类进行一些什么操作,所 ...

谢谢你的解答 我想说的是 如果静态代码块中需要处理的语句发生了异常 可以直接抛吗?还是要try catch处理呢?
回复 使用道具 举报
空洞的望着窗外 发表于 2014-11-5 13:24
啊?静态代码不是跟类出现就出现了么,是在JVM开启这个类就加载了,只初始化一次,while循环有什么用。 ...

假如某些情况下静态代码块中语句需要while或者if处理的时候应该怎么办?
回复 使用道具 举报
feng_0207 发表于 2014-11-5 12:52
静态代码块是在类加载的时候执行的,并且只执行一次,此时还没有生成对象,也没有对类进行一些什么操作,所 ...

谢谢你的解答 我想说的是静态代码块中的语句发生了异常 是需要trycatch处理还是抛呢 为什么
回复 使用道具 举报
Evred 发表于 2014-11-5 19:13
谢谢你的解答 我想说的是 如果静态代码块中需要处理的语句发生了异常 可以直接抛吗?还是要try catch处理 ...

经测试  在静态代码块中出现异常  只能使用try catch处理,不能向外抛出。
回复 使用道具 举报
Evred 中级黑马 2014-11-5 20:36:35
8#
feng_0207 发表于 2014-11-5 19:44
经测试  在静态代码块中出现异常  只能使用try catch处理,不能向外抛出。

:)  恩  刚才也问了老师  他也说是这样的结果
回复 使用道具 举报
表示1楼解释的很详细,很好,借鉴。
回复 使用道具 举报
如果静态代码块中出现while,if,for等循环语句也是一次性加载吧,先与类对象的加载而加载,反正你记住静态代码块的优先级大于构造函数,构造函数大于main函数,如果出现子类,就是父类的静态代码块先加载再子类的静态代码块加载,在父类构造函数,子类构造函数,main函数。你比我爱思考啊,,,,,加油。
回复 使用道具 举报
Evred 中级黑马 2014-11-6 12:44:32
11#
空洞的望着窗外 发表于 2014-11-6 08:28
如果静态代码块中出现while,if,for等循环语句也是一次性加载吧,先与类对象的加载而加载,反正你记住静态 ...

大家都加油!:)
回复 使用道具 举报
学习下了
回复 使用道具 举报
嗯,黑马面试的时候不知道会不会问啊 只知道构造代码块 每创建对象就执行一次。
加载的流程是 静态代码块 ------- 构造代码块--------构造方法
回复 使用道具 举报
学习了啊。静态代码块{:3_46:}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马