java变量深入了解

【 前言 】

       对于变量,我们再熟悉不过了,其实一直以来,变量也并不简单,我们很少系统地整理分类,更少研究变量对应的储存结构,这次就深入地了解一下变量,以及常量。

【 什么是变量,先从变量说起 】

       一、变量的简单定义:通俗来说,变量就是可以被改变的数据。在程序中声明变量的语法格式如下: 数据类型 变量名称 = 值  例如:int x = 1,数据类型定义这个变量是什么类型的(有整型,浮点型等),变量名称只是个别名,值就是对应的数据。

       二、变量的深入定义:由上面可知,变量就是一个可改变的数据,既然是数据,在计算机中肯定有对应的存储空间来存储这个数据。也就是说,变量其实就是内存中的一个存储空间,用来存储数据。那这么说,声明一个变量,也就是相当于变量空间的开辟,那么,变量的深入定义还对应上面简单定义哪些呢?

  1、声明一个变量 = 变量空间的开辟

  2、变量的数据类型 = 这个空间要存储什么数据?

  3、变量名称 = 这个空间叫什么名字?

  4、变量的值 = 这个空间的第一次数据是什么?

  那么,这些变量空间在哪里呢?其实这些变量空间对应计算机内存的堆栈,下面会详细讲解。

 【 按声明的位置来分类变量 】

     1、成员变量:声明在方法之外的变量,不过没有 static 修饰。可以不设值,因为有默认值(下面数据类型会有默认值)

     2、局部变量:声明在类的方法中的变量。必须对其初始化,否则编译不过

     3、类变量:声明在方法之外的变量,用 static 修饰

  

 【 按数据类型划分 】

   一、基本数据类型:

     byte:在内存中占8位(bit),即1个字节,取值范围-128~127,默认值0

     short:短整型,在内存中占16位,即2个字节,取值范围-32768~32717,默认值0

     int:整型,用于存储整数,在内在中占32位,即4个字节,取值范围-2147483648~2147483647,默认值0

     long:长整型,在内存中占64位,即8个字节-2^63~2^63-1,默认值0L

     float:浮点型,在内存中占32位,即4个字节,用于存储带小数点的数字(与double的区别在于float类型有效小数点只有6~7位),默认值0

     double:双精度浮点型,用于存储带有小数点的数字,在内存中占64位,即8个字节,默认值0

     char:字符型,用于存储单个字符,占16位,即2个字节,取值范围0~65535,默认值为空

     boolean:布尔类型,占1个字节,用于判断真或假(仅有两个值,即true、false),默认值false

【 注意 】:整型、实型(常量)、字符型数据可以混合运算。运算中,不同类型的数据先转化为同一类型,然后进行运算。                

  转换从低级到高级:byte、short、char—> int —> long—> float —> double。

具体转换类型有强制类型转换、自动类型转换如下:

(1)强制类型转换: 转换过程中可能导致溢出或损失精度       

(2)自动类型转换:必须满足转换前的数据类型的位数要低于转换后的数据类型,例如: short数据类型的位数为16位,就可以自动转换位数为32的int类型,同样float   数据类型的位数为32,可以自动转换为64位的double类型。       

(3)float和double区别:默认的浮点数都是double 只有在数组后边加上f才是 float的,float f=12.2f;这是定义一个float类型的数据 

       

二、引用数据类型: 

除了8种基本类型以外剩下的都是引用类型(类,接口,数组等,new 对象也是是引用类型),  String:一定要注意,string是引用类型,不是基本类型。    

    

猜你喜欢

转载自blog.csdn.net/weixin_43423484/article/details/123779571