1.
If operators with the same precedence are next to each other, there
associativity determines the order of evaluation. All binary operators except assignment operators are
left-associative.
Assignment operators are
right-associative. Therefore, the expression
a = b += c = 5 equivalent a = (b += (c = 5))
If no operands hava side effects that change the value of a variable, the order of operand evaluation is irrelevant. Interesting cases arise when operands do hava a side effect. For example,
public class TestDemo {
public static void main(String arg[]) {
int a = 0;
int x = ++a + a;
System.out.println(x);
a = 0;
x = a + (++a);
System.out.println(x);
}
}
The output will be:
2
1
The order for evaluation operands takes precedence over the operator precedence rule. In the former case, (++a) has higher precedence than addition (+), but since a is a left-hand operand of the addition (+), it is evaluated before any part of its right-hand operand (e.g., ++a in this case).
2.
Converting Strings to Numbers:
int intValue = Integer.parseInt(intString);
double doubleValue = Double.parseDouble(doubleString);
parseInt
public static int parseInt(String s)
throws NumberFormatException
- Parses the string argument as a signed decimal integer. The characters in the string must all be decimal digits, except that the first character may be an ASCII minus sign
'-'
('\u002D'
) to indicate a negative value. The resulting integer value is returned, exactly as if the argument and the radix 10 were given as arguments to the parseInt(java.lang.String, int)
method.
-
- Parameters:
s
- a String
containing the int
representation to be parsed
- Returns:
- the integer value represented by the argument in decimal.
- Throws:
NumberFormatException
- if the string does not contain a parsable integer.
3.
Format to keep two digits after the decimal point:
double doubleValue = (int)(doubleValue2 * 100) / 100.0
4.
Computing ab:
public static double pow(double a, double b)