JavaSE第二章、数据类型
数据类型
1.数据类型总述
(1)基本数据类型
数值型:整数类型(byte[1], short[2], int[4], long[8])
浮点(小数)类型(float[4], double[8])
字符型:单个字符‘a’(char[2])
布尔型:true、false(boolean[1])
(2)引用数据类型
类:class
接口:interface
数组:[ ]
2.整型
注意事项:
1.java的整数类型的范围和字段长度是固定的,不受OS影响,以保证可移植性。
2.Java的整型常量默认为int,声明long型常量后要加‘l'或’L‘。
3.bit是计算机中的最小存储单位。bytle是计算机中基本存储单元。1byte=8bit。
3.浮点类型
单精度float 4个字节 -3.403E38~3.403E38
双精度double 8个字节 -1.798E308~1.798E308
存放形式:浮点数=符号位+指数位+尾数位
尾数部分可能丢失,造成精度损失(所以说,小数都是近似值)。
注意事项:
1.java的浮点类型的范围和字段长度是固定的,不受OS影响。
2.Java的浮点常量默认为double,声明float型常量后要加‘f'或’F‘。
3.两种表示形式:十进制数形式 eg:3.14 314.0f .314
科学计数法形式 eg:3.14e2 [] 3.14E-2 []
4.⚠️当我们对运算结果是小数的进行相等判断时,不能直接比较。应该是以两个数的差的绝对值,在某个精度范围内判断。
double num1=2.7;
double num2=8.1/3; //2.6999999999999997
if(Math.abs(num1-num2)<0.000001) //✖️不能用num1==num2
{
System.out.println("equal");
}
api文档使用:包->类->方法
4.字符类型
public static void main(String[] args)
{
char c1='a'; //a
char c2='\t'; //
char c3='王'; //王
char c4=97; //a
}
注意事项:
1.java中,char的本质是一个整数,在输出时,是unicode码所对应的字符。
char c2='a';
System.out.println((int)c2); //97
char c3 ='b'+1;
System.out.println((int)c3); //99
System.out.println(c3); //99->对应的字符->编码表ASCII->c
2.字符型存储进计算机时,需要将字符对应的码值(整数)转换为二进制存储。
5.布尔类型
boolean类型适用于逻辑运算,一般用于程序流程控制:if、while、do-while、for
//一个例子:
boolean isPass=true;
if(isPass==true)
{
System.out.println("Congratulation!");
}else{
System.out.println("Keep on going!");
}
⚠️不可以用0或非0的整数代替false或true。
6.基本数据类型转换
(1)自动类型转换(低精度向高精度的转换)
char->int->long->float->double
byte->short->int->long->float->double
注意事项:
1.有多种类型的数据混合运算时,系统首先将所有数据转换成容量最大的那种数据类型,然后再进行计算。
2.(byte、short)和char之间不能相互自动转换。
3.byte、short、char之间可以计算,在计算时首先转换为int类型。(不管是他们三个的混合运算还是只出现了其中一种类型的运算。要尤其小心char的计算!)
byte b1=1;
byte b2=2;
short s1=2;
short s2=b1+s1; //错
byte b3=b1+b2; //错
int s2=b1+s1; //对
4.布尔类型不参与自动类型转换
5.自动提升原则:表达式结果的类型自动提升为 操作数中最大的类型
(2)强制类型转换(高精度向低精度)
可能造成精度降低或溢出,要格外注意。
int a=(int)1.9;
System.out.println("a="+a); //1,造成精度损失
int b=2000;
byte c=(byte)b;
system.out.println ("b="+b); //-48,造成数据溢出
注意事项:
1.强转符号只针对最近的操作数有效。
2.char类型可以保存int的常量值,但不能保存int的变量值,需要强转。
char c1=100; //ok
int a=100; //ok
char c2=a; //✖️错
char c3=(char)a; //ok
System.out.println(c3); //100对应的字符,d
3.byte和short类型在进行运算时,当作int类型处理。
7.基本数据类型和String类型的转换
基本数据类型转String
语法: 基本类型的值+""
int n1=100;
String s1=n1+"";
String类型转基本数据类型
语法:通过基本类型的包装类调用parseXX方法即可。
String s2="123";
int num1=Integer.parseInt(s2);
double num2=Double.parseDouble(s2);
float num3=Float.parseFloat(s2);
long num4=Long.parseLong(s2);
byte num5=Byte.parseByte(s2);
boolean b=Boolean.parseBoolean("true");
short num6=Short.parseShort(s2);
把字符串转成字符char:指取字符串的第n-1个字符
语法:字符串变量.charAt(n-1)
System.out.println(s2.charAt(0)); //1
注意事项:
要确保String类型能够转换成有效的数据。例如:可以将”123“转成一个整数,但不能把”hello“转成一个整数。
浙公网安备 33010602011771号