`
zhaolei415
  • 浏览: 168841 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java成员初始化

阅读更多
在java开发中想过大家都有初始化成员变量,很简单,可是真正系统理解里面真正的过程是在今天,想想惭愧;让自己记得清楚点还是记录起来吧
1,在方法和类中成员变量初始化区别
例如: 
 
void f(){
          int i;
          int j = i++;//报错

          }
class c{
   int i;//在这里进行基本数据的初始化
   int j = i++;//没问题,会按照基本数据的原始值进行初始化(对象类型null)
}

2,指定初始化
class c {
int i=0;
double j = 0.0;
boolean k = f(i);
}

这样每一个对象都有相同值的成员变量。我们可以像k这个变量值通过函数进行赋值。
3,构造器的初始化
使用构造器的初始化可以给你的编程带来很大的方便,但是你永远不可能屏蔽编译器自动初始化的进行,它将在构造方法初始化前执行。
4,静态数据初始化
静态数据的初始化和先前提到的没有什么不同,值得注意的就是静态数据在类加载的时候初始化一次
class Bowl{
	
	Bowl(int i){
		System.out.println(i+"");
	}
}
class Table{
	static Bowl b1 = new Bowl(1);
	Table(){
		System.out.println("Table");
	}
	static Bowl b2 = new Bowl(2);
}
//在main方法中
Table t1 = new Table();
Table t2 = new Table();
//输出结果
1
2
Table
Table



总结对象的创建过程假设有个名为Dog的类
<1>,首次创建Dog对象,或者调用类中静态方法、静态域,java解析器查找类路径定位Dog.class
<2>,然后载入Dog.class有关静态初始化的动作执行(静态初始化只在类加载时候进行一次)
<3>,当你用new Dog的时候在堆上为Dog分配足够的存储空间
<4>,这块存储空间进行清0,类中的成员变量设置成了默认的值,应用设置成了null
<5>,执行所有域定义中的初始化动作
<6>,进行构造方法初始化

5,使用静态块进行初始化
类对象进行创建或者调用静态变量的时候初始化且只执行一次。

分享到:
评论
2 楼 zhaolei415 2010-12-15  
jkleeo 写道
# class c{ 
#    int i;//在这里进行基本数据的初始化 
#    i++;//没问题,会按照基本数据的原始值进行初始化(对象类型null) 
# } 

这句是错的.
i++不能在class block里写.

嗯,是错了,改正。谢谢
1 楼 jkleeo 2010-12-15  
# class c{ 
#    int i;//在这里进行基本数据的初始化 
#    i++;//没问题,会按照基本数据的原始值进行初始化(对象类型null) 
# } 

这句是错的.
i++不能在class block里写.

相关推荐

    Java 成员初始化要注意的两种不同的情况

    本文将详细探讨Java成员初始化的两种不同情况,以及与之相关的基础知识。 首先,我们来看第一种情况:类内的变量初始化。当声明一个类的成员变量(即实例变量)时,即使你没有显式地为它们赋值,Java编译器会自动为...

    java数组初始化详解

    Java 数组初始化详解 Java 数组初始化是 Java 编程语言中的一种基本概念,它允许开发者创建和初始化数组,以便于存储和操作数据。在本文中,我们将对 Java 数组初始化进行详细的介绍,包括一维数组和二维数组的声明...

    Java静态初始化块和对象初始化块

    在Java编程语言中,初始化块是程序执行时用于初始化对象或类的重要机制。这里我们将深入探讨两种类型的初始化块:静态初始化块(Static Initializer Block)和对象初始化块(Instance Initializer Block)。这两种...

    Java变量初始化

    Java 变量初始化详解 Java 变量初始化是 Java 语言的基础知识点之一,但也往往被学习者所忽略。 Java 变量初始化的时机是指在 Java 语言中变量的初始化过程,包括变量的声明、初始化和赋值的步骤。 Java 变量声明 ...

    java代码的初始化顺序demo

    总之,Java代码的初始化顺序是类加载的必然过程,涉及到静态和实例初始化块、构造函数、成员变量初始化以及继承关系的影响。这个demo是学习和理解这些概念的重要工具,通过实际操作可以加深对Java内存管理和对象生命...

    关于Java静态成员变量和静态初始化块等的初始化顺序的详细介绍

    详细介绍了Java的静态成员变量、静态数据块、非静态成员变量和非静态成员变量等初始化顺序

    java面试题-类的初始化顺序.doc

    这是Java语言规范所规定的,确保在子类访问父类的静态或非静态成员时,父类的初始化已经完成。 在实际开发中,理解这个初始化顺序是非常重要的,尤其是在设计复杂的类结构或者涉及单例模式、线程安全初始化等场景时...

    Java类继承初始化顺序

    当我们谈论“Java类继承初始化顺序”时,涉及到的关键知识点包括构造器、成员变量的初始化、super关键字以及方法的覆盖。 首先,了解类初始化的顺序至关重要。当创建一个子类实例时,初始化过程遵循以下步骤: 1. ...

    java中类的初始化顺序

    ### Java中类的初始化顺序详解 #### 一、概述 在Java编程语言中,类的初始化是一个非常重要的概念。类的初始化涉及到多个方面,包括静态成员变量、实例成员变量、静态初始化块、实例初始化块以及构造函数等。本文...

    详解Java的初始化与清理

    本文将深入探讨Java中的初始化过程,包括对象的构造器初始化以及类成员的初始化顺序,同时也会涉及Java的垃圾回收机制,即内存的自动清理。 首先,让我们详细了解一下Java中的构造器初始化。构造器是Java中用于初始...

    Java初始化块Java初始化块.doc

    静态初始化块不能访问非静态成员,包括实例属性和实例方法,因为它们依赖于对象实例,而静态初始化块在类加载时并没有对象存在。 类的初始化顺序如下: - 当Java创建一个对象时,先为对象的所有属性分配内存。 - ...

    java语法\Java数组声明、创建、初始化

    默认初始化是指数组是引用类型,它的元素相当于类的成员变量,因此数组分配空间后,每个元素也被按照成员变量的规则被隐士初始化。例如,`int[] s; s = new int[5];`创建了一个名为`s`的整型数组,数组长度为5。然后...

    成员的初始化顺序和多态性

    ##### 步骤一:成员初始化顺序 成员变量的初始化顺序遵循以下规则: 1. **实例变量的初始化**:按照它们在类中出现的顺序进行初始化。 2. **构造函数中的初始化**:在构造函数内部,可以显式初始化成员变量,这...

    Java中初始化数据域的四种方法

    在Java编程语言中,初始化数据域(字段或成员变量)是程序设计的重要组成部分。它确保在对象被创建或类被加载时,变量拥有一个合理的初始值。本篇文章将详细探讨四种常见的初始化数据域的方法,结合给出的代码示例...

    java数组初始化详解修正版.doc

    根据不同的初始化方式,Java 提供了三种主要的数组初始化方法:动态初始化、静态初始化以及隐式初始化。 #### 二、动态初始化 动态初始化是在创建数组时由系统自动为数组中的元素赋以默认值。默认值取决于元素的...

    java中对象创建、初始化、引用

    ### Java中对象创建、初始化与引用详解 #### 一、Java对象、引用及创建过程 在Java中,对象是程序的基本单位,它包含了属性(成员变量)和行为(方法)。对象是由类创建出来的实例,而类则是一组具有相同属性和...

    简单了解Java类成员初始化顺序

    Java类成员初始化顺序详解 Java类成员初始化顺序是Java编程中一个非常重要的概念,它直接关系到Java类的实例化和成员变量的初始化顺序。下面我们将通过详细的示例代码来介绍Java类成员初始化顺序。 首先,Java类中...

    Java初始化顺序1

    Java 初始化顺序详解 在 Java 中,变量可以分为两类:类变量(静态变量)和实例变量(对象变量)。类变量是使用 static 关键字修饰的变量,它们属于类,而不是对象。实例变量则是没有使用 static 关键字修饰的变量...

    深入java虚拟机(三)——类的生命周期(下)类的初始化1

    初始化阶段的目标是确保类的静态成员被正确地初始化。有两种主要的方式进行类的初始化: 1. **静态变量的声明处赋值**:这是最直接的方式,如`public static int a = 0;`,变量`a`在声明时就被赋予了初始值0。 2. ...

Global site tag (gtag.js) - Google Analytics