一,变量的分类
1.基本数据类型
1.1数值型
整型int【4】 long【8】长整型 short【2】 短整型 double【8】 双浮点型小数 float【4】单浮点型小数
byte【1】 整数类型
1.2字符型
char【2】,boolean【1】布尔类型,只存放true和false
2.引用数据类型
类 接口 数组
二各种数据类型的区分
1.整型
java中整型默认为int型,占4个字节
2.浮点类型
java中浮点类型默认为double类型
浮点型的两种表示方法,十进制表示法:5.12,0.512(必须要有小数点)
假如要定义float类型,书写方法 :float i=3.15f或者后缀F
而double i=3.15f也是正确的,因为在java中会自动转化为大的类型,虽然3.15f是float类型的,但是double类型的容量是更大的,所以会优先转化为double类型
注意:java的小数输入陷阱:
2.7和8.1/3比较,其实8.1/3在java程序中输出是一个非常接近2.7的值,并不相等
所以我们一定不能使用2.7==8.1/3来判断,这样只会输出0
我们应该使用Math.abs(2.7-8.1/3)<0.00001来判断
3.字符型
在java程序中,因为有数据类型之间的自动转换功能
所以这个java程序中的字符类型的本质上就是整型
每个字符都有自己的编码——假如输出是字符型,就输出字符,转化为整型时,就输出相对应的编码。
三.java中的数据类型自动转换机制
1.机制本身的规律:将容量小的数据转化为容量的数据(自动)
想要将容量相对大的数据转化为容量相对小的数据(必须要强制转换)
注意:这里的强制转换是转换数据的类型,而不是变量的类型 double a=1;是成立的,转换的是1,而不是a。
2.常见的转换
char->int->long->float->double
byte->short->int->long->float->double
例子:int a ='c';
double d=80;
都是正确的,并且可以输出相对应的值。
四.多种类型混合
1.转化为表达式最大容量的数据类型,但是如果数据类型过小,在java程序会自动提升至默认的类型,就比如byte和short相加,会自动将结果升级到int类型,short和short相加,也会得到int
2.(byte,short)和char之间不会进行相互转化。
3.但是他们也可以相互计算,就是全部都转化成int类型,用他们所对应的程序码的值来进行计算
4.boolean类型的数是不会进行转化的。
五.强制转换类型
可能会导致数据被截断,造成流失。
强制转换只对离他最近的数有效。可以使用括号。
六.基本数据类型和string之间的转化
就是使用 数+“ ” 来是实现转化成字符串
而字符串转化成基本数据类型要用到包装类
str5="123"
byte num5=Byte.parseByte(str5)
字符串类型String,注意,第一个字母大写,字符串是双标点,字符是单标点
七.java强转类型常考
byte是8位的,最大值是256,
int是32位的,
257表示成二进制的时候,是
100000001,
如果int的强制类型转换成byte型,则要取低8位,也就是要把,其余的位丢掉。
所以,257强制类型转换成byte的时候,只能留下00000001,也就是1 了
byte的范围是-128到127
1.假如你输入的值在这个范围内,都可以正常的读入。
2.假如你大于了127,那么就将你的值模上一个256,假如你是150,则变成了-106,被截断了
3.假如你大于了256,那么你就只要模上一个256就行了,输出一个正值。