java有final和static修饰的调用顺序_final和static顺序-程序员宅基地

技术标签: java调用顺序  static调用顺序  

1.被static final修饰的变量分为两种,一种是不带new,另一种带new,不带new的一开始就加载,带new的有没有final调用顺序都和static调用顺序一样。如:

//第一种,会在一开始的时候就放入常量池。并且直接引用的时候不会加载所在类的任何其它静态方法或函数
public static final String name = "张三"

//第二种,有new的,会像普通static修饰的变量或方法的调用过程一样
public static final String name = new String("张三");

2.static修饰的变量或方法,会在类初始化时优先调用,并且只调用一次。

3.如果B继承A,调用B的构造函数,不管是有参还是无参的构造函数,默认都会先调用父类的无参构造函数,再调用自己的构造函数。

4.如果类里面有{}括起来的函数会在静态方法之后,构造方法之前执行。

以下代码,可以自己复制去调试一下,根据需要去掉注释

    public static void main(String[] args) {
    
        new B("张三");
//        System.out.println(B.astr2);
//        new B();
//        System.out.println(B.astr1);
    }


}

class A{
    
    A(){
    
        System.out.println("父亲构造函数被调用!");
    }
    A(String name){
    
        System.out.println("父亲带参构造函数被调用:"+name);
    }

//    public static B b = new B();

//    public static final B b2 = new B();
    public static final String astr1 = "父亲静态常量字符串";

    public static String astr2 = "父亲静态普通字符串";


    static {
    
        System.out.println("执行父类静态函数");
    }

    {
    
        System.out.println("父亲普通函数被调用!");
    }
}

class B extends  A{
    
    B(){
    
        System.out.println("孩子构造函数被调用!");
    }
    B(String name){
    
        System.out.println("孩子带参构造函数被调用:"+name);
    }
    public static final String str2 = "孩子静态常量字符串!";

    static {
    
        System.out.println("执行子类静态函数");
    }

    {
    
        System.out.println("孩子普通函数被调用!");
    }
}
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_42569136/article/details/100075659

智能推荐

Python程序员Debug的利器,和Print说再见 | 技术头条-程序员宅基地

文章浏览阅读2.3k次,点赞41次,收藏95次。【导语】程序员每日都在和 debug 相伴。新手程序员需要学习的 debug 手段复杂多样,设置断点、查看变量值……一些网站还专门针对debug撰写了新手教程。老司机们在大型的项目中要 debug 的问题不一样,模块众多、代码超长,面对大型项目的debug之路道阻且长。针对新手和老手程序员会遇到的不同debug问题,本文推荐了两个GitHub上的开源debug工具:PySnooper 和 Be..._python 除了用print检查变量

安装并配置jdk_挂载jdk.iso并安装jdk-程序员宅基地

文章浏览阅读401次。安装jdkjdk下载地址.两种下载方式安装包和压缩包,主要介绍安装包但是也介绍压缩包安装包下载打开此文件进入安装界面,由于已经安装,不在详细演示安装分两个步骤JDK安装打开安装程序后 会有安装路径选择,可自行选择位置安装,但是最好文件夹名带jdk,比如jdk1.8.0_231如过自行选择安装路径,则下一步的jre安装也要选择相同路径示例图如下jre安装上述已经说明环境..._挂载jdk.iso并安装jdk

戴尔INSPIRON 14-7472 DDH40 DDH50 LA-F251P r1.0笔记本图纸_ddh40 la-f251p 图纸-程序员宅基地

文章浏览阅读991次。戴尔INSPIRON 14-7472 DDH40 DDH50 LA-F251P r1.0笔记本图纸 品牌 戴尔 型号 INSPIRON 14-7472 主板版号 DDH40 DDH50 LA-F251P 图纸类型 笔记本电路图 图纸格式 PDF 其他信息 戴尔INSPIRON 14-7472 DDH40 DDH50 LA-F251P r1.0笔记本图纸.pdf Compal Confidential DDH._ddh40 la-f251p 图纸

phpredis手册_php redis 手册-程序员宅基地

文章浏览阅读1.3k次。Skip to contentPull requestsIssuesMarketplaceExploreSign out Watch 513 Star6,474 Fork1,680phpredis/phpredis Code Issues 87 Pull requests 17 InsightsA PHP extension for Redisphpredisredis-clustercclust..._php redis 手册

rtl8821cu wifi调试记录_8821cu wlan-程序员宅基地

文章浏览阅读1.5k次。3188 android5 rtl8821cu wifi调试记录开始遇到的问题:1.drivers/net/wireless/rockchip_wlan/rtl8821cu/os_dep/linux/usb_intf.c:1631:31: fatal error: linux/rfkill-wlan.h: No such file or directory//#include <linux/rfkill-wlan.h>2.drivers/built-in.o: In function_8821cu wlan

dubboreference注解_dubbo注解式配置-程序员宅基地

文章浏览阅读6.3k次。1、pom依赖:com.alibaba.bootdubbo-spring-boot-starter0.2.0com.101teczkclient0.10org.apache.zookeeperzookeeper3.4.11pom复制代码2、配置文件配置#=======================================Dubbo=============================..._dubboreference注解

随便推点

darknet环境安装_darkenet 环境安装-程序员宅基地

文章浏览阅读619次。参考:https://www.cnblogs.com/pprp/p/9525508.html下载库文件git clone https://github.com/pjreddie/darknetcd darknet修改MakefileGPU=1 #0或1CUDNN=1 #0或1OPENCV=0 #0或1OPENMP=0DEBUG=0编译make编译时候报错:include/darknet.h:16:23: fatal error: cudnn.h: No such _darkenet 环境安装

vue {{}} 数据渲染出现 undefined问题_vue{{}}undefind-程序员宅基地

文章浏览阅读4.4k次。这应该就是数据异步请求导致的问题吧~例如user:{"id":1,"name":"yrm","des":{"sex":"girl" "age":"19"}}{{user.des.sex}} //报错undefined{{user.des ? use..._vue{{}}undefind

python魔法方法学不懂_Python--魔法方法学习-程序员宅基地

文章浏览阅读436次。1、什么叫魔法方法?魔法方法:Python解释器自动给出默认的,是可以给你的类增加魔力的特殊方法。如果你的对象实现(重载)了这些方法中的某一个,那么这个方法就会在特殊的情况下被 Python 所调用(不重载则会使用默认的)。你可以根据需求,重写这些方法去定义自己想要的行为,而这一切都是自动发生的。魔法方法经常是两个下划线包围来命名的(比如__init__,__del__)函数与方法的区别:魔法方法..._python中typeerror:missing 33 required positional arguments

太棒啦!PyCharm与Jupyter完美融合,Jupytext来啦!-程序员宅基地

文章浏览阅读561次。文末送书!项目作者/Marc Wouts转自/机器之心Jupyter Notebook 真的是让人又爱又失望,在有的场景下它极其便利,但是在很多大模型或复杂项目上,它又无能为力。在 Jup..._pyzmq与jupyter兼容

《python数据分析》第四章numpy-思维导图笔记_python第四章思维导图-程序员宅基地

文章浏览阅读752次。 最近买了原文版的《利用python进行数据分析》第二版,参考着kindle上的中文版。此书可以是我的学习宝典了。_python第四章思维导图

icode编程图形化|一级训练场|基本操作_icode 图形化高级数组-程序员宅基地

文章浏览阅读1.6k次,点赞2次,收藏2次。icode国际青少年编程竞赛学习与竞赛分享_icode 图形化高级数组

推荐文章

热门文章

相关标签