摘要:
奇怪的是只输出了进入run方法,并且在等待停止。 分析: 1,main线程试图访问Demo.website值,此时website尚未被初始化,因此main线程开始对该类执行初始化,步骤 (1)为该类所有静态field分配内存 (2)调用静态初始化块的代码执行初始化 2,main线程为Demo类的we 阅读全文
摘要:
首先看一个简单的代码 创建一个内部类的数组,编译通过。 但当定义Demo时声明一个泛型,编译失败 这个错误让人困扰,并未创建所谓泛型数组,为何会编译失败。 究其原因,是因为内部类可以直接使用外部类的T类型参数,可能产生泛型数组。 这样就可能产生泛型数组了,违反了java原则。 阅读全文
摘要:
通常,数组和泛型不能很好地结合 1 可以创建泛型数组的引用 2 不能实例化具有参数化类型的数组 3 可以参数化数组本身的类型 4 可以创建非泛型的数组,然后转型 java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [ 阅读全文
摘要:
迭代集合时,删除集合元素会发生运行时异常 但两种情况除外 1.ArrayList,Vector,LinkedList等list集合,当使用Iterator遍历时,如果正在遍历倒数第2个元素,用List集合的 remove()方法不会引发异常。 2 对于Set集合有类似现象,删除最后一个元素不会发生异 阅读全文
摘要:
package cn.itcast; import java.io.IOException; import java.io.PrintWriter; import java.util.LinkedHashMap; import java.util.Map; import java.util.Map.Entry; import javax.servlet.ServletException; i... 阅读全文
摘要:
HashSet基与HashMap 源码 ,HashSet 的实现其实非常简单,它只是封装了一个 HashMap 对象来存储所有的集合元素,所有放入 HashSet 中的集合元素实际上由 HashMap 的 key 来保存,而 HashMap 的 value 则存储了一个 PRESENT,它是一个静态 阅读全文
摘要:
要考虑到静态字段的加载是随着类创建诞生 阅读全文
摘要:
Java还提供了另一种方法来生成对Class对象的引用,即使用类字面常量。 这样做不仅更简单,而且更安全,因为它在编译时就会受到检查(因此不需要置于try语句块中),并且它根除了对forName方法的引用,所以也更高效。类字面常量不仅可以应用于普通的类,也可以应用于接口、数组以及基本数据类型。 当使 阅读全文
摘要:
输出: inside mainloading CandyAfter Creating Candyloading GumAfter Class.forname("Gum")loading CookieAfter Creating Cookie static初始化是在类加载时进行的 Class.forn 阅读全文
摘要:
1.s=s+4; 在执行s=s+4;语句时,编译器在编译的时候,默认并没有强制类型转换。所以,s是short类型,4是int类型,s会自动提升为int类型,相加的和也是int类型,赋值给short类型的变量肯定会损失精度。这时候就需要进行强制类型转换:s=(short)(s+4); 阅读全文