java的一些问题
1. 判断是否是奇数:
public static boolean isOdd(int i) { return i %2 != 0 ; }
2. System.out.println(2.0 - 1.1); 输出:0.89999999 99999999 (Double型的)
System.out.println(new BigDecimal("2.00").subtract(new BigDecimal("1.10"))); --输出 0.90 要加上引号,否则会有小数。
System.out.println(new BigDecimal("2.01").subtract(new BigDecimal("1.65"))); -- 输出 0.36
System.out.println(new BigDecimal(2.0).subtract(new BigDecimal(1.1))); -- 输出 0.899 99999999 99999111 82158029 98747676 61094665 52734375
System.out.printf("%.2f\n", 2.0-1.115); --输出:0.89
final long MICROS_PER_DAY = 24 * 60 * 60 * 1000 * 1000;
final long MILLIS_PER_DAY = 24 * 60 * 60 * 1000;
System.out.println(24 * 60 * 60 * 1000 * 1000); --- 输出: 500654080 , 当做了int型,导致越界。
System.out.println(24 * 60 * 60 * 1000 ); --- 输出: 86400000
System.out.println(MICROS_PER_DAY/MILLIS_PER_DAY); --- 输出 :5
对于长整型的计算,要加上L: System.out.println(24L * 60 * 60 * 1000 * 1000); --- 输出: 86400000 000
System.out.println("H" + "a"); 输出: Ha
System.out.println("H" + 'a'); Ha
System.out.println('H' + 'a'); 169
char[] numbers = {'1','2','3'};
System.out.println("a" + numbers); 输出:a[C@c3c749
Prints a String and then terminate the line. This method behaves as though it invokes
and then print(String)
.println()
System.out.println(numbers); 输出:123
Prints an array of characters and then terminate the line. This method behaves as though it invokes
and then print(char[])
.println()
\u0022 是双引号的unicode编码。
System.out.println("a\u0022 + \u0022b ".length()); 相当于: System.out.println("a" + "b ".length()); , 输出 a2 。(b后面有一个空格)
System.out.println(Test.class.getName().replace(".","/")); 输出: com/Test
Replaces each substring of this string that matches the literal target sequence with the specified literal replacement sequence. The replacement proceeds from the beginning of the string to the end, for example, replacing "aa" with "b" in the string "aaa" will result in "ba" rather than "ab".
System.out.println(Test.class.getName().replaceAll(".","/")); 输出:////////
System.out.println(Test.class.getName().replaceAll("\\.","/")); 输出:com/Test
Replaces each substring of this string that matches the given regular expression with the given replacement.
An invocation of this method of the form str.replaceAll(regex, repl) yields exactly the same result as the expression
java.util.regex.Pattern
.compile
(regex).matcher
(str).replaceAll
(repl)
StringBuffer word = null;
word = new StringBuffer('P');
‘P’ 当做了int数。
Constructs a string buffer with no characters in it and the specified initial capacity.
- Parameters:
- capacity the initial capacity.
System.out.println(word); 输出换行
System.out.println(word.append("a")); 输出 a
int j = 0;
for(int i = 0; i < 100; i++){
j = j++;
System.out.println(j);
}
输出100 行 0 (j的值总是 0):
0
0
……
final int END=Integer.MAX_VALUE; //2147483647
final int START = END - 100;
int count = 0;
for(int i = START; i <= END; i++){
count++;
System.out.println(i); -- 死循环。 当 i 达到 2147483647 ,再增加会变成负数。
}