智乐兔

Java基础

  • Java常见疑难问题-类12

    Java常见疑难问题-类12

    40. 构造器中静态常量的引用问题class T {// 先于静态常量t初始化,固可以在构造器中正常使用private static final int y = getY();/** 严格按照静态常量声明的先后顺来初始化:即t初始* 化完后,才初始化后面的静态常量j,所以构造器中* 引用后面的静态常量j时,会是0,即内存清零时的值*/public static final T t = new T();// 后于静态常量t初始化,不能在构造器中正常使用private static final int j = getJ();private final int i; static int getY( ...

    查看全文

  • Java常见疑难问题-类13

    Java常见疑难问题-类13

    41. instanceof与转型System.out.println(null instanceof String);//falseSystem.out.println(new Object() instanceof String);//false//编译能通过System.out.println((Object) new Date() instanceof String);//false//!!程序不具有实际意义,但编译时不能通过//!!System.out.println(new Date() instanceof String);//!!运行时抛ClassCastException,这 ...

    查看全文

  • 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 疑难问题解析-数值表达式1

    java 疑难问题解析-数值表达式1

    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 Docmented注解的作用

    java Docmented注解的作用

    Documented也是一种注解,其作用是声明后面的注解是否要在javadoc中输出。 默认情况下,注解是不会在javadoc中出现的。 // @Documented: @Documented @Retention(value=RUNTIME) @Target(value=ANNOTATION_TYPE) public @interface Documented { // 可以是自定义的Annotation类型在javadoc中生成源代码中插入的文档注释信息! } ———用@Documented在javadoc中显示自定义文档注释: pa ...

    查看全文

  • java定义自己的Annotation类型

    java定义自己的Annotation类型

    // 自定义Annotation类型 @Retention(value = RetentionPolicy.RUNTIME) @interface MyAnnotation { public String value() default ” “; } /* ubuntu@xu-desktop:~$ java com.mldn.ReflectAnnotation 自定义Annotation:com.mldn.MyAnnotation value = www.k187.com 所有当前方法上使用的RUNTIME范围的Annotation: @com.ml ...

    查看全文

  • java运行时获取自定义的Annotation

    java运行时获取自定义的Annotation

    获取自定义的Annotation,靠的是反射机制的支持; package com.mldn; import java.lang.annotation.Annotation; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.reflect.Method; public class ReflectAnnotation { public static void main(String[] args) { Class c = nu ...

    查看全文

在线客服
在线客服 X

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

智乐兔官微