Java Puzzlers

阅读更多
package com.xjh.study;

public class IsOdd {
	// 判断  i 是否为奇数  (对于负数不生效)
	public static boolean isOdd(int i) {
		return i % 2 == 1;
	}
	// 判断 i 是否为奇数
	public static boolean isOdd2(int i) {
		return i % 2 != 0;
	}	

}



package com.xjh.study;

import javax.sound.midi.SysexMessage;

import junit.framework.TestCase;

import org.junit.Test;

public class IsOddTest extends TestCase {
	
	public void testIsOdd() {
		int a = 0;
		assertEquals(false, IsOdd.isOdd(a));
		int b = 1;
		assertEquals(true, IsOdd.isOdd(b));
		int c = 2;
		assertEquals(false, IsOdd.isOdd(c));
		int d = 3;
		assertEquals(true, IsOdd.isOdd(d));
//		int e = -1;
//		assertEquals(true, IsOdd.isOdd(e));
		int f = -2;
		assertEquals(false, IsOdd.isOdd(f));
//		int j = -3;
//		assertEquals(true, IsOdd.isOdd(j));
	}
	
	@Test
	public void testIsOdd2() {
		int a = 0;
		assertEquals(false, IsOdd.isOdd2(a));
		int b = 1;
		assertEquals(true, IsOdd.isOdd2(b));
		int c = 2;
		assertEquals(false, IsOdd.isOdd2(c));
		int d = 3;
		assertEquals(true, IsOdd.isOdd2(d));
		int e = -1;
		assertEquals(true, IsOdd.isOdd2(e));
		int f = -2;
		assertEquals(false, IsOdd.isOdd2(f));
		int j = -3;
		assertEquals(true, IsOdd.isOdd2(j));
		System.out.println("o");
		System.err.println("e");
	}

}



package com.xjh.study;

import java.math.BigDecimal;

public class Change {
	public static void main(String args[]) {
		System.out.println(2.00 - 1.10); // 0.8999999999999999
		System.out.printf("%.2f%n", 2.00 - 1.10); // 0.90
		System.out.println((200 - 110) + " cents"); // 90 cents
		System.out.println(new BigDecimal("2.00").
				subtract(new BigDecimal("1.10"))); // 0.90
	}
}



package com.xjh.study;

import java.util.ArrayList;
import java.util.List;

public class Elementary {
	public static void main(String[] args) {
		System.out.println(12345 + 5432l); // 17777
		System.out.println(12345 + 5432L); // 17777
		// Bad code-uses el(l)as a variable name
		List l = new ArrayList();
		l.add("Foo");
		System.out.println(l); // [Foo]
	}

}



package com.xjh.study;

public class JoyOfHex {
	public static void main(String[] args) {
		System.out.println(
				Long.toHexString(0x100000000L + 0xcafebabe));
	}

}




package com.xjh.study;

public class LongDivision {
	public static void main(String[] args) {
		final long MICROS_PER_DAY = 24 * 60 * 60 * 1000 * 1000;
		final long MILLIS_PER_DAY = 24 * 60 * 60 * 1000;
		System.out.println(MICROS_PER_DAY / MILLIS_PER_DAY); // 5
		System.out.println(24 * 60 * 60 * 1000 * 1000); // 500654080   已经溢出了
		System.out.println(MICROS_PER_DAY); // 500654080  已经溢出了
		System.out.println(MILLIS_PER_DAY); // 86400000
		System.out.println(24 * 60 * 60); // 86400
		
		System.out.println("------------------------");
		
		final long MICROS_PER_DAY_2 = 24L * 60 * 60 * 1000 * 1000;
		final long MILLIS_PER_DAY_2 = 24L * 60 * 60 * 1000;
		System.out.println(MICROS_PER_DAY_2 / MILLIS_PER_DAY_2); // 1000
		
		System.out.println("hello");
		
		System.err.println("a");
	}

}



来源 《Java Puzzlers》第二章

你可能感兴趣的:(Java Puzzlers)