Class的生命周期 - Always On The Way - 博客频道 - CSDN.NET



Class的生命周期 - Always On The Way - 博客频道 - CSDN.NET

         之前的JVM类加载机制-ClassLoader》和《初探JVM-ClassLoader源码,只是讨论了Class的加载部分,现在来纵观一下整个Class的生命周期。

         Class的生命周期就是指一个class文件(字节码)从加载到卸载的全过程。

当一个类被装载、连接、初始化后,它的生命周期就开始了,当代表该类的Class对象不再被引用、即已经不可触及的时候,Class对象的生命周期结束。那么该类的方法区内的数据也会被卸载,从而结束该类的生命周期。

一个类的生命周期取决于它Class对象的生命周期,经历加载、连接、初始化、使用、和卸载五个阶段。

         类的加载(Load Class)包含了以下三个步骤:

装载 Loading

查找Class的二进制文件(.class),把类的信息加载到JVM的方法区中,对其进行部分检验(类文件的魔数,文件长度,是否有父类等);在堆区中实例化一个java.lang.Class对象,作为方法区中这个类的信息的入口。

加载方式有多种:A. 在classPath下找相应class文件;B. 从jar文件中读取;C. 从网络中获取;D. 实时生成,如设计模式中的动态代理模式;E. 从非class文件中获取,这些文件在jvm中运行之前也会被转换为可识别的字节码文件。

         一般来说加载和连接是同步的,但有时候也会交叉进行,但是两者的开始和结束是顺序的。


Read full article from Class的生命周期 - Always On The Way - 博客频道 - CSDN.NET


No comments:

Post a Comment

Labels

Algorithm (219) Lucene (130) LeetCode (97) Database (36) Data Structure (33) text mining (28) Solr (27) java (27) Mathematical Algorithm (26) Difficult Algorithm (25) Logic Thinking (23) Puzzles (23) Bit Algorithms (22) Math (21) List (20) Dynamic Programming (19) Linux (19) Tree (18) Machine Learning (15) EPI (11) Queue (11) Smart Algorithm (11) Operating System (9) Java Basic (8) Recursive Algorithm (8) Stack (8) Eclipse (7) Scala (7) Tika (7) J2EE (6) Monitoring (6) Trie (6) Concurrency (5) Geometry Algorithm (5) Greedy Algorithm (5) Mahout (5) MySQL (5) xpost (5) C (4) Interview (4) Vi (4) regular expression (4) to-do (4) C++ (3) Chrome (3) Divide and Conquer (3) Graph Algorithm (3) Permutation (3) Powershell (3) Random (3) Segment Tree (3) UIMA (3) Union-Find (3) Video (3) Virtualization (3) Windows (3) XML (3) Advanced Data Structure (2) Android (2) Bash (2) Classic Algorithm (2) Debugging (2) Design Pattern (2) Google (2) Hadoop (2) Java Collections (2) Markov Chains (2) Probabilities (2) Shell (2) Site (2) Web Development (2) Workplace (2) angularjs (2) .Net (1) Amazon Interview (1) Android Studio (1) Array (1) Boilerpipe (1) Book Notes (1) ChromeOS (1) Chromebook (1) Codility (1) Desgin (1) Design (1) Divide and Conqure (1) GAE (1) Google Interview (1) Great Stuff (1) Hash (1) High Tech Companies (1) Improving (1) LifeTips (1) Maven (1) Network (1) Performance (1) Programming (1) Resources (1) Sampling (1) Sed (1) Smart Thinking (1) Sort (1) Spark (1) Stanford NLP (1) System Design (1) Trove (1) VIP (1) tools (1)

Popular Posts