- 浏览: 90429 次
- 性别:
- 来自: 烟台
最新评论
-
daxiaoli123:
1 http://sourceforge.net/projec ...
GCJ让Java程序脱离jre执行 -
zhangtongysu:
楼主 ,那个下载 怎么回事啊。
利用Ant和Eclipse有效地提高部署工作效率
很多人在学习Java的过程中不了解对象初始化的具体步骤到底如何,只是模糊的知道构造函数等可以进行初始化的内容,我们现在对Java中的类初始化步骤做一个详细的解析。
首先我们来了解一下到底有哪些地方可以初始化,我们给出下面的一段示例代码:
public classs Book ...{
private String name; ////默认初始化,初始化的值由系统给定,为null
private double price = 20.0; //默认初始化,初始化的值为20.0
private static int type;
//下面这个为静态初始化模块
static ...{
type = 1;
}
//下面这个为初始化模块
...{
price = 30.0;
}
//类的构造方法
public Book(String name, double price) ...{
this.name = name;
this.price = price;
}
}
在上面的代码中我们可以看到,总共存在这样几个可以做初始化的地方:
1、静态初始化模块
2、默认初始化
3、初始化模块
4、构造方法
现在我们来说明这些初始化的步骤:
1、在类第一次被加载的时候的,静态初始化模块会工作完成一个部分初始化任务
2、在类构造对象的时候,具体步骤如下:
a、系统创建类的实例对象
b、执行默认初始化,如果程序中指定了默认初始化的值,那么就按照默认值进行初始化,如果程序中没有指定初始化的值,那么由系统自动赋值,赋值的原则为:“一切都是0”,整型属性赋值0,浮点属性赋值0.0,字符属性赋值‘\0',布尔类型属性赋值false,引用类型属性赋值null
c、执行初始化模块,如果程序中存在多个初始化模块,那么按照书写顺序执行所有初始化模块。
d、执行对象中的构造方法。
完成上述步骤,一个对象的初始化任务就算彻底完成了。
这里补充说明一下:
默认初始化和初始化模块执行时的先后顺序取决于类中的书写顺序,如果初始化模块在属性的前面定义,那么初始化模块将会先执行。
首先我们来了解一下到底有哪些地方可以初始化,我们给出下面的一段示例代码:
public classs Book ...{
private String name; ////默认初始化,初始化的值由系统给定,为null
private double price = 20.0; //默认初始化,初始化的值为20.0
private static int type;
//下面这个为静态初始化模块
static ...{
type = 1;
}
//下面这个为初始化模块
...{
price = 30.0;
}
//类的构造方法
public Book(String name, double price) ...{
this.name = name;
this.price = price;
}
}
在上面的代码中我们可以看到,总共存在这样几个可以做初始化的地方:
1、静态初始化模块
2、默认初始化
3、初始化模块
4、构造方法
现在我们来说明这些初始化的步骤:
1、在类第一次被加载的时候的,静态初始化模块会工作完成一个部分初始化任务
2、在类构造对象的时候,具体步骤如下:
a、系统创建类的实例对象
b、执行默认初始化,如果程序中指定了默认初始化的值,那么就按照默认值进行初始化,如果程序中没有指定初始化的值,那么由系统自动赋值,赋值的原则为:“一切都是0”,整型属性赋值0,浮点属性赋值0.0,字符属性赋值‘\0',布尔类型属性赋值false,引用类型属性赋值null
c、执行初始化模块,如果程序中存在多个初始化模块,那么按照书写顺序执行所有初始化模块。
d、执行对象中的构造方法。
完成上述步骤,一个对象的初始化任务就算彻底完成了。
这里补充说明一下:
默认初始化和初始化模块执行时的先后顺序取决于类中的书写顺序,如果初始化模块在属性的前面定义,那么初始化模块将会先执行。
发表评论
-
调试MAVEN项目appfuse-light-struts2-spring-jdbc-1.8的问题
2008-03-07 16:31 2285出现问题: Project appfuse-light-str ... -
MVC设计思想
2008-03-01 22:13 2143MVC英文即Model-View-Controll ... -
当前Java软件开发中几种认识误区(转)
2008-03-01 22:11 968软件的生命性 软件是有生命的,这可能是老调重弹了,但是因 ... -
给servlet写单元测试的总结(转)
2008-02-19 11:19 3545servlet的测试一般来说需要容器的支持,不是像通常的jav ... -
取得参数的几中形式
2008-02-18 12:54 882java -DSTOP.PORT=8080 -DSTOP.KE ... -
正则表达式
2008-02-18 12:34 899目录 本文目标 如何使 ... -
Java连接各种数据库的实例
2008-02-18 12:13 1166一、jsp连接Oracle8/8i/9i数据库(用thin模式 ... -
为什么要使用接口编程(转)
2008-02-17 21:42 1284看了接口编程这篇文章, ... -
JAVA中浅复制与深复制
2008-02-17 21:38 7191.浅复制与深复制概念 ⑴浅复制(浅克隆) 被复制对象的所有变 ... -
短信网关发送部分源代码
2008-02-17 21:37 1215package com.etonenet.iiie.sdk; ... -
appfuse结合eclipse开发流程
2008-02-17 21:33 1219Appfuse应用的核心在于ant ... -
使用Antlr和JfreeChart实现项目源代码行数计算图表
2008-02-17 21:30 1541Antlr的功能在我的其他文章里提到了就不多说了,JFreeC ... -
使用ANT协助开发java项目
2008-02-17 21:29 895ANT是Apache的开源项目,目前在java的项目开发中被广 ... -
利用Ant和Eclipse有效地提高部署工作效率
2008-02-17 21:26 1265本文主要介绍 Ant 在多 ... -
使用开源软件 Mantis 实施缺陷跟踪的成功实践
2008-02-17 21:22 1698内容摘要 中国开源 注:当前Mantis稳定发布版本为1.0. ... -
开源缺陷跟踪系统mantis安装指南
2008-02-17 21:14 18861. 简介 mantis(螳螂)是一个基于php/MySQL/ ... -
无所不能的“蚂蚁”-Ant(转)
2008-02-17 21:12 3232说他无所不能,好像有点夸张,但是用过Ant之后,感觉真的是只有 ... -
Java华为面试题
2008-02-17 21:08 1469第一部分:选择题 QUESTION NO: 1 1、publi ... -
java中读取Properties文件
2008-02-17 21:06 906ResourceBundle resourceBundle = ... -
Java范型
2008-02-17 21:04 1537从jdk1.5开始,Java中开始 ...
相关推荐
### Java中对象创建、初始化与引用详解 #### 一、Java对象、引用及创建过程 在Java中,对象是程序的基本单位,它包含了属性(成员变量)和行为(方法)。对象是由类创建出来的实例,而类则是一组具有相同属性和...
在面向对象语言中(如Java、C#等),当创建一个继承自某个基类的子类对象时,会有一个特定的初始化顺序。这个顺序通常遵循以下步骤: 1. **基类静态成员初始化**:如果基类中有任何静态成员,则会在程序启动时按照...
Java 变量初始化的时机是指在 Java 语言中变量的初始化过程,包括变量的声明、初始化和赋值的步骤。 Java 变量声明 在 Java 语言中,每个变量必须先声明,然后才能使用。声明变量时必须指定该变量的数据类型。...
在 Java 中,类的元素初始化顺序遵循以下规则: 1. **静态变量与静态初始化块**: 首先,Java 解释器会执行类中的静态变量初始化和静态初始化块。这些静态元素的初始化只会在类加载时执行一次,并且按照它们在源...
Java 对象初始化代码详解主要介绍了 Java 对象初始化代码详解,涉及实例变量的初始化,类变量的初始化等相关介绍几代码示例,具有一定参考价值,需要的朋友可以了解下。 一、Java 对象初始化过程 Java 对象初始化...
Java对象是由类实例化的结果,当我们使用`new`关键字创建一个对象时,实际上经历了以下几个步骤: 1. **类加载检查**:虚拟机首先检查`new`指令的参数是否能在常量池中定位到一个类的符号引用。如果该类尚未被加载...
通过本文的学习,读者应能深刻理解Java中构造方法的作用和使用方式,掌握构造方法与普通方法的区别,学会如何定义带参构造方法来初始化对象的属性,并理解实例化对象时构造方法自动调用的原理。此外,通过实际编程...
### 类初始化顺序详解 本文将基于给定的Java示例代码深入探讨类初始化的顺序问题。这不仅是Java语言的关键特性之一,在其他面向对象语言(如C++、.NET)中也有相似的概念。理解这一概念有助于程序员更好地掌握面向...
4. **执行构造函数内的代码**:在构造函数中可以执行任何必要的初始化工作,比如为成员变量赋值等。 #### 三、示例分析 假设我们有一个简单的类`Dog`,其定义如下: ```java public class Dog { private String ...
Java类的初始化和实例化详解 Java类的初始化和实例化是Java编程语言中两个非常重要的概念,它们都是Java类生命周期的重要组成部分。下面我们将详细介绍Java类的初始化和实例化的过程,并解释其中的细节。 一、Java...
构造函数中首先调用父类的构造函数,创建一个新的扫雷程序窗口,然后获取扫雷程序的内容面板,设置扫雷程序的大小和位置,最后初始化扫雷程序的组件。 扫雷程序的事件处理 扫雷程序的事件处理是通过ActionListener...
- **构造器**:掌握如何创建对象及其初始化过程。 - **抽象类与接口**:理解抽象类和接口的区别及其应用场景。 - **方法的多态性**:掌握方法重载(Overloading)与方法重写(Overriding)的区别。 - **异常处理**:...
在Java编程语言中,类的初始化是一个至关重要的过程,它涉及到类加载、静态初始化和实例化等多个阶段。本文将深入探讨这些步骤,并通过一个具体的示例来解释它们之间的顺序。 首先,我们来看类的装载顺序。Java...
- **特点**: 构造方法的名字必须与类名相同,没有返回类型(包括`void`),可以带有参数,以便在创建对象时初始化其属性。 6. **构造代码块** - **定义**: 是一种特殊的代码块,用于初始化对象的状态。 - **...
在 Java 语言中,类加载器(ClassLoader)是 Java 运行时环境的核心组成部分之一,它负责将编译后的 `.class` 文件加载到 JVM 中执行。从 JDK 1.0 开始,随着 Java Applet 的出现以及网络应用的需求增加,类加载机制...
3. **在Servlet中调用初始化方法**:在Servlet的`init()`方法中,获取Web应用的根目录,结合配置的文件名,构造出配置文件的完整路径,然后使用`PropertyConfigurator.configure()`方法进行初始化。 ```java ...
总结,Java对象的创建和内存分配涉及到一系列复杂的过程,包括类加载、内存分配、对象初始化等。了解这些细节有助于优化代码性能,尤其是在处理大量对象创建的场景下。逃逸分析是现代JVM优化的重要手段之一,它可以...
2. **对象与引用的创建过程**:对象的创建包括在堆内存中分配空间、初始化状态以及建立引用连接三个步骤。 3. **引用的使用**:引用可以指向零个或一个对象,且可以被复制来共享同一个对象。 4. **对象的生命...
2. **逃避构造函数约束**: 如果构造函数有复杂的初始化逻辑,使用克隆更便捷。 3. **降低耦合度**: 客户端无需知道对象的具体创建过程,只需知道如何使用原型对象。 缺点: 1. **实现复杂**: 特别是当类包含不可...