> 文档中心 > Java——类型转换+运算符

Java——类型转换+运算符

文章目录

  • 1 类型转换
    • 1.1 自动类型转换
    • 1.2 强制类型转换
  • 2 运算符
    • 2.1 算术运算符
    • 2.2 "+"作为连接符
    • 2.3 自增自减运算符
    • 2.4 赋值运算符
    • 2.5 关系运算符
    • 2.6 逻辑运算符
    • 2.7 三元运算符
    • 2.8 优先级
  • 3 API介绍

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.0double v = a + b + 2.9//232.9;System.out.println(v);byte i = 10;byte j = 20;int k = i + j;//30System.out.println(k);

1.2 强制类型转换

  • 强制类型转换可能会造成数据(丢失)溢出
  • 浮点型强转成整型,直接丢掉小数部分,保留整数部分返回
//强制转换int a = 20;byte b = (byte)a;System.out.println(b);//20int i =1500;byte j =(byte)i;System.out.println(j);//-36double 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 --> 3System.out.println(a * 1.0/ b); //3.3333System.out.println(3 * 1.0/ 2); //1.5System.out.println(3 / 2 *1.0); //1.0//拆分三位数int d = 589;int g = d % 10;System.out.println(g); //9int s = d / 10 % 10;System.out.println(s); //8int b = d /100;System.out.println(b); //5

2.2 "+"作为连接符

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

int a = 5;System.out.println("abc" + 'a');  //abcaSystem.out.println("abc" + a);    //abc5System.out.println(5 + a); //10System.out.println("abc" + 5 + 'a');     //abc5aSystem.out.println(15 + "abc" + 15);     //15abc15System.out.println(a + 'a');      //5+97=102System.out.println(a + "" + 'a'); //5aSystem.out.println(a + 'a' + "hello");   //102helloSystem.out.println("hello" + a + 'a');   //hello5aSystem.out.println("hello" + (a + 'a')); //hello102

2.3 自增自减运算符

符号 作用
++ 自增,变量自身的值加1
-- 自减,变量自身的值减1
  • ++-- 既可以放在变量的后面,也可以放在变量的前面
  • ++-- 只能操作变量,不能操作字面量
int a = 10;int b = 10;a++;b--;System.out.println(a); //11System.out.println(b); //9//表达式中非单独运算//放在变量的前面,先对变量进行+1/-1,再拿变量的值进行运算//放在变量的后面,先拿变量的值进行运算,再对变量的值进行+1/-1int i = 10;int j = ++i;int k = i++;System.out.println(i); //12System.out.println(j); //11System.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  4System.out.println(k); //4System.out.println(p); //4System.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()