Java基础知识——6 运算符与类型转换

Java基础知识——6 运算符与类型转换,第1张

Java基础知识——6 运算符与类型转换

目录

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);    // 输出显示 54
6.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)左移一定的位数,数的正负会变(符号位可能变)

补充:移位符与赋值符结合

 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5686551.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存