基本数据类型细节【java】

整形细节

1.java个整数类型有固定的范围和字段长度,不受具体OS【操作系统】的影响,以保证java程序的移植性

基本数据类型细节【java】_第1张图片

2.java的整型常量默认为int型,声明long型常量须在后面加'l'或者'L'

int n1 = 1;//4个字节
//int n2 = 1L;//不对
long n3 = 1L; //对

3.Java程序中变量常声明为int型,除非不足以表示大数,才使用long

4.bit:计算机的最小存储单位。byte:计算机中基本存储单元,1byte=8bit。

浮点字节

1.java的浮点型常量默认为double型,声明float型常量,需加上’F‘或者’f‘

2.浮点型常量有两种形式:

        1.十进制数形式:如:5.12 512.0f .512(如果是像0.512零开头,可以省略零)

        2.科学计数法形式:如:5.12e2 5.12E-2

//十进制数形式:如:5.12   512.0f  .512(必须有小数点)
double num5 = .512; //等价于0.512

3.数值2.7与8.1/3比较

//8.1/3会无限接近2.7,可以通过Math中abs来解决
double num1 = 2.7;
double num2 = 8.1 / 3;
if(Math.abs(num1-num2)<0.000001){
    System.out.println("相等");
}
System.out.println(Math.abs(num1 - num2));

4.通常情况下,应该使用double型,因为它比float更精准。

double num9 = 2.1234567851;
float num9 = 2.1234567851f;

字符细节

1.用单引号'

2.允许使用转义符,如:char c = '\n',\转义与n组成字符

3.char本质是整数

自动类型转换注意和细节

1.有多种类型的数据混合运算时,系统首先自动将所有数据据转换成容量最大的那种数据类型,然后在进行计算。

2.当我们把精度(容量)大的数据类型赋值给精度(容量)小的数据类型时,就会报错,反之就会进行自动类型转换

3.(byte、short)和char之间不能互相自动转换。

 //当把具体数据给byte时,(1)先判断该数是否在byte范围内,如果是就可以
 byte b1 = 10; //对,-128 - 127
 short b = 10;
// int n2 = 1; //n2 是int
// byte b2 = n2; //错误,原因:如果是变量赋值,判断类型

// char c1 = b1; //错误,原因:byte不能转换成char
 char c1 = b;  //错误,原因:short不能转换成char

4.byte,short,char他们三者之间可以计算,但在计算时首先转化为int类型

byte b2 = 2;
byte b3 =1;
short s1 = 1;
short s2 = b2 + s1; //错,b2+s1 => int
byte b4 = b2 + b3;  //错,只要出现上面三个首先转换为int

5.boolean不能参与转换

6.自动提升原则:表达式结果的类型自动提升为操作数中最大的类型

基本数据类型细节【java】_第2张图片

强转类型转换

1.当进行数据的大小从大到小,就需要使用到强制转换

2.强转符号只针对于最近的操作数有效,往往会使用小括号提升优先级

//int x = (int)10*3.5+6*1.5;//编译错误:double->int
int y = (int)(10*3.5+6*1.5);
System.out.println(y);

3.char类型可以保存int的常量值,但不能保存int的变量值,需要强转

char c1 = 100;
int m = 100;
char c2 = m ;//错,char类型不能保存int的变量值
System.out.println(c2);

4.byte和short类型在进行运算时,当做int类型处理

byte b2 = 2;
byte b3 =1;
short s1 = 1;
short s2 = b2 + s1; //错,b2+s1 => int
byte b4 = b2 + b3;  //错,只要出现上面三个首先转换为int

你可能感兴趣的:(java,java,开发语言)