- Official Tutorial
- Official Tutorial
Basic, Class, Interface, Object, Thread, String, Number, .....
Online Tutorial:
Tutorial History:
Tutorial Download:
- The Java Language Specification, Third Edition
- Effective Java
- Keyworkds reference
- Example:
- Excellent Tutorial (PDF)
- Java编程语言
- Java技术手册
- Java2核心技术
- xxx
- Think in Java
- Knowledge Body
- IO: io + nio
- Date time: Date + Time + Calendar + TimeZone
- Locale: Locale + Format
- DataBase
- Network
- Socket + Http
- Non-Blocking IO (Channel)
- Regular expression (java.utils.regex)
- Security
- Zip: zip + jar
- xxx
- Topics
- 1, 一切都是对象(句柄),都需要创建 String str = new String("xxxx"); 用对象句柄.成员或对象句柄.方法访问, str.equal(xxx); 所有类都是Object的子类。
2,所有基本数据类型都是有符号的
3, 超大数值的计算用类 BigInteger 和 BigDecimal
4, >>> 无符号数的右移位
5, Java 用垃圾收集器回收由不再使用的对象占据的内存,但垃圾收集并不等于c++中的析构,它只跟内存有关,意味着在我们不再需要一个对象之前,有些行动是必须采取的,而且必须由自己来采取这些行动,比如close打开的文件句柄。
6, finalize()
在理想情况下,它的工作原理应该是这样的:一旦垃圾收集器准备好释放对象占用的存储空间,它首先调用finalize(),而且只有在下一次垃圾收集过程中,才会真正回收对象的内存。所以如果使用finalize(),就可以在垃圾收集期间进行一些重要的清除或清扫工作。
。因为垃圾收集只与内存有关,所以在垃圾回收过程中调用的finalize()方法,它们也必须同内存以及它的回收有关。但这是否意味着假如对象包含了其他对象,finalize()就应该明确释放那些对象呢?答案是否定的——垃圾收集器会负责释放所有对象占据的内存,无论这些对象是如何创建的。不要直接调用finalize()。
8, final 类方法
目的:
a) 防止方法被子类重载
b) 提高程序执行的效率。将一个方法设成final 后,编译器就可以把对那个方法在所有调用地方展开。
9,如果说整个类都是final(在它的定义前冠以final 关键字),就表明不希望从这个类被继承
10,内部类
创建自己的内部类时,那个类的对象同时拥有指向封装对象(这些对象封装或生成了内部类)的一个链接。所以它们能访问那个封装对象的成员——毋需取得任何资格。除此以外,内部类拥有对封装类所有元素的访问权限
11, static 内部类
(1) 为创建一个static 内部类的对象,我们不需要一个外部类对象。
(2) 不能从static 内部类的一个对象中访问一个外部类对象。
12, 容器
集合类:Vector(矢量)、Stack(堆栈)以及Hashtable(散列表)
Iterator, Enumeration, Set,Collection),Map)
13, 运行期类型判断,用Class对象和Method对象
类型判断:instanceof
if(x instanceof Dog) xxx
14, String 和 StringBuffer
String 类的对象被设计成“不可变", 类中能够修改String 的每个方法实际都创建和返回了一个崭新的String 对象,新对象里包含了修改过的信息——原来的String 是原封未动的.
而StringBuffer是可变的
- 循环
for-each:
for (type var : collection)
{
statements
}
for-each与for/while的区别
前者简洁,不需定义下标变量,不需检查下标的起始值和终止值。常用于对集合中所有元素的访问。
后者常用于不需要访问所有元素,或需要引用下标值时。
- 访问权限
public, protected, private, 默认(不明确指定)是package-private权限,一般这种情况都会在原型前加注释/*package-private*/, eg:
/*package-private*/ void setup(xxx)
{
Statements
}
- xxx
- xxx
阅读(1083) | 评论(0) | 转发(0) |