Java笔试题总结1
2015-08-24 09:07
483 查看
JAVA笔试题
1、静态语句块、构造语句块和构造函数的执行顺序
静态语句块:在类加载的时候执行(从父类到子类)
静态语句块执行完,执行main方法
new对象,从上到下先执行构造代码块在执行构造器
2、初始化顺序
当程序执行时,需要生成某个类的对象,java会检查是否加载了这个类,如果没有,则先执行类的加载在生成对象,如果已经加载则直接生成对象。
在类加载过程中
static变量和static代码快会按代码顺序加载。
然后,其他变量和构造代码块会按顺序加载
最后执行构造函数。
1、静态语句块、构造语句块和构造函数的执行顺序
静态语句块:在类加载的时候执行(从父类到子类)
静态语句块执行完,执行main方法
new对象,从上到下先执行构造代码块在执行构造器
package com.***.subject; public class HelloA { public HelloA() { System.out.println("hello A"); } { System.out.println("I'm A class"); } static { System.out.println("static A"); } } public class HelloB extends HelloA{ public HelloB() { System.out.println("hello B"); } { System.out.println("I'm B class"); } static { System.out.println("static B"); } public static void main(String[] args) { new HelloB(); } }
2、初始化顺序
当程序执行时,需要生成某个类的对象,java会检查是否加载了这个类,如果没有,则先执行类的加载在生成对象,如果已经加载则直接生成对象。
在类加载过程中
static变量和static代码快会按代码顺序加载。
然后,其他变量和构造代码块会按顺序加载
最后执行构造函数。
public class TestExtends{ public static void main(String[] args){ new Circle(); } } class Draw{ public Draw(String type){ System.out.println(type + "1"); } } class Shape{ private Draw draw = new Draw("shape"); { System.out.println("shape constructor block"); } static { System.out.println("shape static block"); } public Shape() { System.out.println("2"); } } class Circle extends Shape { private Draw draw = new Draw("circle"); public Circle() { System.out.println("3"); } } //输出为: //shape static block //shape1 //shape constructor block //2 //circle1 //3
相关文章推荐
- java迭代器模式
- 基于注解的 Spring MVC 简单入门
- Java中Overload和Override的区别
- netbeans 窗体字体大小设置
- netbeans 窗体字体大小设置
- 在Java编程中使用正则表达式
- android studio项目修改eclipse可以使用的项目
- spring mvc环境搭建demo
- Java运行时多态性:继承和接口的实现
- java中getClass( )和class()的联系和区别
- java多线程(四)synchronized关键字修饰方法
- eclipse中新建jsp页面出错怎么解决
- Java中的数组
- 详细解释 集成Maven Spring Mybatis项目包生成Bat文件
- 从零开始学java 之 DVD的增删改查管理系统(方法,界面,数据库相分离)用IO流写入文件代替数据库
- java 中通过label跳出双重for 循环
- java 中通过label跳出双重for 循环
- Maven + (Spring + Hibernate) Annotation + MySql Example
- Maven + Spring + Hibernate + MySql Example
- Spring Named Parameters examples in SimpleJdbcTemplate