java运算符(含数据隐式转换)
文章内容发布于 4 天前;最后修改于 4 日前。其中的信息可能发生变化或产生更改,敬请留意。

运算符

  1. 运算符和表达式:

    1. 运算符:对字面量或者变量进行操作的符号

    2. 表达式:将字面量或者变量连接起来,并符合java语法的式子。

    3. 举例说明:

      int a = 10;
      int b = 20;
      int c = a + b;

      其中,+是运算符,并且是算数运算符;a + b 是表达式,由于+是算数运算符,所以这个表达式也称之为算数表达式。

  2. 算数运算符:

    符号 作用
    +
    -
    *
    /
    % 取模(取余数)

    说明:

    1. 整数参与计算,结果只能的到整数。如果需要小数结果,需要表达式中出现小数

       public class demo {
           public static void main(String[] args){
               System.out.println(10 / 3);
               System.out.println(10.0 / 3);
               System.out.println(10 % 3);
               System.out.println(10.0 % 3);
           }
       }

      运行结果

      
       3
       3.3333333333333335
       1
       1.0
    1. 如果运算中出现小数,则有可能出现结果不精确。

      public class demo {
        public static void main(String[] args){
            System.out.println(3.1 + 2.12);
            System.out.println(1.1 + 1.1);
        }
      }

      运行结果

      5.220000000000001
      2.2
    2. 类型转换:java中存在两种数字转换

      1. 隐式转换(类型自动提升):取值范围小的自动提升为取值范围为大的

        • 由程序自动完成
          1. 取值范围小的和取值范围大的运算,先将取值范围小的的数据类型提升,后进行运算
          2. byteshortchar类型在运算时,都会先直接提升为int,再进行运算。
        • 存储范围大小关系:double > float > long > int > short > byte
      2. 强制转换:取值范围大的强制转换为取值范围为小的

        • 格式:<目标数据类型> <变量名> = (<目标数据类型>) <被强制转换的数据>

        • 强制转换有可能会导致数据发生错误

        public class demo {
           public static void main(String[] args){
               int a = 300;
               byte b = (byte)a;
               System.out.println(b);
           }
        }

        运行结果

        44
    3. +运算符的三种情况

      1. 数字相加:作为算术运算符,与数学中的加法同理;

      2. 字符串相加:当+操作中出现字符串时,则进行拼接字符串,并产生一个新的字符串。(需要注意的是,只要出现字符串后,就会进行拼接字符串。简单来说,只要在+中出现了字符串,则这个+以后的都会执行拼接字符串操作。)

        public class demo {
         public static void main(String[] args){
             int a = 123;
             String b = "456";
             System.out.println(a + b);
         }
        }

        运行结果

        123456

        如果出现连续的+,则从左到右逐个执行,并逐个执行以上两条规则

        public class demo {
         public static void main(String[] args){
             int a = 123;
             int b = 234;
             String c = "345";
             int d = 456;
             int e = 567;
             System.out.println(a + b + c + d + e);
         }
        }

        运行结果

        357345456567

        说明:由于变量 a 和变量 b 都是 int 类型的变量,所以第一个 + 是算数运算符,会计算a和b的和。而遇到变量c这个字符串类型的变量后,就开始拼接字符串。由于a+b+c已经是字符串了,所以后面的d和e会被视作与字符串拼接,所以最后的运行结果是357345456567

      3. 字符相加:当字符类型,即char类型与char或者其他数字类型进行相加时,会把字符通过ascii码表查找对应的数字再进行计算。

        public class demo {
         public static void main(String[] args){
             char a = 'a';
             System.out.println(a + 1);
             System.out.println(a + "bc");
         }
        }

        运行结果

        98
        abc
  3. 自增自减运算符

    符号 作用 说明
    ++ 自增 变量的值加1
    -- 自减 变量的值减1

    说明:

    1. 自增和自减(++--)既可以放在变量的前面,也可以放在变量的后面。放在变量前面是先自增,再执行这一行的其他操作。放在变量后面是先执行这一行的其他操作,再自增。

      • 前置自增自减:先自增,再执行这一行的其他操作。

        public class demo {
          public static void main(String[] args){
              int number = 10;
              System.out.println(++number);
          }
        }

        运行结果:

        11
      • 后置自增自减:先执行这一行的其他操作,再自增。

        public class demo {
          public static void main(String[] args){
              int number = 10;
              System.out.println(number++);
          }
        }

        运行结果:

        10
  4. 赋值运算符

    符号 作用 说明
    = 赋值 将某个值赋值给变量
    += 加后赋值 表达式a += b等价于a = a + b
    -= 减后赋值 表达式a -= b等价于a = a - b
    *= 加后赋值 表达式a *= b等价于a = a * b
    /= 除后赋值 表达式a /= b等价于a = a / b
    %= 取模后赋值 表达式a %= b等价于a = a % b

    说明:

    1. +=-=*=/=%=隐藏有强制类型转换(仅适用于byteshortchar数据类型):

      public class demo {
         public static void main(String[] args){
             short number = 1;
             number += 1;
         }
      }

      实际等价于

      public class demo {
         public static void main(String[] args){
             short number = 1;
             number = (short)(number + 1);
         }
      }

      原因:因为byteshortchar类型在运算时,都会先直接提升为int,再进行运算。而java中使用复合赋值运算符进行的+=-=*=/=%=,会先升级为int类型,再在执行完毕后强制转换为byteshortchar的原有数据类型。

  5. 关系运算符(比较运算符)

    符号 说明
    == 判断是否相等
    != 判断是否不相等
    > 判断左侧是否大于右侧
    >= 判断左侧是否大于或等于右侧
    < 判断左侧是否小于右侧
    <= 判断左侧是否小于或等于右侧

    关系运算符(比较运算符)的返回结果为boolean类型:如果关系成立,则返回true,不成立返回flase。

  6. 逻辑运算符

    符号 作用 说明
    & 逻辑与(且)and 并且,如果表达式两侧都为真,结果为真
    | 逻辑或 or 或者,如果表达式两侧都为假,结果为假
    ^ 逻辑异或 如果表达式两侧相同为false,不同为true
    ! 逻辑非 取反
    && 短路与 结果与 & 相同,具有短路效果
    || 短路或 结果与 | 相同,具有短路效果
    1. 逻辑与 and

      public class demo {
         public static void main(String[] args){
             System.out.println(true & true);
             System.out.println(false & true);
             System.out.println(false & false);
         }
      }

      运行结果

      true
      false
      false

      说明:逻辑与需要表达式两侧同时为真,最后结果才能为真。若有一侧为假,则整体为假。

      提示:在java中逻辑与不可以使用and代替,必须使用&

    2. 逻辑或 or

      public class demo {
         public static void main(String[] args){
             System.out.println(true | true);
             System.out.println(false | true);
             System.out.println(false | false);
         }
      }

      运行结果

      true
      true
      false

      说明:逻辑或需要表达式两侧同时为假,最后结果才能为假。若有一侧为真,则整体为真。

      提示:在java中逻辑与不可以使用or代替,必须使用|

    3. 逻辑异或

      public class demo {
         public static void main(String[] args){
             System.out.println(true ^ true);
             System.out.println(false ^ true);
             System.out.println(false ^ false);
         }
      }

      运行结果

      false
      true
      false

      说明:逻辑异或需要表达式不同,最后结果才能为真。若表达式两侧相同,结果为假,反之为真。

    4. 逻辑非

      public class demo {
         public static void main(String[] args){
             System.out.println(!true);
             System.out.println(!false);
         }
      }

      运行结果

      false
      true
    5. 短路逻辑运算符:如果前序表达式已经能确定整个运算结果,就不会再计算后续表达式。

      public class demo {
         public static void main(String[] args){
             System.out.println(false && true);
             System.out.println(true || false);
         }
      }

      运行结果

      false
      true

      说明:

      1. System.out.println(false && true);:短路与的逻辑与逻辑与相同,即需要表达式两侧同时为真,最后结果才能为真。但是在该行代码中,由于前序表达式已经是假(flase),则不会再次判断后续的表达式是否符合规则。
      2. System.out.println(true || false);:短路或的逻辑与逻辑或相同,即需要表达式两侧同时为假,最后结果才能为假。但是在该行代码中,由于前序表达式已经是真(true),则不会再次判断后续的表达式是否符合规则。
      3. 短路逻辑运算符提高了程序运行效率。
  7. 三元运算符

    格式:<关系表达式> ? 表达式1: 表达式2;

    运行说明:先运行前序关系表达式,如果关系表达式的结果为true,则运行表达式1;如果关系表达式的结果为假,则运行表达式2。

    提示:三元运算符不可以单独使用,必须被使用。即不可以在代码中单独出现一行三元表达式,而是将三元运算符的结果赋值给某个数。(或者其他用途也可以)

    public class demo {
       public static void main(String[] args){
           int a = 10;
           int b = 20;
           System.out.println(a > b ? a : b);
       }
    }

    在这里,三元表达式的关系表达式是a > b,即如果结果为真,则返回a,反之为b。

文章「java运算符(含数据隐式转换)」,由本站用户「Admin」发布。文章仅代表Admin观点,不代表本站立场。
页面网页地址「https://xiaozhiyuqwq.top/p/2737」。
如您对文章及其附件提出版权主张,或进行引用转载等,请查看我们的【版权声明】
本页面暂时没有评论......

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇