码迷,mamicode.com
首页 > 编程语言 > 详细

JAVA 基础 操作符

时间:2015-02-15 12:00:35      阅读:226      评论:0      收藏:0      [点我收藏+]

标签:

JAVA操作符


赋值操作符

赋值操作符(=)表示:取右边的值(即右值),把它复制给左边(即左值)。

右值可以是任意的常量、变量或表达式(只要可以生成一个值)。

左值必须是一个明确的、已命名的变量。

public class Test {
    public static void main(String[] args) {
        int num = 10;
        System.out.println("num = " + num);
        num = 20;
        System.out.println("num = " + num);
    }
}

 

算术操作符

加号(+)减号(-)乘号(*)除号(/)取模(%)
与C/C++一样,JAVA也支持同时进行运算和赋值操作符的简化写法。

以下两种写法是等价的:

num = num + 20;    //num加20,然后赋值给num
num += 20;         //num加20,然后赋值给num

 

一元操作符

一元加号(+)一元减号(-)表示数值的正负。
int x = -10;    //把负数-10赋值给x
int y = +10;    //把正数10赋值给y,一般+省略
System.out.println("x = " + x);
System.out.println("y = " + y);

 

自增与自减操作符

自增操作符是++

自减操作符是--

例:++a 等价于 a = a+1;

自增和自减操作都可以分为前缀式和后缀式。

以自增为例,

int x = 1;
int y = 1;
System.out.println("x = " + ++x);    //前缀式
System.out.println("y = " + y++);    //后缀式

Output:

x = 2
y = 1

由此可见,前缀式是先递增,然后再代入表达式;而后缀式是先代入表达式,再对自身进行递增运算。

 

关系操作符

关系操作符生成的是一个 boolean 结果,它们计算的是操作数的值之间的关系。

如果关系是真的,关系表达式的结果为 true;反之,结果为 false

关系操作符包括小于(<)大于(>)小于或等于(<=)大于或等于(>=)等于(==)以及不等于(!=)


逻辑操作符

逻辑操作符包括与(&&)或(||)非(!),它们根据参数的逻辑关系,生成一个boolean值。


括号操作符

括号操作符(),可以提高括号中表达式的执行优先级。

int result1 = 1 + 2 + 3 * 4 - 5;
int result2 = (1 + 2 + 3) * 4 - 5;
System.out.println("1 + 2 + 3 * 4 - 5 = " + result1);
System.out.println("(1 + 2 + 3) * 4 - 5 = " + result2);

Output:

1 + 2 + 3 * 4 - 5 = 10
(1 + 2 + 3) * 4 - 5 = 19

 

位操作符

按位与(&)按位或(|)异或(^)取反(~)左移(<<)右移(>>)无符号右移(>>>)

 

三元操作符

三元操作符比较特殊,它有三个操作数。它的格式为:

(布尔表达式)? 值A : 值B

如果布尔表达式的值为true,则结果为值A;反之,结果为值B。

public static int GetMaxNum(int x, int y) {
    return (x >= y) ? x : y;
}

public static void main(String[] args) {
    int x = 5;
    int y = 20;
    System.out.println("The max of " + x + " and " + y + " is : " + GetMaxNum(x, y));
}

 

直接常量

一般说来,程序中使用了”直接常量“,编译器可以准确地知道要生成什么样的类型,但有时候却是模棱两可的。

直接常量后面的后缀字符可以标志它的类型。

若为大写(或小写)的 L ,表示 long 型。

若为大写(或小写)的 F ,表示 float 型。
若为大写(或小写)的 D ,表示 double 型。

十六进制数适用于所有整数数据类型,以前缀为 0x(或0X),后面跟随0~9大小写的a~f

八进制数由前缀0以及后续的0~7的数字来表示。

public class Test{
    public static void main(String args[]){
        long l = 123L;      // long型:后缀为大写或小写的L
        float f = 12.3f;    // float型:后缀为大写或小写的F
        double d = 54.345d; // double型:后缀为大写或小写的D
        
        int x = 0xffffffff; // 十六进制数:前缀为0x,后续用0~9,a~f的数字来表示
        char c = 017;       // 八进制数:前缀为0,后续用0~7的数字来表示
    }
};

 

不同于C/C++,在JAVA中没有sizeof操作符


 

操作符的优先级和结合性


以下表格按照优先级由高到低的顺序展示了JAVA操作符:

级别 优先级 结合性
1 [ ]  .  ( ) (函数呼叫) 从左到右
2 !~++--+(单操作数)–(单操作数)( ) (类型转化)new 从右到左
3 *  /  % 从左到右
4 +  - 从左到右
5 <<  >>  >>> 从左到右
6 <  <=  >  >=  instanceof 从左到右
7 ==  != 从左到右
8 & 从左到右
9 ^ 从左到右
10 | 从左到右
11 && 从左到右
12 || 从左到右
13 ? : 从右到左
14 =  +=  -=  *=  /=  %=    ^=  <<=  >>=  >>>= 从右到左



参考资料

《Thinking in Java》

JAVA 基础 操作符

标签:

原文地址:http://www.cnblogs.com/jingmoxukong/p/4015881.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!