智乐兔

Java基础

  • Java常见疑难问题-类14

    Java常见疑难问题-类14

    44. 请使用引用类型调用静态方法public class Null {public static void greet() {System.out.println(“Hello world!”);} public static void main(String[] args) {((Null) null).greet();}}上面程序运行时不会打印NullPointerException异常,而是输出”Hello world!”,关键原因是:调用静态方法时将忽略前面的调用对象或表达示,只与对象或表达式计算结果的类型有关。 在调用静态方法时,一定 ...

    查看全文

  • Java常见疑难问题-应用15

    Java常见疑难问题-应用15

    47. 不可变的引用类型BigInteger total = BigInteger.ZERO;total.add(new BigInteger(“1”));total.add(new BigInteger(“10”));System.out.println(total);//0上面程序的结果为11吗?答案是0。 BigInteger实例是不可变的。String、BigDecimal以及包装类型:Integer、Long、Short、Byte、Character、Boolean、Float和Double也是如此。对这些类型的操作将返回新的实例。 不 ...

    查看全文

  • Java常见疑难问题-数值表达式0

    Java常见疑难问题-数值表达式0

    1. 奇偶判断不要使用 i % 2 == 1 来判断是否是奇数,因为i为负奇数时不成立,请使用 i % 2 != 0 来判断是否是奇数,或使用高效式 (i & 1) != 0来判断。2. 小数精确计算System.out.println(2.00 -1.10);//0.8999999999999999上面的计算出的结果不是 0.9,而是一连串的小数。问题在于1.1这个数字不能被精确表示为一个double,因此它被表示为最接近它的double值,该程序从2中减去的就是这个值,但这个计算的结果并不是最接近0.9的double值。一般地说,问题在于并不是所有的小数都可以用二进制浮点数精确表示 ...

    查看全文

  • Java常见疑难问题-应用16

    Java常见疑难问题-应用16

    51. 静态导入的优先权import static java.util.Arrays.toString;import java.util.Arrays;public class T {public static void main(String[] args) {prt(1, 2, 3);}static void prt(Object… args) {// 自身继承至Object类的toString的优先级高于静态导入的方法//!! System.out.println(toString(args));//不能编译System.out.println(Arrays.toString ...

    查看全文

  • Java常见疑难问题-数值表达式1

    Java常见疑难问题-数值表达式1

    5. 窄数字类型提升至宽类型时使用符号位扩展还是零扩展System.out.println((int)(char)(byte)-1);// 65535结果为什么是65535而不是-1? 窄的整型转换成较宽的整型时符号扩展规则:如果最初的数值类型是有符号的,那么就执行符号扩展(即如果符号位为1,则扩展为1,如果为零,则扩展为0);如果它是char,那么不管它将要被提升成什么类型,都执行零扩展。 了解上面的规则后,我们再来看看迷题:因为byte是有符号的类型,所以在将byte数值-1(二进制为:11111111)提升到char时,会发生符号位扩展,又符号位为1,所以就补8个1,最后为16个1;然后 ...

    查看全文

  • Java常见疑难问题-应用17

    Java常见疑难问题-应用17

    55. thread. isInterrupted()与Thread.interrupted()public class SelfInerruption {public static void main(String[] args) {Thread.currentThread().interrupt();if (Thread.interrupted()) {// Interruped:falseSystem.out.println(“Interruped:” + Thread.interrupted());} else {System.out.println(̶ ...

    查看全文

  • Java常见疑难问题-数值表达式2

    Java常见疑难问题-数值表达式2

    12. 一个数永远不会等于它自己加1吗?i==i+1一个数永远不会等于它自己加1,对吗?如果数字是整型,则对;如果这个数字是无穷大或都是浮点型足够大(如1.0e40),等式就可能成立了。 Java强制要求使用IEEE 754浮点数算术运算,它可以让你用一个double或float来表示无穷大。 浮点型分为double型、float型。 无穷分为正无穷与负无穷。 无穷大加1还是无穷大。 一个浮点数值越大,它和其后继数值之间的间隔就越大。 对一个足够大的浮点数加1不会改变它的值,因为1不足以”填补它与其后者之间的空隙”。 浮点数操作返回的是最接近其精确数学结果的浮点数值。 ...

    查看全文

  • Java常见疑难问题-应用18

    Java常见疑难问题-应用18

    58. Hash集合序列化问题class Super implements Serializable{// HashSet要放置在父类中会百分百机率出现// 放置到子类中就不一定会出现问题了final Set set = new HashSet();}class Sub extends Super {private int id;public Sub(int id) {this.id = id;set.add(this);}public int hashCode() {return id;}public boolean equals(Object o) {return (o instanceo ...

    查看全文

  • Java常见疑难问题-数值表达式3

    Java常见疑难问题-数值表达式3

    16. Math.abs结果一定为非负数吗?System.out.println(Math.abs(Integer.MIN_VALUE));// -2147483648上面的程序不会输出2147483648,而是-2147483648,为什么? 其实我们看一下Math.abs源码就知道为什么了,源码:(a < 0) ? -a : a;,结合上面那个迷题,我们就发现-Integer.MIN_VALUE= Integer.MIN_VALUE,所以上面的答案就是最小整数自己。 另外我们也可以从API文档看到对Math.abs()方法的解释:如果参数等于Integer.MIN_VALUE 的值(即能够 ...

    查看全文

  • Java常见疑难问题-应用19

    Java常见疑难问题-应用19

    60. 编译期常量表达式第一个PrintWords代表客户端,第二个Words代表一个类库:class PrintWords {public static void main(String[] args) {System.out//引用常量变量.println(Words.FIRST + ” “+ Words.SECOND + ” “+ Words.THIRD);}}class Words {// 常量变量public static final String FIRST = “the”;// 非常量变量public sta ...

    查看全文

  • Java常见疑难问题-字符串4

    Java常见疑难问题-字符串4

    19. char类型相加System.out.println(‘a’ + ‘A’);//162上面的结果不是 aA ,而是 162。当且仅当+操作符的操作数中至少有一个是String类型时,才会执行字符串连接操作;否则,执行加法。如果要连接的数值没有一个是字符串类型的,那么你可以有几种选择:预置一个空字符串(”” + ‘a’ + ‘A’);将第一个数值用String.valueOf()显示地转换成一个字符串(String.valueOf(‘a’) + ...

    查看全文

  • Java常见疑难问题-字符串5

    Java常见疑难问题-字符串5

    25. 一段程序的三个BugRandom rnd = new Random();StringBuffer word = null;switch (rnd.nextInt(2)) {case 1:word = new StringBuffer(‘P’);case 2:word = new StringBuffer(‘G’);default:word = new StringBuffer(‘M’);}word.append(‘a’);word.append(‘i’);word.a ...

    查看全文

在线客服
在线客服 X

售前: 点击这里给我发消息
售后: 点击这里给我发消息

智乐兔官微