java基础之变量初始化时机

对于实例变量而言,它属于Java对象本身,每次程序创建Java对象时都需要为实例变量分配内存空间,并执行初始化。

从程序运行的角度来看,每次创建Java对象都会为实例变量分配内存空间,并对实例变量执

行初始化。

程序可以在3个地方对实例变量执行初始化:

.定义实例变量时指定初始值;

.非静态初始化块中对实例变量指定初始值;

.构造器中时实例变量指定初始值.

每当程序调用指定构造器来创建Java对象时,该构造器必然会获得执行的机会。除此之外,该类所包含的非静态初始化块将会获得执行的机会,而且总是在构造器执行之前获得执行。

效果如下图所示:

时间: 2024-10-05 22:34:06

java基础之变量初始化时机的相关文章

java基础学习-变量&运算

package com.J; public class java { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub float a=1.11111111111111f;    // 数据表示单精度末尾+"f",此处数据存储要溢出 double b=1.1111111111111111;  // java里面默认小数都为double双精度浮点

java基础09之类变量初始化时机

讨论了实例变量的初始化时机,现在来讲讲类变量的初始化时机. 实例变量属于Java类本身,只有当程序初始化该Java类时才会为该类的类变量分配内存空间,并执行初始化. 从程序运行的角度来看,每JVM对一个Java类只初始化一次,因此Java程序每运行一次,系统只为类变量分配一次内存空间,执行一次初始化.填写图片摘要(选填) ?注释掉的代码如果执行的话运行程序为3000 如果把代码放在初始工资下面的话程序运行为5000? Salary.Demo先被类加载,在main方法通过实例化对象调用curren

Java基础——成员变量、局部变量和静态变量的区别

之前在刚开始学习Java的时候,就谈了谈Java基础中的变量,虽然知道这货以后会经常用到,但没想到了基本语法这里,竟然有冒出来了成员变量.局部变量和静态变量.变来变去太容易让人搞晕了,挑拣出来梳理一下喽! 要想区分这哥仨,首先,我们得知道它们分别是什么.先从成员变量下刀. 成员变量 我们来研究一个事物: 属性:外在特征:例如人的身高,体重 行为:能够做什么:例如人有说话,打球等行为. 而在Java语言中,最基本的单位是类,类就是用来体现事物的. 用类class来描述事物也是如此: 属性:对应类中

Java基础总结--变量、运算符总结

---变量基本概述----变量作用:就是用来存储数据变量的声明:变量类型 变量名;变量类型---区分不同类型的数据,变量名--按名访问变量变量名(规则):见名识意,第一个字母小写后面驼峰规则变量的作用域:所在方法内/所在局部代码块内变量初始化:一般情况都要进行初始化(成员变量JVM会进行默认初始化)---变量的分类---(java由于JVM存在跨平台,所以各种数据类型的数据占的存储空间不变)1.基础数据类型整型:byte-1B short-2B char-2B int-4B long-8B布尔型

java基础——各种变量你晕了不?

java 中的变量大致分为 成员变量 和 局部变量 两大类. 成员变量:     在类体里面定义的变量称为成员变量. 假设该成员变量有 static keyword修饰.则该成员变量称为 静态变量 或 类变量. 假设该成员变量没有 static keyword修饰,则该成员变量被称为 非静态变量 或 实例变量. 局部变量:     形參.方法内定义的变量.代码块中定义的变量,都属于局部变量. 类变量 (静态变量)     1. 能够向前引用 2. 变量属于类本身 3. 类变量不依赖类的实例,类变

Java类加载及变量初始化过程

Java虚拟机如何把编译好的.class文件加载到虚拟机里面?加载之后如何初始化类?静态类变量和实例类变量的初始化过程是否相同,分别是如何初始化的呢?这篇文章就是解决上面3个问题的. 本文前面理论部分比较枯燥,但是如果耐心读完,结合后面的实例,我相信你以后绝对不会再遇到java类初始化这样的疑惑.若有不正之处,请多多谅解并欢迎各位能够给予批评指正,提前谢谢各位. 1. Java虚拟机加载.class过程 虚拟机把Class文件加载到内存,然后进行校验,解析和初始化,最终形成java类型,这就是虚

Java基础知识之初始化——初始化顺序

概述 在Java中所有的变量在使用前都需要初始化.如果我们不初始化,则编译器会为变量初始化一个默认值(例如,int类型的变量的初始化默认值是0).但是初始化的顺序是什么样的,很多人搞不清楚(我以前也搞不清楚),这篇文章就是为了说明初始化的顺序是什么样的. 说明 本例子用到四个类:Person.Student.Dog.Order,其中Student继承了Person. 下文所说的静态初始化包括:静态代码块初始化.静态变量初始化. 下文所说的非静态初始化包括:非静态代码块初始化.普通变量初始化. 举

再回首,Java温故知新(五):Java基础之变量

变量在所有的编程语言中都有,属于最最基础的部分,学习这部分基本不分语言,变量可分为成员变量和局部变量 Java中变量的声明格式如下,修饰符如果不加,默认是default,关于修饰符,我们会在后续讲到,这里只做了解:类型是必须添加的,而且每一个变量必须对应一种类型:变量名通常是以字母开头,由字母或数字构成的序列,不过在Java中范围要大一些,字母包括a~zA~Z_$等,但不建议使用特殊字符,变量名长度没有限制,且大小写敏感. 格式:[修饰符(public private static final等

Java的成员变量初始化

对于方法里面的成员变量,Java要求程序员强制提供一个初始化的值.比如下面这个方法就会出错: public class Breakyizhan{ public void Z(){ int z; z++; } public static void main(String[] args) { Breakyizhan B = new Breakyizhan(); B.Z(); } } /* (www.breakyizhan.com) 输出结果是: 编译会出错,方法变量没有初始化 */ 而对于类的数据,