Java和Scala学习日记2

时间:2022-09-21 15:39:28

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集合总结

Java和Scala学习日记2


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是字符流。如下所示:

Java和Scala学习日记2

Java和Scala学习日记2

Java和Scala学习日记2

Java和Scala学习日记2 


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讲义》