默认类型:
在java里整数默认是int类型,小数默认是double类型,单个字符默认是char类型,true、false自然默认的是boolean类型,字符串默认的是String类型。
变量和常量类型转换:
因为有默认类型,在需要使用其他类型的时候就需要进行类型转换,类型转换中小转大是自动转换,大转小则需要强制转换。例:int i=237196223;用short类型接受则需要用强制转换:short s=(int)237196223;。
变量名申请规则:
申请一个数据类型它在内存中的内存的地址是连续的;变量名存储在命名区域,它所指向的都是内存地址编号,也是一个数据值的代表标识,它就像一个标签代号,如果需要修改调用一个变量,就可以用它的标签名字去调用操作。
变量名的申请可以以下划线和字母开头,数字结尾;不可以以数字开头和特殊字符开头。开发人员就可以使用变量名来进行取值、存放、修改、调用等操作。
自动类型转换:
在java中小的数据类型是可以自动转换成大的类型,就像小的杯子里的水倒进大杯子里不用担心水的溢出。例如:byte b=127; short s=b; byte类型比short类型要小转换不丢失精度,所以是可以自动转换的。
强制类型转换:
大的数据类型需要转换成小的数据类型就需要通过强制转换了。因为大的杯子里的水要倒进小的杯子里水会溢出来,自然就会损失精度。例如:short s=(byte)128; 输出的结果就是-128,因为强制转换损失了精度。
强制类型转换是在二进制里进行截取的,例如int是32位,short是16位,int类型强制转换成short类型时截取后面的16位二进制码。
变量和常量的介绍:
常量只能赋值一次,常量的值是不可以再改变的,而且如果赋的值是一样的话,指向的都是同一片内存地址,赋的值不一样才去新开辟一个内存地址,常量需要用final关键字声明。变量则是在存储范围中可以任意改变的,能够多次赋值的称为变量。
变量的内存分配是活动的,申请一次分配一次,每次申请都是分配一个新的内存,并且内存地址是独立的。
数据类型在内存中有三个层,常量层、标识层、数据层;常量层里自然是用于存储常量里面的值是不可以再改变的,并且赋的值一样的话指向的就是同一个内存地址。标识层里则是变量名,变量名指向的是变量值的地址编号。数据层里都是可变动的数据变量,里面的值可以反复修改或赋值。
本文转自 ZeroOne01 51CTO博客,原文链接:http://blog.51cto.com/zero01/1955641,如需转载请自行联系原作者