java静态和非静态代码块的执行顺序

原创 2015年11月19日 22:39:48
1、静态代码块是在类加载时自动执行的非静态代码块在创建对象自动执行的代码,不创建对象不执行该类的非静态代码块。 顺序: 静态代码块--》非静态代码块--》类构造方法。 
2、在静态方法里面只能直接调用同类中其他的静态成员(包括变量和方法),而不能直接访问类中的非静态成员。因为对于非静态的方法和变量,需要先创建类的实例对象后方可使用,而静态方法在使用前不用创建任何对象。 
3、如果某些代码必须要在项目启动时候就执行的时候,我们可以采用静态代码块,这种代码是主动执行的;需要在项目启动的时候就初始化,在不创建对象的情况下,其他程序来调用的时候,需要使用静态方法,此时代码是被动执行的。 
区别:静态代码块是自动执行的; 
静态方法是被调用的时候才执行的; 

作用:静态代码块可以用来初始化一些项目最常用的变量和对象;静态方法可以用作不创建对象也可以能需要执行的代码。


对象的初始化顺序:首先执行父类静态的内容,父类静态的内容执行完毕后,接着去执行子类的静态的内容,当子类的静态内容执行完毕之后,再去看父类有没有非静态代码块,如果有就执行父类的非静态代码块,父类的非静态代码块执行完毕,接着执行父类的构造方法;父类的构造方法执行完毕之后,它接着去看子类有没有非静态代码块,如果有就执行子类的非静态代码块。子类的非静态代码块执行完毕再去执行子类的构造方法。总之一句话,静态代码块内容先执行,接着执行父类非静态代码块和构造方法,然后执行子类非静态代码块和构造方法

Java中静态代码块、非静态代码块、构造函数的执行顺序与作用

一、观察一段源码与结果 public class StaticDemo { private static int i=1; static { System.out.println("static前代码...

Java静态代码块、构造代码块、构造方法的执行顺序

Java静态代码块、构造代码块、构造方法的执行顺序静态代码优先于非静态的代码,是因为被static修饰的成员都是类成员,会随着JVM加载类的时候加载而执行,而没有被static修饰的成员也被称为实例成...

关于Java中静态代码块以及构造函数的执行先后顺序

----------------------android培训、java培训、期待与您交流! ----------------------         对静态代码块以及构造函数的执行先后顺序,一直...

Java误区: 静态代码块,会在类被加载时自动执行?

JAVA静态代码块会在类被加载时自动执行?         很多Java开发者的思想,被这个思想深深的论剑了n遍,传播这个错误思想的博客,在网上一堆,越来越多的人被轮奸。         如:http...

static 静态变量和静态代码块的执行顺序

众所周知 在android中static 修饰的会被称之为 静态常量, 静态变量, 静态方法 ,还有就是静态代码块,用static{ // 代码块 非static修饰的方法,变量,常量, 是不能再静态...

java静态方法、非静态代码块{}、静态代码块static{}

一般情况下,如果有些代码必须在项目启动的时候就执行的时候,需要使用静态代码块,这种代码是主动执行的;需要在项目启动的时候就初始化,在不创建对象的情况下,其他程序来调用的时候,需要使用静态方法,这种代码...

Java 静态代码块和非静态代码块

参考:http://uule.iteye.com/blog/1558891Java中的静态代码块是在虚拟机加载类的时候,就执行的,而且只执行一次。如果static代码块有多个,JVM将按照它们在类中出...
  • kunlyy
  • kunlyy
  • 2016年08月10日 21:09
  • 1076

关于java中的非静态代码块和静态代码块

java中的非静态代码块和静态代码块

面试题讲解(一) java继承、静态代码块、非静态代码块的使用

工作近三年了,虽然也做过一些项目,日常bianm

java中静态和非静态代码块

java中经常有一些静态块,这是用来在生成类之前进行的初始化,无论java还C++语言中的static,都是最先初始化好的。结构如下: static { 静态语句代码块 } ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java静态和非静态代码块的执行顺序
举报原因:
原因补充:

(最多只允许输入30个字)