相信我们在面试Java的时候总会有一些公司要做笔试题目的,而Java类的加载和对象创建流程的知识点也是常见的题目之一。接下来通过实例详细的分析一下:

package com.test;

public class Parent {

    int a = 10;
static int b =11;
//静态代码块
static {
System.out.println("parent静态代码块:b=" + b);
b++;
}
//代码块
{
System.out.println("Parent代码块:a=" + a);
System.out.println("Parent代码块:b=" + b);
b++;
a++;
}
//无参构造函数
Parent(){
System.out.println("Parent无参构造函数:a=" + a);
System.out.println("Parent无参构造函数:b=" + b);
}
//有参构造函数
Parent(int a){
System.out.println("Parent有参构造函数:a=" + a);
System.out.println("Parent有参构造函数:b=" + b);
}
//方法
void function(){
System.out.println("Parent function run ......");
}
}
package com.test;

public class Child extends Parent {

    int x = 10;
static int y = 11;
//静态代码块
static {
System.out.println("Child静态代码块:y=" + y);
y++;
}
//代码块
{
System.out.println("Child代码块:x=" + x);
System.out.println("Child代码块:y=" + y);
y++;
x++;
}
//构造函数
Child(){
System.out.println("Child无参构造函数:x" + x);
System.out.println("Child无参构造函数:y=" + y);
}
//方法
void function(){
System.out.println("Child function run ......");
} }
package com.test;

public class testPC {
public static void main(String[] args) { Child demo = new Child();
demo.function();
System.out.println("............................................................");
/* Child child = new Child();
child.function();*/
}
} 结果:

parent静态代码块:b=11
Child静态代码块:y=11
Parent代码块:a=10
Parent代码块:b=12
Parent无参构造函数:a=11
Parent无参构造函数:b=13
Child代码块:x=10
Child代码块:y=12
Child无参构造函数:x11
Child无参构造函数:y=13
Child function run ......
............................................................
Parent代码块:a=10
Parent代码块:b=13
Parent无参构造函数:a=11
Parent无参构造函数:b=14
Child代码块:x=10
Child代码块:y=13
Child无参构造函数:x11
Child无参构造函数:y=14
Child function run ......


												

Java类的加载和对象创建流程的详细分析的更多相关文章

  1. 【Java基础】Java类的加载和对象创建流程的详细分析

    相信我们在面试Java的时候总会有一些公司要做笔试题目的,而Java类的加载和对象创建流程的知识点也是常见的题目之一.接下来通过实例详细的分析一下. 实例问题 实例代码 Parent类 package ...

  2. Java类的加载的一个小问题

    前言 之前写了一篇文章专门介绍了一下类的加载和对象的创建流程,然后收到了一个博友的疑问,觉得蛮好的,在这里和大家分享下. 博文地址:[Java基础]Java类的加载和对象创建流程的分析 疑问 类在加载 ...

  3. jvm系列(一):java类的加载机制

    java类的加载机制 1.什么是类的加载 类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装 ...

  4. Java类的加载、链接和初始化

    一.Java的类加载机制回顾与总结: 我们知道一个Java类要想运行,必须由jvm将其装载到内存中才能运行,装载的目的就是把Java字节代码转换成JVM中的java.lang.Class类的对象.这样 ...

  5. java 类的加载,链接,初始化

    本篇的话题,讨论Java类的加载.链接和初始化.Java字节代码的表现形式是字节数组(byte[]),而Java类在JVM中的表现形式是java.lang.Class类的对象.一个Java类从字节代码 ...

  6. JAVA类的加载、连接与初始化

    JAVA类的加载.连接与初始化 类的声明周期总共分为5个步骤1.加载2.连接3.初始化4.使用5.卸载 当java程序需要某个类的时候,java虚拟机会确保这个类已经被加载.连接和初始化,而连接这个类 ...

  7. Java类的加载 链接 初始化

    原文地址 Java类的加载.链接和初始化.Java字节代码的表现形式是字节数组(byte[]),而Java类在JVM中的表现形式是java.lang.Class类的对象.一个Java类从字节代码到能够 ...

  8. 别翻了,这篇文章绝对让你深刻理解java类的加载以及ClassLoader源码分析【JVM篇二】

    目录 1.什么是类的加载(类初始化) 2.类的生命周期 3.接口的加载过程 4.解开开篇的面试题 5.理解首次主动使用 6.类加载器 7.关于命名空间 8.JVM类加载机制 9.双亲委派模型 10.C ...

  9. java类从加载、连接到初始化过程

    类加载器 在了解Java的机制之前,需要先了解类在JVM(Java虚拟机)中是如何加载的,这对后面理解java其它机制将有重要作用. 每个类编译后产生一个Class对象,存储在.class文件中,JV ...

随机推荐

  1. Exp2 后门原理与实践 20164320 王浩

    一.实践基本内容 1.实践目标 (1)使用netcat获取主机操作Shell,cron启动 (2)使用socat获取主机操作Shell, 任务计划启动 (3)使用MSF meterpreter(或其他 ...

  2. 中兴F660光猫改桥接

    家里使用的电信宽带,电信给配的是中兴的F660光猫.光猫内置路由和WIFI功能,但是无线有些稳定,希望把光猫改成桥接模式,使用自己的路由拨号. 所需工具 offzip.exe(下载地址http://a ...

  3. js中把ajax获取的数据转化成树状结构(并做成多级联动效果)

    1.首先通过ajax获取数据,此处省略,直接贴出获取到的数据格式 var arr = [{ id: 1, name: "一级标题", pid: 0 }, { id: 2, name ...

  4. [linux系统]XFS (vda3):Corruption detected.Unmount and run xfs_repair 简单解决办法

    今天kvm的centos系统,rm -rf时报错,具体如下: rm: cannot remove ‘log-0/case1/log_net’: Input/output errorrm: cannot ...

  5. Percona-Toolkit 之 pt-archiver 总结

    pt-archiver - Archive rows from a MySQL table into another table or a file. pt-archiver nibbles reco ...

  6. 22.C# 事件

    1.事件的含义 事件和异常类似,它们都是由对象引发,我们可以提供代码处理它们.不同的是事件并没有使用try ..catch这样的代码来处理,而是要订阅事件,订阅的含义是提供一段事件处理代码,在事件发送 ...

  7. 迁移svn项目到git

    women用的gitlab 在gitlab新建项目,然后拉项目拉下来,然后你把项目(vue)全部选中,除开node_modeles  .svn  dist  .idea这些不选外,copy到这个拉下来 ...

  8. Linux 7.x 防火墙&端口

    Linux 7.x 防火墙&端口 查看当前防火墙的状态: # firewall-cmd --state 也可以使用指令:systemctl status firewall.service 启动 ...

  9. sqlalchemy的数据库ORM操作(表之间的关系)

    首先导入一些需要的东东 ,我是在flask中写的,也可以用纯python去写. from flask import Flask from sqlalchemy import create_engine ...

  10. Linux Centos 删除除某(多)个文件之外的所有文件

    好久没有写东西了.通常我们通过rm -rf  *可以直接强制删除当前文件夹里面的所有内容,但是有些时候我们需要保留一些文件,就比如,网站转移更新需要保留程序压缩包等就需要用到在linux centos ...