关键词:
下面声明类看看测试结果:
- package com.shareniu;
- public class HelloA {
- {
- System.out.println("before class HelloA");
- }
- public HelloA() {
- System.out.println("HelloA");
- }
- static{
- System.out.println("static HelloA");
- }
- {
- System.out.println("after class HelloA");
- }
- }
- public class HelloB extends HelloA {
- private int i;
- public HelloB() {
- System.out.println("HelloB");
- }
- {
- System.out.println(i);
- System.out.println(" before class HelloB");
- }
- {
- System.out.println("after class HelloB");
- }
- static{
- System.out.println("static HelloB");
- }
- public static void main(String[] args) {
- new HelloB();
- System.out.println("shareniu");
- new HelloB();
- }
输出的结果是什么呢?
- static HelloA
- static HelloB
- before class HelloA
- after class HelloA
- HelloA
- 0
- before class HelloB
- after class HelloB
- HelloB
- shareniu
- before class HelloA
- after class HelloA
- HelloA
- 0
- before class HelloB
- after class HelloB
- HelloB
1.1.1. 总结
1.实例化类对象的时候,先实例化父类的静态方法,再实例化子类的静态方法,而且只会执行一次。
2.静态块的代码的优先级是最高的。
3.先初始化父类的代码块,再执行父类的构造方法。继续初始化自己的代码块,再执行自己的构造方法。
4.代码块是优先于构造方法执行的。这里就是类对象初始化的2次构造机制造成的。先执行代码块初始化所有的变量信息,构造方法执行的时候,如果有变量的赋值,就去再次初始化已经修改的值的内存。
5.永远都是先加载父类,在加载子类。先加载static的,在加载类对象的变量信息。
6.代码块{}的执行顺序,从上而下执行。
cookiesession的认识(仅作记录)
一、cookie机制和session机制的区别 具体来说cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案。 同时我们也看到,由于在服务器端保持状态的方案在客户端也需要保存一个标识... 查看详情
java类加载机制
1.类加载器 类加载器(ClassLoader),顾名思义,即加载类的东西,在我们使用一个类之前,JVM需要先将该类的字节码文件(.class)文件从磁盘/网盘或其他的来源加载到内存中,并对字节码进行解析生成对应的Class对象,这就是类加载器的功... 查看详情
详解java类加载机制
JAVA源码编译由三个过程组成:1、源码编译机制。2、类加载机制3、类执行机制我们这里主要介绍编译和类加载这两种机制。一、源码编译代码编译由JAVA源码编译器来完成。主要是将源码编译成字节码文件(class文件)。字节码... 查看详情
java类加载器及其委托机制
1、什么是类加载器,类加载器父子结构。BootStrap-->ExtClassLoader-->AppClassLoader,级别依次降低2、类加载器之间的父子关系和管辖范围3、类加载器的委托机制。当前加载器加载类,先通过上级加载器加载,若上级无法加载,只... 查看详情
java类加载机制和反射机制
1.类的加载机制jvm把class文件加载到内存,并对数据进行校验、解析和初始化,最终形成jvm可以直接使用的java类型的过程。(1)加载 将class文件字节码内容加载到内存中,并将这些静态数据转换成方法区中... 查看详情
java类加载机制
类加载机制是指将class文件加载到JVM,并形成class对象的机制,之后应用就可以对class对象进行实例化并调用,类加载机制可在运行时动态加载外部的类、远程网络下载过来的class文件等。除了该动态化的特殊外,JVM的类加载... 查看详情
java的类加载机制
本文主要讲述Java类的加载机制,主要包括类加载器、加载过程、初始化时机。一、类加载器1、ClassLoader抽象类类加载器的任务就是根据一个类的全限定名来读取此类的二进制字节流到JVM内部,然后转换为一个与目标类对应的java.... 查看详情
java之类加载机制
类加载:类加载机制是指.class文件加载到jvm,并形成Class对象的机制,之后的应用就可对Class对象进行实例化并调用,类加载机制可在运行时动态加载外部的类,远程网络下载过来的class文件等,除了该动态化的优点外,还可通过... 查看详情
java类加载机制简介---jvm(代码片段)
文章目录类加载器介绍类加载器种类类加载机制双亲委派机制含义全盘负责委托机制含义注类加载器介绍类加载器种类启动类加载器(也叫引导类加载器。Bootstrap):这个类加载器负责放在<JAVA_HOME>\\lib目录中的... 查看详情
透彻解析java类加载机制
目录Java类加载机制的七个阶段加载、验证、准备(重要)、解析、初始化(重要)、使用、卸载在许多Java面试中,我们经常会看到关于Java类加载机制的考察,例如下面这道题:classGrandpa{ static{ &nbs... 查看详情
java类加载机制
在许多Java面试中,我们经常会看到关于Java类加载机制的考察,例如下面这道题:classGrandpa{static{System.out.println("爷爷在静态代码块");}}classFatherextendsGrandpa{static{System.out.println("爸爸在静态代码块");}publicstaticintfactor=25;publicFather(){S 查看详情
谈谈java类加载机制
概述类加载器主要分为两类,一类是JDK默认提供的,一类是用户自定义的。JDK默认提供三种类加载器:BootstrapClassLoader启动类加载器:每次执行java命令时都会使用该加载器为虚拟机加载核心类。该加载器是由nativecode实现,而不... 查看详情
深入理解java虚拟机——类加载机制(代码片段)
文章目录类加载机制类的生命周期类的加载过程1、加载2、验证3、准备4、解析5、初始化类的初始化时机类加载器类与类加载器类加载器分类双亲委派模型工作过程源码分析双亲委派机制的好处类加载机制类的生命周期一个类型... 查看详情
tomcat学习笔记tomcat类加载机制
tomcat学习笔记(四)Tomcat类加载机制类加载机制jvm的类加载机制双亲委派机制双亲委派机制的作用tomcat类加载机制类加载机制java类(.java)->字节码文件(.class)->字节码文件需要被加载到jvm内存中(这个过... 查看详情
javasec类加载机制(代码片段)
这篇文章介绍java的类加载机制。Java是一个依赖于JVM(Java虚拟机)实现的跨平台的开发语言。Java程序在运行前需要先编译成class文件,Java类初始化的时候会调用java.lang.ClassLoader加载类字节码,ClassLoader会调用JVM的native方法(define... 查看详情
java类加载机制结构图
虚拟机类加载机制——类加载时机
由于道行不够深,所以此篇类加载机制的讲解主要来自于《深入理解Java虚拟机——JVM高级特性与最佳实践》的第7章虚拟机类加载机制。在前面《初识Java反射》中我们在开头提到要了解Java反射,就得要了解虚拟机的类加载... 查看详情
深入理解java虚拟机类加载机制
...过程、常见OOM【深入理解Java虚拟机】垃圾回收机制1、类加载机制概述虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机... 查看详情