zoukankan      html  css  js  c++  java
  • 【java JVM】JVM中类的加载,加载class文件的原理机制

    暂时贴图一张,以后补充

    解释:

    1.符号引用替换为直接引用【参考:http://blog.csdn.net/maerdym/article/details/8087620】

     在java中,一个java类将会编译成一个class文件。在编译时,java类并不知道引用类的实际内存地址,因此只能使用符号引用来代替。比如org.simple.People类引用org.simple.Tool类,在编译时People类并不知道Tool类的实际内存地址,因此只能使用符号org.simple.Tool(假设)来表示Tool类的地址。而在类装载器装载People类时,此时可以通过虚拟机获取Tool类 的实际内存地址,因此便可以既将符号org.simple.Tool替换为Tool类的实际内存地址,及直接引用地址。

    2.构造代码块中的代码也是在构造方法中执行的【参考:http://bbs.csdn.net/topics/390635323?page=1】

    在编译时的编译器看来会默认将构造代码块中的代码移动到构造方法中,并且移动到构造方法内容的前面。

    看如下demo:

     1 public class TestCode {
     2      
     3     public TestCode() {
     4         System.out.println("构造方法");
     5     }
     6      
     7     {
     8         System.out.println("代码块");
     9     }
    10      
    11     public static void main(String[] args) {
    12         new TestCode();
    13     }
    14 }

    等同于:

     1 public class TestCode {
     2      
     3     public TestCode() {
     4         System.out.println("代码块");
     5         System.out.println("构造方法");
     6     }
     7      
     8     public static void main(String[] args) {
     9         new TestCode();
    10     }
    11 }
  • 相关阅读:
    华为2016校园招聘上机笔试题
    android SQLite 使用
    handler
    fragment 给 activity 传数据
    activity 给 fragment 传递数据
    fragment (动态加载)
    fragment (静态)
    Java学习随笔之磨刀篇——环境搭建+问候世界
    Go语言设计哲学
    Ubuntu设置护眼程序
  • 原文地址:https://www.cnblogs.com/sxdcgaq8080/p/7115405.html
Copyright © 2011-2022 走看看