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.模拟扔硬币的结果,统计正反两面的数量

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1 public classThrowCoinTest {2

3   public static voidmain(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指数计数法所能表示的最大和最小数字。

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1 public classShape {2

3 public static voidmain(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和==的区别

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1 public classEqualsMethod {2

3 public static voidmain(String[] args) {4 /**

5 * 1.String类下equals的方法:不同类型返回false,同为String类型,value相等返回true6 * 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 = newDog();15 Dog dog2 =dog1;16 Dog dog3 = newDog();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()显示

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1 public classBitOperator {2

3 public static voidmain(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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值