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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

class Student {
                        static {
                                System.out.println("Student 静态代码块");
                        }
                       
                        {
                                System.out.println("Student 构造代码块");
                        }
                       
                        public Student() {
                                System.out.println("Student 构造方法");
                        }
                }

怎么理解这个???

7 个回复

倒序浏览
ststic在内存中是静态方法随着类的创建进入到内存中的方法区,
  1. public Student() {
  2.                                 System.out.println("Student 构造方法");
  3.                         }
复制代码

这个方法和类名相同,就是构造函数(方法);

构造代码块应该就是就是构造变量吧?
回复 使用道具 举报
静态代码块优先于构造代码块,构造代码块优先于构造方法,静态代码块只执行一次,构造代码块每次创建对象都调用,构造代码块调用才执行
回复 使用道具 举报
静态的随着类加载而加载.非静态的在栈中.
回复 使用道具 举报
251855915 发表于 2016-4-7 22:52
ststic在内存中是静态方法随着类的创建进入到内存中的方法区,

这个方法和类名相同,就是构造函数(方法);

今天才学到代码块的知识,像以前的错误检讨!!!!!!!!!
回复 使用道具 举报
还没学到   看看其他大神回答
回复 使用道具 举报
人笨,还是不明白呐.....
回复 使用道具 举报
  1. class Student
  2. {
  3.         static //静态代码块随着类的加载而加载,优先于对象,只执行一次
  4.         {
  5.                 System.out.println("Student 静态代码块");
  6.         }



  7. /*
  8.         构造代码块。
  9.         作用:给对象进行初始化。
  10.         对象一建立就运行,而且优先于构造函数执行。
  11.         和构造函数的区别:
  12.         构造代码块是给所有对象进行统一初始化,
  13.         而构造函数是给对应的对象初始化。
  14.         构造代码快中定义的是不同对象共性的初始化内容。
  15.         构造代码块每次创建对象都调用
  16. */
  17.         {
  18.                 System.out.println("Student 构造代码块");
  19.         }



  20.         public Student() //构造函数要调用才加载
  21.         {
  22.                 System.out.println("Student 构造方法");
  23.         }
  24. }
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马