以前记得static代码块貌似是Java类加载过程中优先级最高的,但是最近几天写代码发现不是这样的,因为static变量
的优先级要比static代码块高得多,所以因此我犯了不少错误,下面以一个例子来说明一下一个类初始化为对象的时候的
加载过程
package com.bird.jdbc;
public class Test {
private static A a = new A();
private final static F f= new F();
private B b = new B();
static{
System.out.println("c");
}
public Test(){
System.out.println("Test");
}
public static void main(String[] args){
// Test t = new Test();
try {
Class.forName("com.bird.jdbc.Test");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
class A{
public A(){
System.out.println("A");
}
}
class B{
public B(){
System.out.println("B");
}
}
class F{
public F(){
System.out.println("F");
}
}
大家可以看到,直接运行Test t = new test();这句话,运行结果为
A
F
c
B
Test
所以是先static变量,然后是static的代码块,然后才是普通变量,最后是构造函数
如果是运行Class.forName()函数的话,运行结果为
A
F
c
还是这样,先是static变量,然后才是static代码块,所以那种对于class.Forname加载类,只调用static代码块的误区
要克服,因为还有一个static代码块在等着你,呵呵,我得记录下来以示警戒
分享到:
相关推荐
今天的任务是把asp.net ajax中客户端页面生命周期那一章研究完。然而,因为这一章的内容使我产生了一些迷惑。这些疑惑在书中都没有只字提及。 一、html页面的详细加载过程是什么呢?页面元素在加载时的优先级是什么...
在本书中,我们将研究Java用于访问和处理数据的各种技术。本书将向读者介绍如何使用Java开发企业级的分布式应用程序,其中涉及生成、处理、存储、 与检索各种类型的数据与不同的数据库。 本书按照一定的逻辑顺序...
代码主要展示了Spring在初始化的过程中,各个回调函数的调用顺序,也可以在此基础上进行扩展研究,有助于了解Spring的加载过程
10.6 Java程序的加载过程 190 10.7 小结 192 第三篇 高级基础篇 第11章 异常处理——Java世界的医生 195 11.1 异常处理的基本知识 195 11.1.1 try和catch捕获异常 195 11.1.2 异常的传播过程 198 ...
第5章讲解了Android源码中常用的类,如sp、wp、RefBase、Thread类、同步类、Java中的Handler类以及Looper类。这些类都是Android中最常用和最基本的,只有掌握这些类的知识,才 能在分析后续的代码时游刃有余。 ...
帮助解决网页和JS文件中的中文编码问题的小工具 慎用const关键字 装箱,拆箱以及反射 动态调用对象的属性和方法——性能和灵活性兼备的方法 消除由try/catch语句带来的warning 微软的应试题完整版(附答案) 一个...
在编写过程中,进行了重新构思与组织,同时对内容的深度与广度进行了重点强化。本书从持久层入手,引出对象/关系数据库映射的由来,接下来聚焦于目前最完善、最强悍的ORM产品—— Hibernate。从一个基础程序入手,...
那么问题来了,在编写node的时候,会在后台去请求很多接口(我们公司是与java后台交接数据的),接口就会有个回调,这么多回调怎么办呢……每个回调回来的加载顺序怎么去处理是个问题……总不可能去嵌套……嵌套……...
本书的最大优点是帮助读者理解概念,让读者很清楚地在脑海中构造一个层次型的计算机系统,从最低层数据在内存中的表示(如我们一直陌生的浮点数表示),到流水线指令的构成,到虚拟存储器,到编译系统,到动态加载库...
本书的最大优点是帮助读者理解概念,让读者很清楚地在脑海中构造一个层次型的计算机系统,从最低层数据在内存中的表示(如我们一直陌生的浮点数表示),到流水线指令的构成,到虚拟存储器,到编译系统,到动态加载库...
本书的最大优点是帮助读者理解概念,让读者很清楚地在脑海中构造一个层次型的计算机系统,从最低层数据在内存中的表示(如我们一直陌生的浮点数表示),到流水线指令的构成,到虚拟存储器,到编译系统,到动态加载库...
该页面包含“内幕”对诸如算法,数据结构, UNIX操作系统和计算机网络(等)之类的理论概念的解释。 还研究并解决了一些,其中始终包括时间和内存复杂性分析。 指数 计算机架构 资料库 操作系统 计算机网络 并行计算...
首先,使用“ allData.txt”文件将它们加载到内存中。 然后使用相应的“ batchX.file”确定顺序。 在此重要的是,每一行都包含一个要可视化的内容。 每次评估后都会保存位置数据,分数会保留在最后。 简介:随着...
首先,使用“ allData.txt”文件将它们加载到内存中。 然后使用相应的“ batchX.file”确定顺序。 在此重要的是,每一行都包含要可视化的两个内容。 位置数据将在每对之后保存,分数将保存在末尾。 简介:随着虚拟...
由于目前高校基本尚未开JavaScript的相关课程,目前jQuery的学习,使用,研究都仅限于在职Web程序员之间。 用jq的前提,首先要引用一个有jq的文件 [removed][removed] 这个是jquery官方最新的地址。可用在自己网站...