一、数据类型
-
整数类型
1>byte 字节类型 1个字节8位、范围-2^7----2^7-1
2>short 短整型 2个字节16位、范围-2^15----2^15-1
3>int 整型 4个字节32位、范围-2^31----2^31-1
4>long 长整型 8个字节64位、范围-2^63----2^63-1
注意:
java中整数默认是int类型
将一个整数赋值给byte类型变量时,回去掉前面三个字节,只存储最后一个字节
将一个整数赋值给short类型变量时,回去掉前面俩个字节,只存储最后俩个字节
将一个整数赋值给long类型变量时,如果正数没有超出int范围时可以不需要带l或L,正数前面补4个字节0,负前面补4个字节1。如果超出int范围,后面数值必须要带上L或l,将右侧默认的int32位数值变成64位的数值。
-
浮点类型
float 单精度
4个字节,32位,一个符号位,23个尾数位,8个指数位
double 双精度 Java中默认浮点数为double类型
8个字节,64位,一个符号位,52个尾数位,11个指数位
右侧数值默认为double类型 使用float定义浮点时,后面必须带上f或F 整数时不需要。
-
字符类型
oa:97 A:65
char,java中用于存储单个字符。在计算机内内存中实际上存储上的是一个16位无符号位的整数
Unicode编码:科学家统计了世界上所有国家的语言文字还有符号还有括号等字符。让每个字符对应一个数字,在计算机中需要存储这些字符时,是指上存储的是该字符对应的数字,Unicode采用的是双字节的定长编码没有附属。数值范围为0-65535,能存储世界上绝大多数的字符。
java中char字符采用的就是Unicode双字节编码。
ASCII:编码单位为0-127,采用的是单字节编码
Unicode编码兼容ASCII码,
注意:
1>使用char定义一个字符时,该字符必须使用单引号引起来,而且只能定义单个字符
2>可以采用一个4位16进制的unicode编码来表示一个字符,必须写在单引号里面,以\u开头。
-
布尔类型
booleam用于表示真 假,只有俩个值turn和false。具体占用几个字节不明确。
数据的前缀和后缀
前缀:
4位16进制unicode编码来表示字符char c'\u4E00';
后缀:
L或l 使用long类型来定义一个整数数值时,如果右侧整数值超出int范围必须要带,没有超出可以不用带。
F或f 使用float来定义是一个浮点数时,必须要带
D或d 使用double来定义一个浮点数时,可以带可以不带。
数据类型转换:只能发生在整数、浮点数、字符类型之间,这三种类型不能与布尔类型转换
byte---short---int---long---float---double char
小类型转大类型
自动类型转化、隐式类型转换
byte b= 100;
int n=b;
大类型转小类型
强制类型转换、显示类型转换
int i=100;
byte j=(byte0)i;
大类型转小类型,如果数据超出小类型范围,会发生数据转换错误。
string字符串类型:
//string字符串类型 /* * 1.char类型 * 字符串类型,只能定义一个字符,使用单引号引起来 * 2.string * 字符串类型,可以同时定义一个或多个字符,使用双引号连接起来 */ char c1='张'; char c2='三'; System.out.println((int)c2); //实用String来定义一个字符串 String s1="张三丰"; String s2="A"; System.out.println(s1); System.out.println(s2); //不能将字符串类型转为整数类 //错误:System.out.println((int)s2); //字符串类型可以和其他任意数据类型之间使用+做连接,连接完后结果显示还是一个字符类型 int m=200; String s3="200"; String s4=m+s3; System.out.println("s4:"+s4); System.out.println("abc"+3+4); System.out.println(3+"abc"+4); System.out.println(3+4+"abc"); System.out.println('a'+3+"abc"); System.out.println("abc"+'a'+3);