Precedence of Operators

Source: Internet
Author: User
Tags bitwise

Write code often do not know which operator priority is higher, I add a parenthesis, long time to think this way is not good, so still carefully summed up, strive to do a rigorous program.

The following are from high to low:

Priority Level type of Operation Relevance of operator
19 圆括号 N/A ( … )
18 成员访问 From left to right … . …
需计算的成员访问 From left to right … [ … ]
new(with parameter list) N/A new … ( … )
17 Function call From left to right … ( … )
New (no parameter list) From right to left new …
16 Post increment (operator behind) N/A … ++
Post decrement (operator behind) N/A … --
15 Logical Non- From right to left ! …
Bitwise non- From right to left ~ …
One-dollar addition From right to left + …
One-dollar subtraction From right to left - …
Forward increment From right to left ++ …
Forward Decrement From right to left -- …
typeof From right to left typeof …
void From right to left void …
Delete From right to left delete …
14 Multiplication From left to right … * …
Division From left to right … / …
Take the mold From left to right … % …
13 Addition From left to right … + …
Subtraction From left to right … - …
12 Bitwise LEFT Shift From left to right … << …
Bitwise RIGHT SHIFT From left to right … >> …
Unsigned Right Shift From left to right … >>> …
11 Less than From left to right … < …
Less than or equal From left to right … <= …
Greater than From left to right … > …
Greater than or equal From left to right … >= …
Inch From left to right … in …
instanceof From left to right … instanceof …
10 Equals From left to right … == …
Non-equal sign From left to right … != …
Full equals From left to right … === …
Non-full equals From left to right … !== …
9 Bitwise-AND From left to right … & …
8 Bitwise XOR OR From left to right … ^ …
7 Bitwise OR From left to right … | …
6 Logic and From left to right … && …
5 Logical OR From left to right … || …
4 Conditional operators From right to left … ? … : …
3 Assign value From right to left … = …
… += …
… -= …
… *= …
… /= …
… %= …
… <<= …
… >>= …
… >>>= …
… &= …
… ^= …
… |= …
2 Yield From right to left yield …
yield* From right to left Yield* ...
1 Spread N/A ......
0 Comma From left to right … , …

Here are a few chestnuts:

New Foo.getname ();  According to the 18th one inside is actually new (Foo.getname ())
New Foo (). GetName ();
According to the 18th one is actually (new Foo ()). GetName () The member access is the highest priority here, so first the. GetName is executed.

However, when the left-hand value is taken, new Foo () can be understood as two operations: New with parameters (that is, new Foo ()) and function calls (that is, Foo () before the value is new).
The new parameter has a higher precedence than the function call, so the new Foo () is executed first, or the instance object of the Foo class is given, and then the member is accessed. GetName.
New New Foo (). GetName ();//According to the 18th one is actually new ((New Foo ()). GetName ())

  

Precedence of Operators

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.