Java类型转换及运算符

目录

一,类型转换

(1)自动类型转换

①变量的自动类型转换

②表达式的自动类型转换

  (2)强制类型转换

二、 运算符

(1)“+”做连接符

  (2)"++""--"自增自减运算符

①++、--在变量前,先+1、-1再使用

②++、--在变量后,先使用再+1、-1

(3)赋值运算符

①基本赋值运算符   “=”

②拓展赋值运算符  “+=” “-=” “*=” “/=” “%=”

  (4)关系运算符

  (5)逻辑运算符

(6)三元运算符


一,类型转换

(1)自动类型转换

①变量的自动类型转换

规则:类型范围小的变量,可以直接赋值给类型范围大的变量。

byte→short→int→long→float→double

                char→int

byte a=6;
int b=a;        //发生了自动类型转换
System.out.println(b);    //输出结果为6

②表达式的自动类型转换

规则:1.在表达式中,小范围类型的变量会自动转换成当前较大范围的类型再运算;

           2.表达式的最终结果类型由表达式中的最高类型决定;

           3.在表达式中,byte,short,char是直接转换成int类型参与运算。

byte、short、char→int→float→double

byte a=10;
int b=20;
double c=1.0;
double rs=a+b+c;            //注意此处rs的类型为double,因为double>int
System.out.println(rs);        //输出结果为31.0
byte i=10;
byte j=20;
int k=i+j;    //此处需要特别注意k的类型为int而不是byte,因为在表达式中byte当int运算
System.out.println(k);        //输出的结果为30

(2)强制类型转换

规则:  数据类型   变量=(数据类型)变量数据;

存在的问题:

①类型范围大的数据或变量,不能直接赋值给类型范围小的变量,若强制类型转换可能会造成数据(丢失)溢出;

int i=1500;
byte j=(byte)i;
System.out.println(j);        //输出的结果为-36.结果错误

②浮点型强制转换成整型,直接丢掉小数部分,保留整数部分返回。

float a=3.6;
int b=(int)a;
System.out.println(b);     //输出的结果为3

③小技巧

int a=3;
int b=2;
System.out.println(a/b*1.0);    //输出的结果为1.0
System.out.println(a*1.0/b);    //输出的结果为1.5

二、 运算符

(1)“+”做连接符

与字符串做+运算时会被当做连接符,其结果还是字符串

原则:能算则算,不能算就在一起

int a=5;
System.out.println("abc"+'a');     //输出的结果是abca
System.out.println("abc"+a);      //输出的结果是abc5
System.out.println(5+a);        //输出的结果是10
System.out.println(a+'a');      //输出的结果是5a

(2)"++""--"自增自减运算符

①++、--在变量前,先+1、-1再使用

int i=6;
int j=++i;
System.out.println(i);      //输出的结果为7;
System.out.println(j);      //输出的结果为7

②++、--在变量后,先使用再+1、-1

int i=6;
int j=i++;
System.out.println(i);      //输出的结果是7
System.out.println(j);      //输出的结果是6

(3)赋值运算符

①基本赋值运算符   “=”

②拓展赋值运算符  “+=” “-=” “*=” “/=” “%=”

拓展赋值运算符自带强制类型转换的作用

int i=10;
int j=6;
i+=b;       //相当于a=(int)(a+b);

(4)关系运算符

是对数据进行条件判断的服啊后,最终会返回一个布尔值(true/false)

int a=10;
int b=10;
boomlean rs=a==b;        //定义一个布尔值变量rs
System.out.println(rs);     //输出的结果是true

(5)逻辑运算符

可以把多个条件的布尔值结果放在一起运算,最终得到一个布尔值

&     逻辑与

|      逻辑或

!      逻辑非

^     逻辑异或    如果两个条件都是false\true,则结果是false

                          如果不同,则结果是true

&&   短路与      左边为false,右边不执行

||      短路或      左边为true,右边不执行

另:&&与&结果一样,||与|结果一样

        &,|,无论左边为何值,右边都执行

(6)三元运算符

 条件表达式? 值1:值2;

先计算条件表达式的值,true→值1,false→值2

double score=18;
string rs=score>=60? "考试通过":"挂科";
System.out.println(rs);    //输出的结果是挂科

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值