`
javawebsoa
  • 浏览: 407447 次
社区版块
存档分类
最新评论

Java学习笔记(成员变量初始化补充)

阅读更多

为了进一步理解类的初始化过程,这里有必要进一步区分一下类的实例化(类实例)和类的对象实例化(对象实例),我们通常所说的实例化都是指对象实例化。

我们可以把类的使用简单分为三个过程:类加载,类实例化,对象实例化。
类的加载:由Java虚拟机根据需求将要用的类加载到内存中,让类的代码处于可用状态;对于解释型虚拟机来说,这个代码就直接可解释执行,而对于采用即时编译(JIT)技术来说,虚拟机一般会在方法第1次调用时将字节码编译成目标机器语言,而且是要多少编译多少。类的加载在一个程序运行期间一般只执行一次。
类实例化:其实实例化主要是为成员变量分配空间,代码本身当然无所谓实例化,都是公共的。类之所以要实例化主要是因为类可以拥有静态变量的缘故,必须为类的这些静态成员分配空间,并执行这些静态成员变量的初始化操作;类的实例化在一个程序运行期间,也只执行一次;另外需要注意的是类的加载可以从本地执行,也可以从远程获取,因为类的代码本质上来说也是一些数据(字符序列)。
对象实例化:类是一些具有共同特征和行为的对象的静态描述(一种数据类型),对象实例化就是将类作为模子为每个对象分配具体的内存空间形成独立的实体;当然,这里的分配空间主要是针对成员变量,成员方法都是些代码,是所有对象共有的,因此并不需要重新分配空间来保存一份代码的复制品。
上面的上个过程,后面的过程执行都需要前面的过程已经执行过。
对于类A来说,如果类A没有被加载,那么A.class的调用会导致类的加载,但不会导致类实例化。而Class.forName("A")的调用,不仅会执行类加载,还会执行类实例化。其实这个方法还有一个重载方法,可以指明是否进行类实例化,而且还可以指定是本地加载还是远程加载(利用ClassLoader)。

分享到:
评论

相关推荐

    java学习笔记 初学者必读

    5.3. 初始化数组 5-10 5.4. 多维数组 5-10 5.5. 数组拷贝 5-10 6. 五•对象和类 6-11 6.1. 面向对象与面向过程 6-11 6.2. 对象的概念 6-12 6.3. 成员变量和局部变量 6-12 6.4. 成员方法 6-12 6.5. This关键字 6-13 ...

    java学习笔记-java思维导图流程图表格整理

    Java学习笔记 1 命令行运行 1 Java基础 1 注释 1 单行注释 1 多行注释 1 文档注释 1 标识符和关键字 2 数据类型 4 类型转换 7 变量 9 基本运算符 10 包机制 12 Javadoc 12 使用命令行生成 12 使用idea生成 12 Java...

    Java JDK 7学习笔记(国内第一本Java 7,前期版本累计销量5万册)

     《java jdk 7学习笔记》适合java的初中级读者,以及广大java应用开发人员。 作译者 林信良(网名:良葛格) 学历:台湾大学电机工程学系 经历:台湾升阳教育训练技术顾问、专业讲师,oracle授权训练中心讲师 ...

    Java/JavaEE 学习笔记

    Core Java学习笔记...........31 第一章 JAVA前言..31 第二章 标识符,关键字,类型........35 第三章 表达式与流控制....................41 第四章 数组.............50 第五章 对象和类(OO思想).........53 第...

    java学习笔记–java基础

    java学习笔记 这是目录java学习笔记第一部分. java基础1.1 输入输出用户交互Scanner用户交互Scanner进阶1.2 基本数据类型基本数据类型类型转换变量,常量,作用域运算符补充:包机制补充:JavaDoc1.3 顺序结构1.4 循环...

    JavaSE基础学习笔记

    JavaSE 星辰学习笔记 简介 如何高效的学习Java 案例:创建一个博客网站typecho 基础 Java程序运行机制 数据类型 变量 变量作用域 常量final 变量的命名规范 运算符 for循环 增强for循环 break continue 练习 Java的...

    java学习笔记 - 2

    1.回顾前一天知识 2.变量的声明,初始化及使用 3.java标识符的命名规则 4.八种基本数据类型的介绍 5.类型之间的转换

    Java学习笔记-个人整理的

    {1.10.2}数组变量的初始化}{34}{subsection.1.10.2} {1.10.3}数组对象的引用}{35}{subsection.1.10.3} {1.10.4}数组对象的复制}{35}{subsection.1.10.4} {1.10.5}扩充数组对象长度}{36}{subsection.1.10.5} {...

    整理后java开发全套达内学习笔记(含练习)

    initialize 预置 初始化 [i'niʃәlaiz] instanceof (关键字) 运算符,用于引用变量,以检查这个对象是否是某种类型。返回 boolean 值。 interface (关键字) 接口 ['intәfeis] invoke vt.调用 [in'vәuk]' ( ...

    c#学习笔记——学习心得

    向方法传递结构时,是通过传值方式传递的,结构实例化可以不用new,结构可以声明构造函数,但必须带参数,且声明的构造函数是用来对成员初始化的,必须包含每个字段。结构不能从另一个结构或类继承而来,但可以实现...

    J2EE学习笔记(J2ee初学者必备手册)

    Core Java学习笔记...........31 第一章 JAVA前言..31 第二章 标识符,关键字,类型........35 第三章 表达式与流控制....................41 第四章 数组.............50 第五章 对象和类(OO思想).........53 第...

    c#学习笔记.txt

    c#学习笔记(1) 51099在线学习网发布 文章来源:网络收集 发布时间:2006-05-25 字体: [大 中 小] 51099在线学习网 http://www.51099.com 1, 结构(struct) 与 类(class) [attributes] [modifiers] struct ...

    PL/SQL学习笔记

    --声明嵌套表变量 嵌套表必须初始化 var1 mytype:=new mytype('a','b','c') begin var1.extend(2);--在数组后加了两个空间 var1(1):='a'; var1(6):='a';--超出空间 end; 可变数组的代码 declare --定义可变数组...

    springboot学习思维笔记.xmind

    springboot学习笔记 spring基础 Spring概述 Spring的简史 xml配置 注解配置 java配置 Spring概述 Spring的模块 核心容器CoreContainer Spring-Core Spring-Beans ...

    程序员面试刷题的书哪个好-thinkingInJava:学习《thinkinginjava》一书

    3.当一个类的成员变量是基本类型时,JVM会默认将其初始化为对应的初值,但是最好自行进行初始化。 成员变量: 基本类型的初始化值是0, 引用的初始化值是null。 局部变量:必须给一个初始化的值,不然编译会报错。 4...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 第一章 Oracle入门 一、 数据库概述 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今五十年前。简单来说是本身可视...

    九九乘法表源码java-c-2nd-lang-asst-01:学习C作为第二编程语言的第一个编程任务

    九九乘法表源码java C 作为第二语言的第一个编程作业 这是一个教程式的作业,假设至少具备另一种编程语言(如 Java 或 Python)的基本知识。...合理的封装和有意义的契约(例如,谁初始化数组参数)。 比较函数的封装

    CLionProjects:学习阶段

    string :是编程语言中的字符串,字符串是一个特殊的对象,属于引用类型在的Java,C#中,字符串类对象创建后,字符串一旦初始化就不能更改,因为串类中所有字符串都是常量,数据是无法更改,由于字符串对象的不可...

Global site tag (gtag.js) - Google Analytics