1, 数据类型
取值范围
类型 |
存储要求 |
范围 |
float |
4byte |
有效小数位6-7位 |
double |
8byte |
有效小数位15位 |
int |
4byte |
-2147483648~2147483647 |
short |
2byte |
-32768~32767 |
long |
8byte |
范围2的64次方 |
byte |
1byte |
-128~127 |
(Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求
1)基本数据类型:byte、short、int、long、float、double、char、boolean
2)引用数据类型: 数组、类、接口。
级别从低到高为:byte,char,short(这三个平级)-->int-->float-->long-->double
自动类型转换:从低级别到高级别,系统自动转的;
强制类型转换:把一个高级别的数赋给一个别该数的级别低的变量。
Java中的字符型数据是16位的Unicode字符
1)、表达式
//补充:表达式的自动提升
//1、char byte short会自动转换为int类型进行计算
byte b1=10;
byte b2=23;
//b2=(byte)(b2+b1);//需要强转
b2+=b1;//推荐使用这种形式
//2、优先级低的数据类型与优先级高的数据类型进行计算会自动转换为优先级高的数据类型
int n1=12;
double d=12;
//n1=d+n1;//会出错,需要强转
//3、字符串与其他类型进行+运算 会自动转换为连接运算 结果会变成字符串类型
String str=d+"";
//1、整数类型之间的相互转换
//2、实数类型之间的相互转换
//小范围的赋给大范围的 可以直接赋值
//大范围的赋给小范围的 可能损失精度 需要强转(有可能出现数据的溢出)
int num1=129;
byte b1=2;
b1=(byte)num1;//强转
//short s1=3;
//s1=b1;
//2、实数类型之间的相互转换
//小范围的赋给大范围的 可以直接赋值
//大范围的赋给小范围的 可能损失精度 需要强转
float f1=12;
double d1=23;
f1=(float)d1;
//3、实数类型与整数类型之间转换
//整数类型赋给实数类型可以直接赋值
//实数类型赋给整数类型 可能损失精度 需要强转 小数部分会被截掉
double d2=12.23;
int num2=20;
num2=(int)d2;
//4、字符型与整数之间
//char类型可以直接赋值给int long
//char与short、byte 相互赋值需要强转 short需要强转成byte,而byte可以直接赋值给short
//整数类型赋值给char类型 需要强转
//ch=100; //注意 常量可以直接赋给char
//5、字符型与实数之间
//字符型可以直接赋值给实数类型
//实数类型赋值给字符类型 需要强转
char ch2='a';
double d3=98.23;
ch2=(char)d3;
//6、布尔类型与其他类型 不能和其他数据类型进行转换 不兼容
3) 基本数据类型注意事项:
int long=23423432545353L; //1.注意:若数值过大需加L或l表明是long类型
//2.小数字面常量默认是double类型
double d1=1.23D; //double类型可以加d或D 默认就是double
d1=2;
float f1=2.32f;//注意:float类型存小数时需要加f或F
数后加f或F为float,加d或D为double,没有后缀修饰的则缺省为double类型;
//3.字符型char 2个字节 默认\u0000
char c1='好';//一个字符(中文、字母、数字、符号)
c1=97; //可以赋一个数值(正整数) 而且不能超过char的取值范围
c1='\n'; //转义字符
c1='\u0008';
//4.布尔类型boolean 值:true false 默认值false --字节数没有提供
4) 转义字符表:
转义序列 |
名称 |
Unicode值 |
\b |
退格 |
\u0008 |
\t |
制表 |
\u0009 |
\n |
换行 |
\u000a |
\r |
回车 |
\u000d |
\” |
双引号 |
\u0022 |
\’ |
单引号 |
\u0027 |
\\ |
反斜杠 |
\u005c |