1. equals()
解析:String已经重写了Object中的equals()方法,String的equals()方法判断两个字符串相等的标准是:只要两个字符
串所包含的字符序列相同,通过equals()比较将返回true,否则将返回false。
2. 接口和抽象类区别
解析:
(1)接口里只能包含抽象方法,不包含已经提供实现的方法;抽象类则完全可以包含普通方法。
(2)接口里不能定义静态方法;抽象类里可以定义静态方法。
(3)接口里只能定义静态常量属性,不能定义普通属性;抽象类则既可以定义普通属性,也可定义静态常量属性。
(4)接口不包含构造器;抽象类里可以包含构造器,抽象类里的构造器并不是用于创建对象,而是让子类调用这些
构造器来完成属于抽象类的初始化操作。
(5)接口里不能包含初始化块,但抽象类则完全可以包含初始化块。
(6)一个类最多只能有一个直接父类,包括抽象类;但一个类可以直接实现多个接口,通过实现多个接口可以弥补
Java单继承的不足。
说明:在Java类里只能包含属性、方法、构造器、初始化块、内部类和枚举类等6中成员,其中static可以修饰属性、
方法、初始化块、内部类和枚举类,以static修饰的成员就是类成员。
3. Java局部内部类
解析:如果把一个内部类放在方法里定义,那么这个内部类就是一个局部内部类,局部内部类仅在该方法里有效。因
此,局部内部类不能在外部类以外的地方使用,那么局部内部类也无需使用访问控制符和static修饰符修饰。
4. Java强制垃圾回收
解析:
(1)调用System类的gc()静态方法:System.gc()。
(2)调用Runtime对象的gc()实例方法:Runtime.getRuntime().gc()。
5. 强引用,软引用,弱引用,虚引用
解析:
(1)强引用(StrongReference):这是Java程序中最常见的引用方式,程序创建一个对象,并把这个对象赋给一个
引用变量。程序通过该引用变量来操作实际的对象,对象和数组都是采用了这种强引用的方式。当一个对象被一个或
一个以上的引用变量所引用时,它处于激活状态,不可能被系统垃圾回收机制回收。
(2)软引用(SoftReference):软引用需要通过SoftReference类来实现,当一个对象只具有软引用时,它有可能被
垃圾回收机制回收。对于只有软引用的对象而言,当系统内存空间足够时,程序也可使用该对象;当系统内存空间不
足时,系统将会回收它。软引用通常用于对内存敏感的程序中。
(3)弱引用(WeakReference):弱引用通过WeakReference类实现,弱引用和软引用很像,但弱引用的引用级别
更低。对于只有弱引用的对象而言,当系统垃圾回收机制运行时,不管系统内存是否足够,总会回收该对象所占用的
内存。当然,并不是说当一个对象只有弱引用时,它就会立即被回收——正如那些失去引用的对象一样,必须等到系
统垃圾回收机制运行时才会被回收。
(4)虚引用(PhantomReference):虚引用通过PhantomReference类实现,虚引用完全类似没有引用。虚引用对
对象本身没有太大影响,对象设置感觉不到虚引用的存在。如果一个对象只有一个虚引用时,那它和没有引用的效果
大致相同。虚引用主要用于跟踪对象被垃圾回收的状态,虚引用不能单独使用,虚引用必须和引用队列
(ReferenceQueue)联合使用。
6. Xms和Xmx参数
解析:
(1)-Xms是设置JVM初始内存的大小。
(2)-Xmx是设置JVM最大能够使用内存的大小。
7. Java集合总结
8. 类型通配符上限和下限
解析:
(1)类型通配符上限通过形如Box<? extends Number>的形式定义。
(2)类型通配符下限通过形如Box<? super Number>的形式定义。
说明:Java中有泛型类,泛型方法,泛型接口的概念,但是没有泛型数组的概念。
9. Java程序国际化
解析:Java使用Locale对象封装一个国家、语言环境,再使用ResourceBundle根据Locale加载语言资源包,当
ResourceBundle加载了指定Locale对应的语言资源文件后,ResourceBundle对象就可调用getString方法来取出指定
key所对应的消息字符串。
10. Java异常总结
解析:
(1)java.lang.Throwable:Throwable是所有异常的根。
(2)java.lang.Error:Error是错误。
(3)java.lang.Exception:Exception是异常。
11. Java IO总结
解析:InputStream和OutputStream是字节流,Reader和Writer是字符流。如下所示:
12. 线程的生命周期
解析:
(1)新建(New)
(2)就绪(Runnable)
(3)运行(Running)
(4)阻塞(Blocked)
(5)死亡(Dead)
13. Java反射总结
解析:java.lang.reflect包下的类,包括Class、Method、Field、Constructor和Array等,这些类分别代表类、方法、
属性、构造器和数组。Java程序可以使用这些类动态地获取某个对象、某个类的运行时信息,并可以动态地创建Java
对象,动态地调用Java方法,访问并修改指定对象的属性值。
14. public static class DefaultStyledDocument.ElementSpec extends Object
解析:Specification for building elements.
15. public ElementSpec(AttributeSet a, short type)
解析:Constructor useful for markup when the markup will not be stored in the document.
(1)a:the attributes for the element.
(2)type:the type of the element (StartTagType, EndTagType, ContentType).
参考文献:
[1] 《疯狂Java讲义》