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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王震阳老师   /  2014-6-19 15:43  /  31814 人查看  /  571 人回复  /   5 人收藏 转载请遵从CC协议 禁止商业使用本文

先领题,再答题:lol
回复 使用道具 举报
领题签到
回复 使用道具 举报
回帖,领题,看看
回复 使用道具 举报
本帖最后由 0_TNT_0 于 2014-12-13 23:24 编辑

回帖领题

答案已提交,老师请阅,感谢!!!

TestDemo.zip

2.01 KB, 阅读权限: 200, 下载次数: 1

答案提交,老师请阅,感谢!

评分

参与人数 1技术分 +1 收起 理由
王震阳老师 + 1 赞一个!

查看全部评分

回复 使用道具 举报
看看再看看!
回复 使用道具 举报
看看题目
回复 使用道具 举报
支持一下阳哥的活动!

Test1.zip (833 Bytes, 下载次数: 2)



评分

参与人数 1技术分 +1 收起 理由
王震阳老师 + 1 赞一个!

查看全部评分

回复 使用道具 举报
领题zzzzzzzz
回复 使用道具 举报
跪求技术分。。。。。请指点

A.zip

906 Bytes, 阅读权限: 200, 下载次数: 1

回复 使用道具 举报
静态代码块,代码块,构造函数

新建 360压缩 ZIP 文件.zip

16.93 KB, 阅读权限: 200, 下载次数: 1

评分

参与人数 1技术分 +1 收起 理由
王震阳老师 + 1 赞一个!

查看全部评分

回复 使用道具 举报
先看一下题
回复 使用道具 举报
gogo,来吧!
回复 使用道具 举报
uhui 中级黑马 2014-12-14 19:39:04
393#
回复领题
回复 使用道具 举报
很好,既可以学习基础,也可以拿技术分。

Yg1.zip

328 Bytes, 阅读权限: 200, 下载次数: 1

回复 使用道具 举报
我是菜鸟,我要好好学习!
回复 使用道具 举报
看题,学习 ,
回复 使用道具 举报
No.1.rar (12.16 KB, 下载次数: 1) 复习巩固, 谢谢阳哥指导
回复 使用道具 举报
本帖最后由 Little_Pea 于 2014-12-15 13:48 编辑

阳哥,我是新人,从头开始答题,多谢指教哈!
不好意思,我好像把权限弄错了,重新上传一下……

技术分活动第一期.rar

31.34 KB, 阅读权限: 200, 下载次数: 1

评分

参与人数 1技术分 +1 收起 理由
王震阳老师 + 1 很给力!

查看全部评分

回复 使用道具 举报
提米特 发表于 2014-12-14 09:59
支持一下阳哥的活动!

赞一个:
  1. package itheima;
  2. /*
  3. * 阳哥送分活动第一期
  4. * 题目:写一段代码,分别验证静态代码块、代码块、构造函数在1、初始化对象的时候的执行顺序
  5. * 2、直接用类名调用该类的静态变量时的执行的顺序
  6. *
  7. * 思路:只要在每个代码块中加入输出语句,这样我们只要根据输出语句的先后顺序就可以判断出执行先后顺序
  8. *
  9. * 结论:1、在初始化对象时,首先执行的是静态代码块,然后是代码块,然后是对应的构造函数
  10. *         静态代码块只要类加载了就会优先执行,代码块是只要创建对象就会执行,最后才是根据参数执行构造函数生成对象
  11. *
  12. *         2、直接用类名调用该类对象的静态变量时,执行顺序是:静态代码块,代码块和构造函数并不执行,因为并没有生成对象
  13. *         因为用类名调用静态变量时,加载了类,但是并没有生成对象,所以只有静态代码块执行,代码块和构造函数并不执行
  14. */

  15. public class Test1 {
  16.         static String name= "静态变量执行了";
  17.        
  18.         //首先创建静态代码块
  19.         static{
  20.                 System.out.println("静态代码块执行了!");
  21.         }
  22.        
  23.         //创建代码块
  24.         {
  25.                 System.out.println("代码块执行了");
  26.         }
  27.        
  28.         //这里是带一个字符串类型参数的构造函数
  29.         public Test1(String name){
  30.                 this.name = name;
  31.                 System.out.println("带字符型参数的构造函数执行了");
  32.         }
  33.        
  34.         public static void main(String[] args) {
  35.                
  36.                 //首先验证初始化对象时的情况
  37.         //        Test1 go = new Test1("黑马加油!");
  38.                
  39.                 //其次直接用类名调用调用静态变量
  40.                 System.out.println(Test1.name);
  41.         }
  42. }
复制代码
回复 使用道具 举报
Little_Pea 发表于 2014-12-15 13:41
阳哥,我是新人,从头开始答题,多谢指教哈!
不好意思,我好像把权限弄错了,重新上传一下……

很用心,很赞:
第一个问题:验证静态代码块、代码块、构造函数在初始化对象的时候的执行顺序
代码为Thead1.java
在阳哥原有问题上,我加了一个显式初始化。
所以在程序中有:
显式初始化语句:int age = 22;
实例初始化块:{
        System.out.println("实例初始化块执行");
        System.out.println("age = "+age);   //打印进行实例初始化之前age的值
        age = 23;
        System.out.println("age = "+age);   //打印进行实例初始化之后age的值
}
静态初始化块:static {
        System.out.println("静态初始化块执行");
    }
构造函数:Thread1(){
        System.out.println("无参构造函数执行");
}

main函数中执行Thread1 t = new Thread1();语句。得到如下结果:(我用的NetBeans)

结果表明:首先加载类文件到内存,然后执行静态初始化块;接着,由实例化初始age之前,age已被初始为22表明显式初始化先于实例初始化块执行,然后执行实例初始化块。最后执行构造函数。
所以执行顺序是:静态初始化块->显式初始化->实例初始化块->构造函数


第二个问题:验证静态代码块、代码块、构造函数在直接用类名调用该类的静态变量时的执行的顺序
代码为Thread2.java

程序中有一个静态的Thead2类变量:static Thread2 t;

实例初始化块:{
        System.out.println("实例初始化块执行");
}
静态初始化块:
static {
        System.out.println("静态初始化块执行");
        t = new Thread2(24);
}
构造函数:Thread2(int age){
        System.out.println("一个参数的构造函数执行");
        System.out.println("age = "+age);   
}
main 函数中Thread2.t.say();直接使用类名调用静态变量t,执行结果如下图:


结果表明,程序执行顺序为:静态初始化块->实例初始化块->构造函数->实例方法
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马