<<黑马程序员>>类的加载和初始化

类的加载和初始化

+ (void)load  方法

  ①  当程序一启动就会把所有类和分类而且加载后就会调用每个类的+load方法只会调用一次、

  ②  先加载父类在加载子类,每个类加载完就会调用load方法

2 、 + (void)initialize    方法

     ①  当第一次使用这个类时就会调用  + (void)initialize    方法

调用顺序:①  先加载父类在加载子类

              ② 先调用父类的load方法在调用子类的load方法

              ③  使用这个类时就会先调用父类的initialize方法在调用子类的initialize方法,

                  如果没有使用子类就不会掉用子类的initialize方法

              ④  如果有分类就会先调用分类的initialize方法

注意点: ①  load方法在程序启动时每个类都会加载一次,就会调用load方法

② initialize 当第一次使用这个类时,就会调用initialize方法。

时间: 2024-10-12 13:46:32

<<黑马程序员>>类的加载和初始化的相关文章

黑马程序员----类的加载和初始化

类的加载和初始化 当程序一启动,就会加载项目中所有的类和分类,而且加载后会调用每一个类和分类中的+load方法(即使不创建对象也会调用),且只会调用一次: 当第一次使用某个类时,就会调用当前类的+initialize方法: 先加载父类,再加载子类(先调用父类的+load方法,再调用子类的+load方法): 先初始化父类,再初始子类(先调用父类的+initialize方法,再调用子类的+initialize方法): 注意点:1.调用创建子类时即会调用父类的+initialize方法,也会调用子类的

黑马程序员___OC类的加载和初始化

构造方法 完整的创建一个可用的对象需要两步 1.分配储存空间   +alloc 2.初始化   -init Person *p1 = [Person alloc] Person *p2 = [p1 init] 相当于:Person *p = [Person new] ,但是这个方法虽然可以快速创建一个新的对象,但是不能对新对象进行有选择的初始化 有时候我们想创建的对象都有一个初始值,这个时候就可以重写构造方法 - (id)init { //一定要调用回super的init方法,初始化父类中声明的

java类的加载以及初始化顺序 .

类的加载和初始化的了解对于我们对编程的理解有很大帮助,最近在看类的记载方面的问题.从网上查阅了若干文章,现总结如下: 我们通过一段代码来了解类加载和初始化的顺序: package com.classloader.demo; class Insect {  private int i = 9;  protected int j;  Insect() {    System.out.println("i = " + i + ", j = " + j);    j = 3

【转】JVM类的加载与初始化

版权声明: 本文原创作者:书呆子Rico 作者博客地址:http://blog.csdn.net/justloveyou_/ 摘要: 我们知道,一个.java文件在编译后会形成相应的一个或多个Class文件,这些Class文件中描述了类的各种信息,并且它们最终都需要被加载到虚拟机中才能被运行和使用.事实上,虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验,转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型的过程就是虚拟机的类加载机制.本文概述了JVM加载类的时机和生命周

java类的加载与初始化总结

1.触发类加载的原因(主动调用与被动调用): 六种主动调用: 1).创建类的实例(new操作.反射.cloning.反序列化) 2).调用类的静态方法 3).使用或对类/接口的static属性赋值(不包括static final的与在编译期确定的常量表达式(包括常量.字符串常量)) 4).调用API中的反射方法,Class.forName()等. 5).子类被初始化 6).被设定为JVM启动时的启动类(含main方法的主类) 其它都为被动引用:被动引用不会触发类的初始化操作(只会加载.链接),如

Java类的加载 链接 初始化

原文地址 Java类的加载.链接和初始化.Java字节代码的表现形式是字节数组(byte[]),而Java类在JVM中的表现形式是java.lang.Class类的对象.一个Java类从字节代码到能够在JVM中被使用,需要经过加载.链接和初始化这三个步骤.这三个步骤中,对开发人员直接可见的是Java类的加载,通过使用Java类加载器(class loader)可以在运行时刻动态的加载一个Java类:而链接和初始化则是在使用Java类之前会发生的动作.本文会详细介绍Java类的加载.链接和初始化的

黑马程序员-----类的继承和派生概念

------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ----- 第一讲 类的继承和派生概念 本小节知识点: 1.[理解]什么是继承? 2.[掌握]类的继承和派生概念 1.什么是继承? 2.OC中的继承与派生 1 #import <Foundation/Foundation.h> 2 3 @in

黑马程序员————类的第五个成员内部类

------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------- 我们在通过java语言描绘事物的时候,会遇到事物里面还有事物,而里面的事物还会用到外面事物的一些属性.就好像看似单一的物体实则里面还有很多看似独立的分支,但却又要用到这个物体的一些属性与方法.就好像大自然里面的万物,每个看似独立却又息息相

黑马程序员----类的本质

类的本质: 类本身也是一个对象,是一个Class类型的对象,简称类对象: 1.内存中创建对象的本质: 利用Class  创建一个 Person类对象: 利用person类对象,创建Person类型的对象. 2.类对象及对象内存细节: 3.类对象的其他使用: 调用类方法: 1.利用类名调用类方法: 2.利用类对象调用类方法: 创建对象: