类中声明的静态变量在递归调用中的值不会发生变化,但是对于非静态变量递归过程中会发生变化,初始化为0

static声明的为类变量,而非static声明的为实例变量

(byte,short,char)-int-long-float-double:

低级到高级自动类型转换,高级到低级需要强制转换,包装类型过滤类型能够转换;

对于java的变量,我们知道有成员变量和局部变量。

关于他们的初始化,基本上所有书上都会写。成员变量,java会帮助你初始化,局部变量,则需要程序员自己初始化。

对于类的成员变量。不管程序有没有显示的初始化,Java  虚拟机都会先自动给它初始化为默认值。

规则为:

1、整数类型(byte、short、int、long)的基本类型变量的默认值为0。

2、单精度浮点型(float)的基本类型变量的默认值为0.0f。

3、双精度浮点型(double)的基本类型变量的默认值为0.0d。

4、字符型(char)的基本类型变量的默认为 “/u0000”。

5、布尔性的基本类型变量的默认值为 false。

6、引用类型的变量是默认值为 null。

7、数组引用类型的变量的默认值为 null。春关键数组变量的实例后,如果没有没有显示的为每个元素赋值,Java 就会把该数组的所有元素初始化为其相应类型的默认值。

局部变量初始化

局部变量声明以后,Java 虚拟机不会自动的为它初始化为默认值。因此对于局部变量,必须先经过显示的初始化,才能使用它。

如果编译器确认一个局部变量在使用之前可能没有被初始化,编译器将报错。

用几句话概括下初始化顺序规则(假设调用方式类似于上面代码,即使用 new 操作符 ):

  1. static 先于 non-static, non-static 先于 constructor。这里的 static 统指 static field 和 static initialization block 两种初始化方式,non-static 同上。
  2. static 初始化代码按照在源代码中定义的顺序从上往下以此执行,non-static 同上。
  3. 存在继承关系时,优先执行基类中的初始化语句

转载于:https://www.cnblogs.com/csxf/p/3489198.html

Java中变量、类初始化顺序相关推荐

  1. php中继承过来的类初始化顺序,java_图文详解Java中class的初始化顺序,class的装载 在讲class的初始化 - phpStudy...

    图文详解Java中class的初始化顺序 class的装载 在讲class的初始化之前,我们来讲解下class的装载顺序. 以下摘自<Thinking in Java 4> 由于Java ...

  2. java 静态变量与静态初始化块中变量的初始化顺序

    2019独角兽企业重金招聘Python工程师标准>>> package test;public class Test {//静态变量 aprivate static int a=b( ...

  3. java静态变量需要初始化吗_» Java静态变量初始化顺序浅谈

    Java 类初始化顺序在网上已经有很多文章了,这里不再谈那么多,仅仅谈下Java静态变量的初始化顺序,如果你是Java高手,并且自认为对这个顺序已经掌握到了炉火纯青的境界,请忽视这篇文章. 前天看了Y ...

  4. Java类初始化顺序(变量赋值与静态代码块的执行时间)

    前言:最近写代码的时候经常见到见到static代码块,不由对static的执行时间产生了兴趣,进而对类初始化顺序产生了兴趣. 类从编译到执行的过程: 在使用ClassLoader将字节码转换为JVM中 ...

  5. 1.c++中初始化列表和构造函数初始化的区别是什么?2.类的成员变量的初始化顺序是按照声明顺序吗?

    初始化列表和构造函数初始化的区别是什么? 初始化和赋值对内置类型的成员没有太大的区别,在成员初始化列表和构造函数体内进行,在性能和结果上都是一样的.只有一些需要注意的事项 初始化列表一般情况如下: D ...

  6. 【知识总结】Java类初始化顺序说明

    微信公众号:努力编程的小猪 如有问题或建议,请公众号留言 Java类初始化顺序说明 一个类中包含如下几类东西,他们前后是有顺序关系的 静态属性:static 开头定义的属性 静态方法块: static ...

  7. (转)java类初始化顺序 - jackyrong的世界 - 博客园

    (转)java类初始化顺序 我们大家都知道,对于静态变量.静态初始化块.变量.初始化块.构造器,它们的初始化顺序依次是(静态变量.静态初始化块)>(变量.初始化块)>构造器.我们也可以通过 ...

  8. java类初始化顺序_《To Be a Better Javaer》-- Java 基础篇 vol.2:面向对象

    Java是面向对象的高级编程语言,面向对象的特征如下: 面向对象具有抽象.封装.继承.多态等特性: 面向对象可以将复杂的业务逻辑简单化,增强代码复用性: 面向对象是一种常见的思想,比较符合人们的思考习 ...

  9. java类初始化顺序_Java 类的初始化顺序

    静态代码块:用staitc声明,jvm加载类时执行,仅执行一次 构造代码块:类中直接用{}定义,每一次创建对象时执行 执行顺序优先级:静态块,main(),构造块,构造方法 1. 构造函数 publi ...

  10. Java提高篇——静态代码块、构造代码块、构造函数以及Java类初始化顺序

    构造函数 public HelloA(){//构造函数} 关于构造函数,以下几点要注意: 1.对象一建立,就会调用与之相应的构造函数,也就是说,不建立对象,构造函数时不会运行的. 2.构造函数的作用是 ...

最新文章

  1. 全球首辆飞行摩托开卖!飞行高度可达4572米,243万元一辆,你敢开吗?
  2. Linux查看系统信息的一些命令及查看已安装软件包的命令(转)
  3. 坦克大战java_java版坦克大战游戏源码
  4. apache起步命令加-k参数和不加的区别
  5. 设计导航-超全智能的设计师导航网站
  6. 2022-2028全球二片罐行业调研及趋势分析报告
  7. 5款知名bug管理工具
  8. InetAddress.isReachable的超时设置
  9. Python编程语言好学吗 怎么能学好Python开发
  10. 用shell打印正三角形_用shell命令绘制三角形
  11. 王道计算机组成原理课代表 - 考研计算机 第七章 输入输出系统 究极精华总结笔记
  12. Ant design pro入坑指南
  13. C#XML序列化特性全中文教程
  14. 120年奥运历史数据分析
  15. 怎么把qlv格式转成mp4?附裁剪qlv视频尺寸技巧
  16. JS下载图片保存在本地
  17. 职场中如何与老板谈加薪
  18. 毫米波雷达,智能照明+人体存在感应
  19. 苹果cms图片外部储存使用教程
  20. IDEA连接数据库以及一些配置问题

热门文章

  1. 指尖检测的几种新方法
  2. 【java】【mybatis】在使用mybatis进行批量插入,批量更新等批量操作时,切割In集合List进行分批批量操作的java中的切割代码...
  3. 海尔智慧家庭食联网:为每1个家庭配备专属健康顾问
  4. pyV8不支持dom操作,关于PyV8的支持DOM的疑问
  5. 张涵20160401作业
  6. cocos2d-x 3.1.1 学习笔记[17] 关于这些活动功能
  7. 《信息系统项目管理师软考辅导——3年真题详解与全真模拟》主要创新点、关注点...
  8. Sencha touch Panel之间的跳转(如不使用TabPanel或者Carousel控件而产生跳转的动画效果)...
  9. think in java interview-高级开发人员面试宝典(二)
  10. ACCP学习旅程之-----使用C#开发数据库应用程序(第二章)