美文网首页
Java中的代码块

Java中的代码块

作者: Apple_Boy | 来源:发表于2019-07-05 13:42 被阅读0次

    1.静态变量是被类中所有对象共享,静态方法不能访问类中实例成员

    math类中的所有方法都是静态的:Math.Random,PI..

    类名.方法名,类名.静态变量

    类初始化阶段:先执行最顶层父类的静态初始化块,然后依次向下,直到执行当前类的静态初始化块

    对象初始化阶段:先执行最顶层父类的初始化块,最顶层的构造器,然后依次向下,直到执行当前类的初始化块、当前类的构造器

    (先加载类再初始化对象)

    总的执行顺序:(优先级从高到低。)

    静态变量-静态代码块-变量-初始化块-构造器

    静态代码块>mian方法>构造代码块>构造方法>普通代码块(在方法中的代码块)。

    静态代码块和构造代码块的异同点

    相同点:都是JVM加载类后且在构造函数执行之前执行,在类中可定义多个,一般在代码块中对一些static变量进行赋值。

    不同点:静态代码块在非静态代码块之前执行。静态代码块只在第一次new时执行一次,之后不在执行。而非静态代码块每new一次就执行一次。

    此外,还有同步代码块:

    使用synchronized(){}包裹起来的代码块,在多线程环境下,对共享数据的读写操作是需要互斥进行的,否则会导致数据的不一致性。同步代码块需要写在方法中。

    总结

    1.静态代码块是用来给类做初始化的,类加载是就会被执行,(注意它只被执行了一次);

     2.构造代码块是用来给对象做初始化的,每次创建对象都会被执行,而且优先于构造方法先执行;

     3.构造方法是用来给对象进行初始化的,每次创建对象就会选择相应的构造方法执行

    4.普通代码是在方法里或者语句中出现的{},执行方式由他们的出现顺序决定,依次从上到下,先出现先执行;

    相关文章

      网友评论

          本文标题:Java中的代码块

          本文链接:https://www.haomeiwen.com/subject/vpjshctx.html