-->Java数据类型
-->java基本数据类型
第一种:boolean
//boolean只有两个取值:true和false,默认值为false
boolean b1 = true; //true为布尔型直接量
boolean b2 = false; //false为布尔型直接量
boolean b3 = 250; //编译错误,数据类型不匹配
第二种:byte
//byte数据类型是8位、有符号,最小值-128,最大值127,默认值为0
byte b1 = 5;
byte b2 = 6;
byte b3 = 128; //报错,赋值过大
第三种:short
//short数据类型是16位、有符号,最小值是-32768,最大值是32767,默认值是0
short s = 18;
第四种:int
//int数据类型是32位、有符号,默认值为0
//最小值是-2,147,483,648;最大值是2,147,483,647
int a=250; //250为整型直接量,默认为int型
int b=10000000000; //编译错误,100亿默认为int型,但超范围了
int c=5.6; //编译错误,数据类型不匹配
//整数相除,结果还是整数,小数位无条件舍弃
System.out.println(5/2); //2,小数位舍弃了
System.out.println(2/5); //0,小数位舍弃了
System.out.println(5.0/2); //2.5
int d=2147483647;
d=d+1;
System.out.println(d); //溢出了,是需要避免的
第五种:long
//long数据类型是64位、有符号,默认值为0L;
//最小值是-9,223,372,036,854,775,808
//最大值是9,223,372,036,854,775,807
long a=250L; //250L为长整型直接量
long b=10000000000; //编译错误,100亿默认为int型,但超范围了
long c=10000000000L; //100亿L为long型
//运算时有可能溢出建议第一个数字后加L,而且尽量不要写l(和数字1区分)
long d=1000000000*2*10L;
System.out.println(d); //200亿
long e=1000000000*3*10L;
System.out.println(e); //肯定不是300亿
long f=1000000000L*3*10;
System.out.println(f); //300亿
//获取自1970.1.1零时到此时此刻的毫秒数
long g=System.currentTimeMillis();
System.out.println(g);
第六种:float
//float数据类型是单精度、32位,默认值为0.0F;
float b=3.14F; //3.14F为float的直接量
第七种:double
//double数据类型是双精度、64位,默认值是0.0d;
//double类型同样不能表示精确的值,如货币;
double a=3.14159; //3.14159为浮点型直接量,默认为double型
//double运算时会有舍入误差,所以精确运算场不能用
double c=6.0;
double d=4.9;
System.out.println(c-d); //1.0999999999996,舍入误差
第八种:char
//char类型是一个单一的16位Unicode字符,可以储存任何字符
//char:字符型。2个字节 必须放在单引号中,有且仅有一个
char c1 = '女';
char c2 = 'f';
char c3 = '8';
char c4 = ' ';
char c5 = 你; //编译错误,必须放在单引号中
char c6 = '你好'; //编译错误,必须一个字符
char c7 = ''; //编译错误,必须有一个字符
char c8 = 97; //数字必须在0到65535之间
System.out.prinln(c8); //a
System.out.println(2+2); //4
System.out.println('2'+'2'); //100,'2'的码50,加上'2'的码50
char c9 = '\'';
System.out.println(c9); //'
数据类型的转换
int a = 5;
long b = a; //自动类型转换
int c = (int)b; //强制类型转换
long d = 6; //自动类型的转换
double e = 6; //自动类型的转换
System.out.println(e);
long f = 10000000000L;
int g = (int)f;
System.out.println(g); //强转有可能会溢出
double h = 65.985;
int i = (int)h;
System.out.println(i); //强转有可能会精度丢失
byte b1 = 5;
byte b2 = 6;
byte b3 = (byte)(b1 + b2); //int转byte
System.out.println(b3);