设为首页 加入收藏

TOP

Java类的实例化探究
2014-11-24 11:55:04 来源: 作者: 【 】 浏览:1
Tags:Java 实例 探究

java类的实例化(instantiation)具有显性的和隐性的区别。


一般编程时,我们锁使用new的方法实例化,这是最简单直接的显性实例化。另外还有三种实例化,分别为反射机制中的newInstance()方法,类的clone()方法 和 解串行化使用的ObjecInputStream中的getObject()方法。


而隐性的实例化则出现在java程序的整个生命周期中,包括String 、 Class ,StringBuffer 或者StringBuilder的实例化。


详细内容如下:




显性的实例化:


1.直接使用new关键字创建新的对象


调用相应的构造函数完成实例化。(类中的非静态成员变量如果有初始化语句,都会被隐式的加入到构造函数中)代码如下:



关键在于LDC"xyz"这条指令,明显可以看出,这是用于strA初始化的字符串。


由此我们可以归纳出,在没有调用 本类中其他的构造函数的情况下,每次类的构造函数中都会按如下顺序进行:


a)隐式(或显性)的调用父类的构造函数,


b)然后执行写在构造函数外的成员变量的初始化赋值


c)最后再执行构造函数中的命令。


如果是有显性的调用本类其他构造函数(必须是放在构造函数第一步执行),那么对于这个构造函数,处理过程就简单些了:


a)调用那个构造函数。


b)执行之后的代码。


至于为什么一定要将另外一个构造函数放在构造函数的第一步:必须先处理好heap中的变量初始化后才能下一步执行。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Java动态性: 类加载时的延迟初始化 下一篇Linux Input子系统(上)--概述

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·如何从内核协议栈到 (2025-12-27 03:19:09)
·什么是网络协议?有哪 (2025-12-27 03:19:06)
·TCP/ IP协议有哪些 (2025-12-27 03:19:03)
·怎样用 Python 写一 (2025-12-27 02:49:19)
·如何学习python数据 (2025-12-27 02:49:16)