zoukankan      html  css  js  c++  java
  • JAVA操作符

    1.JAVA操作符优先级

      当一个表达式中出现多个操作符时,操作符的优先级决定了操作顺序。简单的规则就是:先乘除后加减,然后用括号明确规定计算顺序。

    2.+,-,*,/,% ,=,>,<,==为一类,不做过多解释

    3.逻辑运算符

    • &&,||,!;会生成一个布尔值。
    • 在使用逻辑运算符时,会遇到一种短路现象,即能够明确无误的确定整个表达式的值时,就不再计算表达式剩余的部分

    4.直接常量

      一般来说,在程序内使用了直接常量,编译器可以准确无误的知道生成什么类型,但有的时候确实磨棱两可的,这个时候需要对这些字符增加一些额外信息

      double:D结尾

      float:F结尾

      long:L结尾

      十六进制:0x开头+(0~9,a~f)

      八进制:0开头  

    5.指数计数法

      1.39e-43:1.39乘以10的负43次方

    6.按位操作符

      按位操作符操作基本数据类型中的bit,即二进制位。

      |(或):二进制码只要有一个为1,结果为1

      &(与):只要有一个为0,结果为0

      ^(异或):两个值不同,异或结果为1,两个值相同,异或结果为0

      ~(取反):1变0,0变1

    7.移位操作符(>>;<<)

      移位操作符只可用来处理整数类型。左移n位相当于乘以2的n次方,右移相当于除以2的n次方。

      a<<=10: a的值乘以2的10次方再赋值给a。

    8.三元操作符 

      boolean ? value1 : value2 ; boolean位true,表达式的值位value1,boolean为false,表达式的值为value2。

    9.字符串的+,和+=

      String a = "he"+"llo";//"hello"

      int b = 0;

      b+=10;//等价于b=b+10;

    练习题:

      1.模拟扔硬币的结果,统计正反两面的数量

     1 public class ThrowCoinTest {
     2 
     3   public static void main(String[] args) {
     4     int frontFace = 0;
     5     int oppositeFace = 0;
     6 
     7     for (int i = 0; i < 100; i++) {
     8       double d = Math.random();
     9       if (d >= 0.5) {
    10         frontFace++;
    11       }else{
    12         oppositeFace++;
    13       }
    14     }
    15     System.out.println("正面:" + frontFace + "次");
    16     System.out.println("反面:" + oppositeFace + "次");
    17   }
    18 }
    View Code

      2. 分别显示float和double指数计数法所能表示的最大和最小数字。

     1 public class Shape {
     2 
     3     public static void main(String[] args) {
     4         // TODO Auto-generated method stub
     5         double dMax = Double.MAX_VALUE;
     6         double dMin = Double.MIN_VALUE;
     7         long lMax = Long.MAX_VALUE;
     8         long lMin = Long.MIN_VALUE;
     9         
    10         System.out.println("double 最大值"+dMax);
    11         System.out.println("double 最小值"+dMin);
    12         System.out.println("long 最大值"+lMax);
    13         System.out.println("long 最小值"+lMin);
    14 
    15     }
    16 
    17 }
    View Code

       3.用代码展示equals和==的区别

     1 public class EqualsMethod {
     2 
     3     public static void main(String[] args) {
     4         /**
     5          * 1.String类下equals的方法:不同类型返回false,同为String类型,value相等返回true
     6          * 2.Object类下equals的方法:等价于==
     7          * */
     8         int v0 = 1;
     9         String v1 = "1";
    10         String v2 = new String("1");
    11         System.out.println(v1.equals(v2));
    12         System.out.println(v1.equals(v0));
    13         
    14         Dog dog1 = new Dog();
    15         Dog dog2 = dog1; 
    16         Dog dog3 = new Dog();
    17         dog1.setName("Tony");
    18         dog1.setAge(6);
    19         dog3.setName("Tony");
    20         dog3.setAge(6);
    21         
    22         System.out.println("equals:"+dog1.equals(dog2)+" and ==:"+ (dog1==dog2));
    23         System.out.println(dog3.equals(dog2));
    24     }
    25 
    26 }
    View Code

      4.编写一个具有两个常量的程序, 一个具有交替的二进制位1和0,其中,最低有效位为0, 另一个也有交替的二进制位,最低有效位为1, 以位操作符以所有可能的方式结合他们,然后用Integer.toBinaryString()显示

     1 public class BitOperator {
     2 
     3     public static void main(String[] args) {
     4         int a = 0xaa; //10101010
     5         int b = 0x55;//01010101
     6         
     7         System.out.println("a的值是: "+Integer.toBinaryString(a));
     8         System.out.println("b的值是: "+Integer.toBinaryString(b));
     9         System.out.println("a|b的值是:"+Integer.toBinaryString(a|b));//只要有一个为1,那么结果是1
    10         System.out.println("a&b的值是:"+Integer.toBinaryString(a&b));//只要有一个为0,那么结果是0
    11         System.out.println("a^b的值是:"+Integer.toBinaryString(a^b));//两个值不同,异或结果为1,两个值相同,异或结果为0
    12         System.out.println("~a的值是:"+Integer.toBinaryString(~a));//按位取反
    13         System.out.println("~b的值是:"+Integer.toBinaryString(~b));//
    14 
    15     }
    16 
    17 }
    View Code

                                                                                                                   2017-08-30

    岁月本长而忙者自促;天地本宽而卑者自隘;风花雪月本闲,而劳忧者自冗;天行健,君子以自强不息;地势坤,君子以厚德载物;宠辱不惊,闲看庭前花开花落;去留无意,漫随天外云卷云舒.不妄取,不妄予,不妄想,不妄求,与人方便,随遇而安
  • 相关阅读:
    IEEE 754 浮点数的表示方法
    .NET Core 3.0及以上的EFCore连接MySql
    一些常见错误/技巧/结论总结
    2-sat学习笔记
    动态DP学习笔记
    动态规划优化算法——wqs二分 and 折线优化
    扩展莫队小总结(二) (回滚莫队/二次离线莫队)
    CF1504X Codeforces Round #712
    CF1500D Tiles for Bathroom (递推+大讨论)
    CF1486X Codeforces Round #703
  • 原文地址:https://www.cnblogs.com/vvning/p/7453819.html
Copyright © 2011-2022 走看看