Java——类型转换+运算符

1 类型转换

1.1 自动类型转换

  • 类型范围小的变量,可以直接赋值给类型范围大的变量
  • 表达式中,小范围类型的变量会自动转换成当前较大范围的类型再运算
  • 表达式的最终结果类型由表达式中的最高类型决定
  • 表达式中,byte、short、char 是直接转换成int类型参与运算的

自动类型转换形式

//表达式的自动类型转换
byte a = 10;
int b = 20;
double c = 1.0;
double d = a+b+c;
System.out.println(d);//31.0

double v = a + b + 2.9//232.9;
System.out.println(v);

byte i = 10;
byte j = 20;
int k = i + j;//30
System.out.println(k);

1.2 强制类型转换

  • 强制类型转换可能会造成数据(丢失)溢出
  • 浮点型强转成整型,直接丢掉小数部分,保留整数部分返回
//强制转换
int a = 20;
byte b = (byte)a;
System.out.println(b);//20

int i =1500;
byte j =(byte)i;
System.out.println(j);//-36

double s = 99.8;
int t = (int) s;
System.out.println(t);//99

2 运算符

2.1 算术运算符

符号作用
+
-
*
/除 (两个整数相除结果仍是整数)
%取余
//基本算术运算符
int a=10;
int b=3;
System.out.println(a + b);
System.out.println(a - b);
System.out.println(a * b);
System.out.println(a / b); //3.3333 --> 3
System.out.println(a * 1.0/ b); //3.3333
System.out.println(3 * 1.0/ 2); //1.5
System.out.println(3 / 2 *1.0); //1.0

//拆分三位数
int d = 589;
int g = d % 10;
System.out.println(g); //9
int s = d / 10 % 10;
System.out.println(s); //8
int b = d /100;
System.out.println(b); //5

2.2 "+"作为连接符

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

int a = 5;
System.out.println("abc" + 'a');         //abca
System.out.println("abc" + a);           //abc5
System.out.println(5 + a);               //10
System.out.println("abc" + 5 + 'a');     //abc5a
System.out.println(15 + "abc" + 15);     //15abc15
System.out.println(a + 'a');             //5+97=102
System.out.println(a + "" + 'a');        //5a
System.out.println(a + 'a' + "hello");   //102hello
System.out.println("hello" + a + 'a');   //hello5a
System.out.println("hello" + (a + 'a')); //hello102

2.3 自增自减运算符

符号作用
++自增,变量自身的值加1
--自减,变量自身的值减1
  • ++-- 既可以放在变量的后面,也可以放在变量的前面
  • ++-- 只能操作变量,不能操作字面量
int a = 10;
int b = 10;
a++;
b--;
System.out.println(a); //11
System.out.println(b); //9

//表达式中非单独运算
//放在变量的前面,先对变量进行+1/-1,再拿变量的值进行运算
//放在变量的后面,先拿变量的值进行运算,再对变量的值进行+1/-1
int i = 10;
int j = ++i;
int k = i++;
System.out.println(i); //12
System.out.println(j); //11
System.out.println(k); //11

//拓展案例
int k = 3;
int p = 5;
int r = k++ + ++k - --p + p-- - k-- + ++p + 2;
//  r    3  +  5  -  4  +  4  -  5  +  4  + 2
//  k  3  4  5  4
//  p  5  4  3  4
System.out.println(k); //4
System.out.println(p); //4
System.out.println(r); //9

2.4 赋值运算符

符号作用
=右赋值给左
+=a += b >> a=(a的数据类型)(a+b)
-=a -= b >> a=(a的数据类型)(a-b)
*=a * = b >> a=(a的数据类型)(a*b)
/=a /= b >> a=(a的数据类型)(a/b)
%=a %= b >> a=(a的数据类型)(a%b)
  • 扩展的运算符隐含了强制类型转换

2.5 关系运算符

  • 对数据进行条件判断的符号,最终会返回一个比较的布尔结果(true,false)
符号说明
==是否相等,成立为true,不成立为false
!=是否不相等,成立为true,不成立为false
>大于,成立为true,不成立为false
>=大于等于,成立为true,不成立为false
<小于,成立为true,不成立为false
<=小于等于,成立为true,不成立为false

2.6 逻辑运算符

  • 可以把多个条件的布尔结果放在一起运算,最终返回一个布尔结果
符号说明
& 逻辑与必须都是true,结果才是true;只要有一个是false,结果一定是false
| 逻辑或只要有一个为true,结果就是true
! 逻辑非你真我假,你假我真 ; !true=false,!false=true
^ 逻辑异或如果两个条件都是false或者都是true则结果是false.两个条件不同结果是true.

2.7 三元运算符

  • 格式: 条件表达式 ? 值1 : 值2 ;
  • 执行流程: 首先计算关系表达式的值,如果值为true,返回值1;如果为false,返回值2
//从两个整数中找到最大值
int a= 10;
int b = 200;
int max = a>b ? a:b;
System.out.println(max);
//拓展
int i = 10;
int j = 30;
int k = 50;
//方法1:俩俩比较
int temp = i > j ? i : j;
int max = k > temp ? k : temp;
//方法2:  ()可以去掉
int max = i > j ? (i>k ? i:k):(j>k ? j:k);
System.out.println(max);

2.8 优先级

优先级运算符简介结合性
1[ ] . ()方法调用,属性获取从左向右
2! ~ ++ --一元运算符从右向左
3* / %乘、除、取模(余数)从左向右
4+ -加减法从左向右
5<< >> >>>左位移、右位移、无符号右移从左向右
6< <= > >= instanceof小于、小于等于、大于、大于等于,对象类型判断是否属于同类型从左向右
7== !=2个值是否相等,2个值是否不等于下面有详细的解释从左向右
8&按位与从左向右
9^按位异或从左向右
10|按位或从左向右
11&&短路与从左向右
12||短路或从左向右
13?:条件运算符从右向左
14= += -= *= /= %= &=混合赋值运算符从右向左

3 API介绍

API(Application Programming Interface),应用程序编程接口,可直接调用

键盘录入的开发步骤:

  • 导包:import Java.util.Scanner;
  • 抄写代码得到扫描器对象:Scanner sc = new Scanner(System.in)
  • 抄写代码等待接收用户输入的数据:sc.nextInt()、sc.next()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CMCJR

新手小白,如有不当,敬请指正!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值