关于360笔试题的一个题目的以下代码执行后输出结果为()思考
来源:互联网 发布:看斗破苍穹小说软件 编辑:程序博客网 时间:2024/06/05 16:58
题目:
以下代码执行后输出结果为()
public class Test {public static Test t1=new Test();{System.out.println("blockA");}static{System.out.println("blockB");}public static void main(String[] args) {Test t2=new Test();}}
答案:blockA
blockB
blockA
理解如下:
在调用main方法前先装载Test类,装载Test.class,装载时按顺序做静态成员初始化,即先实例化t1,执行构造代码块,打印blockA,在执行静态代码块,打印blockB,后面实例化t2,执行构造代码块,打印blockA
在开始试图执行类Test的main方法,发现该类并没有被装载,也就是说虚拟机当前不包含该类的二进制代表,于是虚拟机使用ClassLoader试图寻找这样的二进制代表。如果这个进程失败,则抛出一个异常。类被装载后同时在main方法被调用之前,必须对类Test与其它类型进行链接然后初始化。链接包含三个阶段:检验,准备和解析。检验检查被装载的主类的符号和语义,准备则创建类或接口的静态域以及把这些域初始化为标准的默认值,解析负责检查主类对其它类或接口的符号引用,在这一步它是可选的。类的初始化是对类中声明的静态初始化函数和静态域的初始化构造方法的执行。一个类在初始化之前它的父类必须被初始化。
分析源码结构{}将多行代码封装在一起,形成代码块。
1 0
- 关于360笔试题的一个题目的以下代码执行后输出结果为()思考
- 一个笔试题神奇结果的思考
- 关于校招笔试题目的思考
- 两个线程并发执行以下代码,假设a是全局变量,初始为1,那么以下输出______是可能的?
- 笔试:输出712的n次方结果后三位为696的个数
- 关于提取输出结果的一个批处理
- 将任意一个十进制数数字转换为二进制形式,并输出转换后的结果
- 笔试题:输出题目要求的效果图
- 关于执行的思考
- JVM基础性问题,说出以下代码的输出结果,并作出详细的解释。
- 关于判断某一数组内容是否为一个二叉搜索树的后序遍历结果
- 根据一个笔试题引出的思考
- 关于一道阿里巴巴笔试题的思考
- 输入一个整数,判断它的奇偶性后输出结果。
- c# linq排序后的结果输出到一个对象
- 关于执行ndk-build后的代码
- 一道笔试题目引发的思考
- 关于一个sql注入注入题目的思考
- 分类算法之朴素贝叶斯分类(Naive Bayesian classification)
- 实现strcpy函数
- 转载的一道小米面试题和自己的写法
- 海量数据处理算法—Bloom Filter
- 最大流问题:增广路径算法的比较
- 关于360笔试题的一个题目的以下代码执行后输出结果为()思考
- iOS中的转场动画
- 利用腾讯云1元机和服务市场wordpress快速搭建个人博客
- 创建型模式
- 图片转web字体库,如何制作web字体库
- Bit Map算法简介
- java学习笔记3.23
- 图--加权无向图
- CCF认证201703-2学生排队