Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2026949
  • 博文数量: 413
  • 博客积分: 10926
  • 博客等级: 上将
  • 技术积分: 3862
  • 用 户 组: 普通用户
  • 注册时间: 2006-01-09 18:14
文章分类

全部博文(413)

文章存档

2015年(5)

2014年(1)

2013年(5)

2012年(6)

2011年(138)

2010年(85)

2009年(42)

2008年(46)

2007年(26)

2006年(59)

分类: Java

2008-11-27 12:21:37

  1. Official Tutorial
    1. Official Tutorial
      Basic, Class, Interface, Object, Thread, String, Number, .....
      Online Tutorial:  
      Tutorial History: 
      Tutorial Download:
    2. The Java Language Specification, Third Edition
    3. Effective Java
    4. Keyworkds reference
    5. Example:
    6. Excellent Tutorial (PDF)
      • Java编程语言
      • Java技术手册
      • Java2核心技术
    7. xxx
  2. Think in Java
  3. Knowledge Body
    • IO: io + nio
    • Date time: Date + Time + Calendar + TimeZone
    • Locale: Locale + Format
    • DataBase
      • Sqlite
    • Network
      • Socket + Http
      • Non-Blocking IO (Channel)
    • Regular expression (java.utils.regex)
    • Security
      • security
      • crypto
    • Zip: zip + jar
    • xxx
  4. Topics
    1. 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是可变的
    2. 循环
      for-each:
      for (type var : collection)
      {
         statements
      }

      for-each与for/while的区别
      前者简洁,不需定义下标变量,不需检查下标的起始值和终止值。常用于对集合中所有元素的访问。
      后者常用于不需要访问所有元素,或需要引用下标值时。
    3. 访问权限
      public, protected, private, 默认(不明确指定)是package-private权限,一般这种情况都会在原型前加注释/*package-private*/, eg:
      /*package-private*/ void setup(xxx)
      {
          Statements
      }
    4. xxx
  5. xxx
阅读(1032) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~