zoukankan      html  css  js  c++  java
  • java类创建时里面成员执行的先后顺序

    静态代码块在类第一次使用的时候执行一次,在构造函数执行之前执行。只要用到类,哪怕new对象(比如只声明变量)也会被执行,且只执行一次。一般用于对类进行初始化。

    先执行静态代码块,静态成员(谁在前就先执行谁)。无论new几次 静态代码块和静态成员只执行一次

    再执行成员变量,最后构造函数。new几次 成员变量和构造函数 执行几次。

    代码:

    1.声明StaitcBlock类

    public class StaticBlock1 {
        private static String TAG="333";
    
        //成员变量
        private  int age1=setAge();
    
        //构造函数
        public  StaticBlock1(){
            Log.e(TAG, "构造函数");
        }
    
        //静态代码块
        static{
            Log.e(TAG, "静态代码块 " );
        }
    
        //静态成员
        private static int age2=setAge2();
    
    
        public static void main(String[] args) {
            StaticBlock1 b1=new StaticBlock1();
    
            StaticBlock1 b2=new StaticBlock1();
        }
    
    
    
        private int setAge(){
            Log.e(TAG, "getAge1: 方法1" );
            return 3;
        }
    
        private static int setAge2(){
            Log.e(TAG, "getAge2: 方法2" );
    
            return 333;
        }
    
    }

    2.在Activity中创建StaticBoloc类

     Log.e(TAG, "onCreate: ------------------------开始" );
            StaticBlock1 b1=new StaticBlock1();
            Log.e(TAG, "----------------------------------------------------------------------------------" );
            StaticBlock1 b2=new StaticBlock1();

    3.结果

  • 相关阅读:
    使用net start mysql的时候出现服务名无效的原因及解决办法
    Appium的安装
    cpu
    单例模式
    Java中Synchronized的用法(简单介绍)
    java随机数Reandom(简单介绍)
    多线程面试题
    线程和进程有什么区别(简单介绍)
    java多线程(简单介绍)
    servlet三种方式实现servlet接口
  • 原文地址:https://www.cnblogs.com/wangjiaghe/p/7073625.html
Copyright © 2011-2022 走看看