这个问题在论坛上引起了热烈讨论!同时也得到了精彩的答案。 不能通过逻辑运算和类库的话,就只有用位运算了。将两个数相减之后,直接取结果的符号位。考虑到可能溢出,所以做减法之前先要扩展为 long。 下面是完整的代码: import java.util.Random; /** * 不通过逻辑运算和类库,比较两个 integer 大小 */ public class SimpleCompare { public static void main(String[] args) { Random r = new Random(); int a = r.nextInt(), b = r.nextInt(); // int a = 33, b = 33; String[] results = {"a < b", "a == b", "a > b"}; int sum = 1; sum = sum - (int)((long)(a - b) >>> 63); sum = sum + (int)((long)(b - a) >>> 63); System.out.println(a + ", " + b + ": " + results[sum]); } }