- 浏览: 59313 次
- 性别:
- 来自: 深圳
文章分类
最新评论
类变量(类静态成员):类被加载时产生;它的生存期是类的生存期;自动初始化(类被加载)
成员变量(类成员): 在使用new创建该类实例时产生;它的生存期与该类实例对象的生存期相同;
方法中的变量,不会被自动初始化。比如main方法中的变量index,定义如int index; 它不会被自动初始化。
java编译器确保域(成员变量或块)在被使用之前必需初始化,即使你没直接初始化,它也会默认给你一个值。
1. 如果不涉及继承跟static,用new创建对象时,会调用那个类的构造函数,而在调用构造函数之前必需先初始化域(因为在构造函数里,可能会用到这些成员变量)
等域初始化完后再调用构造函数。强调一点:只要是成员变量,那么不管它放在类的哪个部位(但在方法或块内部不算,因为那算是局部变量),它都在构造函数调用之前调用,这是编译器确保的。
2. 如果涉及继承,当用new创建子类对象时,调用顺序是这样的:
1.先初始化父类的域(成员变量或块)
2.调用父类的构造函数(没有明确定义的话,调用默认那个,即编译器为你创建的)
3.再到子类,初始化子类的域
4.这时才轮到调用子类的构造函数
原则是:要确保域在被调用之前要被初始化.
上面是涉及两层,如果是涉及多层继承的,那么一致递推上去,即先初始化父类的域,然后调用父类构造函数,再初始化子类的域然后再调用子类的构造函数,再初始化子子类的域(用这个名字好像有点怪,哈哈,就是孙子类的意思)然后再调用子子类的构造函数,一致类推下去
3.涉及static的话,static域是在编译的时候加载的,原则是:
1.static域是在非static(上面说的都是非static)之前调用的
2.static域只初始化一次(即只调用一次),打个比方A a = new A(); A
里有static域,只有当你第一次使用new创建对象的时候它会在非static之前调用,而如果你还想再用new创建对象时,static域这段代码
是不会被调用的(因为static的东西是属于类,所以对象共享的,一次就够了)
发表评论
-
java中获取IP的方法
2013-05-08 17:22 733String ip = request.getHeader(& ... -
java 线程安全
2013-01-30 00:17 677java线程安全:就是指线程同步,就是当线程对一个线程安全方法 ... -
java读取文件方法大全
2012-12-10 20:18 654public class ReadFromFile { ... -
JDBC驱动及连接数据库url
2012-11-21 14:16 818/* * SQL SERVER相关参数配置 */ D ... -
java.lang.ClassCastException: org.apache.struts.taglib.bean.CookieTei异常
2012-07-18 11:24 756报java.lang.ClassCastException: ... -
http包详解
2012-07-17 11:46 814一、超文本传输协议及HTTP包 HTTP协议用于在In ... -
java特殊字符过滤器
2012-07-10 20:05 1036package com.jingdu.common; impo ... -
正则表达式
2012-06-20 15:53 648正则表达式教程 http://blog.sina ... -
java内部类的作用
2012-06-20 10:49 714一、 定义 放在一个类的内部的类我们就叫内部类。 二、 作 ... -
ibatis jdbcType
2012-05-21 19:28 2071package org.apache.ibatis.type; ... -
将class文件打包成jar包,里面含有文件夹
2012-05-15 13:11 1006java打包命令:jar cfm cmb.jar F:\cm\ ... -
Project is missing required source folder:’gen’
2012-04-26 15:15 1578错误如图: 这个错误比较明显,就是 ... -
读取properties文件
2012-03-20 00:11 623import java.io.BufferedInputStr ... -
JDBC的标准连接
2012-03-19 18:01 872package com.khb.dao; import ja ... -
Java常用日期封装
2012-03-18 21:43 771/** * all rights reserved ... -
java中的double类型,结果很有意思哦
2012-03-03 10:44 1440public class TestDouble{ public ... -
java自测题
2012-03-03 10:40 567北京理工大学java期末考试题 http://www.l99 ... -
真正最正确的用BAT运行JAVA不显示DOS窗口(连闪一下都不闪)
2012-02-24 10:53 770今天写一个独立于RCP项目之外的SWT小工具,需要用批处理启动 ... -
Java中的native修饰符
2012-02-23 11:59 709一. 什么是Native Method 简单地讲,一个N ... -
如何将 一个字符串 转化成 字符数组
2012-02-23 11:43 1322public static void main(String[ ...
相关推荐
下面小编就为大家带来一篇关于Java变量的声明、内存分配及初始化详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
对于静态变量、静态初始化块、变量、初始化块、构造器,它们的初始化顺序依次是(静态变量、静态初始化块)>(变量、初始化块)>构造器
本篇文章是对Java变量的初始化顺序进行了详细的分析介绍,需要的朋友参考下
主要介绍了JAVA定义变量与输出详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
主要介绍了java对象初始化代码详解,涉及实例变量的初始化,类变量的初始化等相关介绍几代码示例,具有一定参考价值,需要的朋友可以了解下。
下面小编就为大家介绍一下java变量和作用域以及成员变量的默认初始化,具有很好的参考价值,希望对大家有所帮助
如果修饰的是引用类型的变量,那么初始化后就不能让他指向另一个对象,如下图所示 2.修饰方法 用final关键字修饰的方法是不能被该类的子类override(重写),因此,如果在想明确禁止 该方法在子类中被覆盖的情况下...
final型的静态变量必须在定义处或者在静态代码块中被显式初始化。 2. 局部变量的初始化 局部变量必须在使用之前做显式初始化。如果编译器能够确认一个局部变量在使用之前可能没有被初始化,编译器将报错。 如果...
3、全局区(静态区)(static)—,全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。 - 程序结束后有系统释放 4、文字...
java基本知识——变量的使用规则详解 1.变量 1.1什么是成员变量? 1.1.1概念 成员变量指的是在类里定义的变量;成员变量又被分为类变量和实例变量两种;而类变量指的就是有static修饰的变量,实例变量则无static修饰...
类的初始化 成员初始化 构造器初始化初始化顺序 数组初始化 对象的销毁 对象作用域 this 和 super 访问控制权限继承 多态组合代理 向上转型static final 接口和抽象类接口 抽象类异常 认 识 Exception 什么是 ...
三种初始化 25 静态初始化 26 动态初始化 26 默认初始化 26 数组的四个基本特点 27 二维数组 27 Arrays类 28 稀疏数组 29 面向对象编程 32 值传递和引用传递 33 创建和初始化对象 34 封装 34 继承 37 super 37 方法...
5.3.2 成员变量的初始化和内存中的运行机制 128 5.3.3 局部变量的初始化和内存中的运行机制 130 5.3.4 变量的使用规则 130 5.4 隐藏和封装 132 5.4.1 理解封装 132 5.4.2 使用访问控制符 132 5.4.3 package和...
3.12 Java变量的作用域 48 3.13 Java this关键字详解 49 3.14 使用this区分同名变量 49 3.15 作为方法名来初始化对象 50 3.16 作为参数传递 51 3.17 Java方法重载 52 3.18 Java类的基本运行顺序 53 3.19 Java包装类...
6.2.1 在类中给每个变量一个初始值 147 6.2.2 定义自己的引用 147 6.2.3 使用点操作符的技巧 148 6.2.4 类的数组 149 6.3 小结:Java其实是个类和对象的世界 152 6.4 习题 153 第7章 Java中的方法——给汽车...
非常实用的java代码优化策略详解,从变量声明、初始化、字符串链接、异常处理、IO、数组等各个方面进行优化,非常有参考价值。
6.2.1 在类中给每个变量一个初始值 147 6.2.2 定义自己的引用 147 6.2.3 使用点操作符的技巧 148 6.2.4 类的数组 149 6.3 小结:Java其实是个类和对象的世界 152 6.4 习题 153 第7章 Java中的方法——给汽车...
•与成员变量不同的是除了形参外,其他局部变量都必须显式地初始化, •Java 里允许局部变量和成员变量重名。这样局部变量会覆盖成员变量,这时通过this 来调用实例的属性. 成员变量的初始化 •当类被加载时,...
使用 static 修饰的属性,静态属性是在类的加载期间初始化的,使用类名.属性访问 案例说明 ①修饰成员变量 package com.ant.param; public class StaticFieldDemo { public static void main(String[] args) { ...