java 基础随笔

 用java 也有3年多,但总觉得用的不是那么熟练,会的不知道原理,不会的仍是不会。所以为了不让忘的快,就把自己的一些体会记在这儿了

  1.String、StringBuffer、StringBuilder的区别

  类  继承性       线程安全性 拼接效率 应用场景 
String final 不安全 +,concat每次生成一个新实例,但concat并不比append慢(可能是测试场景不对,或未理解原理),但+比append慢得多 字符串常量,小量拼接
StringBuilder final 不安全 append 比StringBuffer的append快,没有加锁的影响 局部变量, 大量拼接,非多线程环境
StringBuffer final 安全 append比String 的+快,但并不比String 的concat方法快  大量拼接,多线程环境

  2.equals、==、hashCode

    其实==不应该放到一起比较,因为它是一种运算符,而equals、hashCode是方法。但是由于equals与==总被纠缠在一起,也就比较一下了

对比项 说明 互推性 重载场景
== 比较两个对象的引用或基本类型的值 两对象==,则hashCode一定相等  
equals 根据具体子类重载的情况而定,在Ojbect根类中,默认是比较对象的引用是否相等, 在String中是先比较引用,若不相等再比较值(重载过) 两对象equals,则hashCode一定相等 集合类
hashCode 取对象的某一部,经运算后得到的一个int值,并不一定是正数

两对象hashCode相等,不能推出==,或equals;

但hashCode不相等,则equals一定不相等

集合类

   3.override,overloade

   先copy一个测试题放在上面,如果能做对,估计也理解了两者的区别了,下面的也就不用再看了

    1) class Super{ 
    2) public float getNum(){return 3.0f;} 
    3) } 
    4) 
    5) public class Sub extends Super{ 
    6) 
    7) } 
   下面哪条语句放在第6行将出现编译报错? 
     A. public float getNum(){return 4.0f;} 
     B. public void getNum(){} 
     C. public void getNum(double d){} 
     D. public double getNum(float d){return 4.0d;} 

     下面的对比是网上借鉴的

对比项 含义 参数是否相同 返回值 存在位置
override 重写,一个类中有多个同名函数,但至少参数顺序,参数类型或返回值三者中有一个不同 参数类型或个数或顺序至少有一项不同 可不同 同一个类中,或父类中
overload 重载,子类覆盖父类的同名实例方法(static方法无法覆盖) 与父类完全相同 相同   本类中,从父类继承而来

    4.I/O

    这块就只会些基本的的,网上讲的很多,我也就放几个地址了

  

      对于更深入的了解,可以参阅以下地址

      http://blog.csdn.net/historyasamirror/article/details/4270633

      http://19880512.blog.51cto.com/936364/381722

      http://blog.csdn.net/kexin_bo/article/details/6925351 

   5.java.util.*

   java.util应该是我们平时用得最多的包了,当然util包下同还有子包,里面的东西太多了。但最重要的应该是java.util.concurent.*包下面的内容中,里面包含了java并发方面的精髓。其中的ConcurrentHashMap,AbstractQueuedSynchronizer两个类应该很值得学习研究了。

   跟I/O一样吧,先放张图,再放几个地址了

  

       更深入的学习请参考以下地址:

      http://www.goldendoc.org/category/juc/

      http://www.khotyn.com/2011/06/12/juc_aqs/

  可能是最近有些不知道干什么了,竞写了这篇博客。

  

posted @ 2013-03-28 14:38  moneyhacker  阅读(177)  评论(0)    收藏  举报