2019独角兽企业重金招聘Python工程师标准>>>

类变量(static变量,不需要实例化对象也可以引用)
实例变量(非static变量,需要实例化对象)
局部变量(类的成员函数中的变量)

初始化方式:
构造函数初始化
变量声明时初始化
代码块初始化
java自动初始化(在构造函数执行之前执行)

java保证所有变量被使用之前都是经过初始化的(声明并且定义过,被赋值过).
静态数据成员只有第一次被使用的时候会被初始化,其他时间都不会再执行初始化.

静态成员变量和静态代码块的执行
编译器在解析一个类定义的时候,会先去搜集所有相关成员变量的相关的语句.
确定当前变量是否被声明(这个时候不会去定义,不会初始化,包括自动初始化).
然后按照代码的先后顺序,依次执行相关语句,对变量进行赋值操作.
静态变量和静态代码块的执行优先于非静态成员变量和非静态代码块.

非静态成员变量和非静态代码块的执行
与静态成员变量和静态代码块的初始化方式一样.
只有在类实例化的时候才会执行非静态成员变量和非静态代码块.
构造函数的执行在变量自动初始化和代码块之后,构造函数赋值之前,变量已经被代码块赋值或者已经被声明时初始化.

继承类的初始化
父类的构造函数,先于子类的非静态代码块执行.
先执行静态代码,再执行非静态代码,然后执行构造函数.
先实例化父类成员,再实例化子类成员.

转载于:https://my.oschina.net/u/1585028/blog/685356

java成员变量的初始化相关推荐

  1. java 成员变量的初始化_Java类变量和成员变量初始化过程

    一.类的初始化 对于类的初始化:类的初始化一般只初始化一次,类的初始化主要是初始化静态成员变量. 类的编译决定了类的初始化过程. 编译器生成的class文件主要对定义在源文件中的类进行了如下的更改: ...

  2. java成员变量的初始化_Java成员变量初始化过程

    import java.util.*; public class Main { public static void main(String[] args){ Student s = new Stud ...

  3. Java成员变量初始化和构造函数顺序

    1.Java虚拟机会将所有的初始化动作手机到<init>()方法中,在分配内存后,就开始调用<init>()方法,其中,成员变量的初始化在构造函数里的初始化动作之前. publ ...

  4. 构造方法的调用顺序和成员变量的初始化时机以及动态绑定

    构造方法的调用顺序:子类构造器中,JVM会自动的先调用父类的构造方法,然后再执行子类构造方法.在JVM自动调用父类构造方法的时候,会完成父类中拥有的成员变量的值的初始化操作,此时子类的成员变量并未初始 ...

  5. java成员变量定义_java变量之成员变量和局部变量以及它们的运行机制

    Java语言根据变量定义位置的不同,将变量分为成员变量和局部变量.成员变量指的是定义在类中(方法外)的变量,局部变量指的是定义在方法中的变量.同时成员变量以是否用static修饰分为类变量和实例变量. ...

  6. Java 成员变量和静态变量的区别

    文章目录 Java 成员变量和静态变量的区别 变量声明默认值 与 Python 的联系 实例变量的声明 类变量的声明 static 方法 Java 成员变量和静态变量的区别 1)成员变量所属于对象.所 ...

  7. java成员变量/局部变量

    成员变量/局部变量 1.定义位置不同,成员变量定义在类里,局部变量定义在类的方法里. 来自网络 2.成员变量中,其中类变量从该类的准备阶段起开始存在,直到系统完全销毁这个类,类变量的作用域与这个类的生 ...

  8. C++成员变量的初始化顺序问题

    C++成员变量的初始化顺序问题 由于面试题中,考官出了一道简单的程序输出结果值的题:如下, [cpp] view plain copy  print? class A { private: int n ...

  9. C++类中成员变量的初始化有两种方式

    C++类中成员变量的初始化有两种方式: 构造函数初始化列表和构造函数体内赋值.下面看看两种方式有何不同. 成员变量初始化的顺序是按照在那种定义的顺序. 1.内部数据类型(char,int--指针等) ...

最新文章

  1. 计算机应用基础试题及答案试卷号7074,阅读文章,完成试题。后来才知道,在这千钧一发的时刻,是郝副营长划着了火柴,点燃了那本书,举得高高的, - 学进去中小学试卷试题库...
  2. 在一个数组中实现两个堆栈
  3. 用行为树的方式思考:任务系统设计
  4. mysql qps提升_上亿数据MYSQL的innodb优化 QPS轻松过5000
  5. 前端学习(1851)vue之电商管理系统电商系统配置ssh
  6. 解决:Error response from daemon: manifest for xxx:latest not found: manifest unknown...
  7. [Spark] - HashPartitioner RangePartitioner 区别
  8. hdu 1802 Black and white painting(置换群)
  9. java 通过System.getProperties()获取系统参数
  10. 图论及其应用 2013年期末考试 答案总结
  11. 申请办理美国亚马逊质量检验报告前,需准备什么资料?
  12. ESD-PCIe 402-1 CAN卡驱动安装及测试
  13. 想学制作外挂的新手看过来
  14. 撩妹利器之心形函数代码
  15. 会计分录、科目、账户
  16. docker容器和镜像的区别
  17. 连入网络中的计算机必须都是,12计算机网络判断题.doc
  18. 【Java】7-5 实验室使用排期 (25分)(List排序)
  19. java新手入门学习指南
  20. 在线炒股天载分析市场呈现出一片跌势

热门文章

  1. 2017.10.13java上机出现中的问题
  2. treeview自动从表中添加标题和列值做目录的方法2
  3. html 输入框防止自动记忆,网页输入框input填写内容自动记忆功能怎么去除
  4. 企业非法集资风险预测_2020CCF--企业非法集资风险预测83.35baseline
  5. java部署平台_开源Java自动化部署平台JDeploy
  6. android 打开支付宝扫码页_Chrome 85正式版发布:新增标签页分组功,网页多了也不乱...
  7. Spring Cloud Alibaa
  8. 100个高低压配电知识!网络弱电必备知识~
  9. 前端:JS几种常见的排序
  10. 盘点神奇却少为人知的IntelliJ IDEA快捷键