目录
6.1不同数据类型之间的转换
6.1.1自动转换
6.1.2强制类型转换
6.2运算符
6.2.1赋值运算符
6.2.2算术运算符
6.2.3逻辑运算符
6.2.4关系运算符
6.2.5位运算符
6.1不同数据类型之间的转换
在Java程序书写过程中,常常需要将一种数据类型转换为另外一种数据类型。下图给出了数据类型间的合法转换,实箭头表示无信息丢失的转换,虚箭头表示可能有信息损失的转换
6.1.1自动转换自动转换,即上图实箭头,即无信息丢失的转换,主要是指小类型数遇见大类型数会自动转换为大类型数(即小见大,则变大)
如下面语句:
int a = 10 ; double b = a + 3.14 ; //正确,a自动转换为double型
若改下面的,则会报错:
double a = 3.14 ; int b = a + 10 ; //报错,无法执行
实质:与各类型所占内存空间有关,大类型所占空间大,可以囊括小类型数
注意:“最大的是字符串”,任何类型数见到字符串会转换为字符串,如下面语句:
String a = "5" ; int b = 4 ; a = a + b ; System.out.println(a); // 输出显示 546.1.2强制类型转换
语法:变量a = (小类型) 变量b;其中 变量a 为小类型数,变量b为大类型数
例如:
double a = 3.14 ; int b ; b = (int) a ; System.out.println(b); //输出显示 3
精度损失的原因:大类型数转换为小类型数时可能会因为内存开辟的空间不够而造成数据的损失
解决方法:少用
6.2运算符Java的运算符有许多种,这里主要介绍下面几种:赋值运算符,算术运算符,逻辑运算符,关系运算符,位运算符
6.2.1赋值运算符赋值运算符 即 “=”
语法:a = b ;
作用:将b的值赋给a,在运算过程中就包括了数据类型的自动转换
注意:与“ == ”区别
6.2.2算术运算符算术运算符 即包括“ + - * / % ++ -- ”
(1)+运算
语法 :a = b + c;
注意:a,b,c必须为同类型的数,或者满足数据类型的自动转换
变形:a += b; 等价于 a = a + b ;
其余的 - * / % 全都类似
(2)++运算
例如:
int a = 0 b = 0 ; int x = 0 y = 0 ; a = b++; // a=0,b=1 x = ++y; // x=1,y=1
解析:
前置:先进性自增运算,y值+1后再进行其他运算;
后置:先进性其他运算,后进行自增运算;
(3)特别的:b=b++ ;等价于 b=b,b=b+1;两句
问:下面代码输出多少?
int a = 0 ; for(int i = 0 ;i < 10 ; i++) a = a++; System.out.println(a);
答:输出0
6.2.3逻辑运算符Java中的逻辑运算符包括:&&(与) ||(或) !(非)同数学的逻辑运算相同,计算机运行时,比较后返回的是一个bool类型的值
6.2.4关系运算符关系运算符包括 < > == <=(小于等于) >=(大于等于) !=(不等于)可以类比数学中的进行理解学习
6.2.5位运算符处理整型类型时,可以直接对组成整型数值的各个位完成 *** 作。这意味着可以使用掩码 技术得到整数中的各个位。位运算符包括:
运算实质:以 & 为例:
将数值转化为二进制数,从低位到高位对齐排列,位数不够0来凑,按照&(与)的运算法则进行运算(相同取1,不同取0)得到一个二进制数,赋予变量,然后输出。其余几个都类似
注意:
(1)>>> 右移运算符,高位用0补,注意与 >> 的区别
(2)n进制数右移m位,变为原来的 n^(-m)倍
(3)左移一定的位数,数的正负会变(符号位可能变)
补充:移位符与赋值符结合
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)