zoukankan      html  css  js  c++  java
  • 零散读书笔记(今后再整合)

    1.使用接口的好处就是一旦决定改变自己的实施细节,惟一要做的就是在创建对象的时候改变它,其余代码不用改动。这一点可以联想到设计模式如工厂方法模式里边的设计思想,都是利用的接口或者说多态的好处。这一点很重要。

    如:List list = new LinkedList(); 改成List list=new ArrayList(); 在下边的代码中我们只操作List的通用方法,这样任何时候改,只用改动创建对象的这条代码。

    2.在集合框架中,除了List,Set,Map接口外,还有一些抽象类,它们实现了这些接口的部分方法。这些抽象类存在的意义在于,当我们想实现自己的新集合类时,我们不必从List或者Set等接口实现所有的方法,我们可以从实现这些抽象类开始工作从而更快的得到我们的新类。这些抽象类帮助我们完成了一些工作。

    记得在Servlet的体系中就有这样的案例存在,有一个根接口,也提供了一些抽象类,我们根据实际需要,可以直接实现某个抽象类,减轻了我们的工作量。

    3.自动装箱,即基本类型包装为对象类型,如

    int转为Integer,静态方法Integer.valueOf();Integer转换为int,则用成员方法(非静态方法)intValue();

    new Integer(int i)与Integer.valueOf()的区别:Integer.valueOf(int i)方法的参数如果不在[-128,127]的范围内,刚内部是调用的前者,也就是说对范围不同的int类型的值处理的方式不一样。

    4.编码字符集有哪些:Unicode,GB2312,GBK,ASCII,ISO8859-1等等;一个编码集必定对应一个字符集。

    另一个概念是 字符编码方案,如UTF-8,UTF-16,GB2312,GBK...;大多数编码字符集只有一种字符编码方案,上述5种除了Unicode外都属于此类。编码方案也分为定长编码和变长编码,像GB2312(ASCII字符,用1字节表示,其余用两个字节表示一个字符,准确的说是用 两个字节表示一个数字,这个数字对应一个特定字符),UTF-16(0-65535号字符,2个字节)都是定长编码方案。而UTF-8就是变长编码方案,英文等字符依然用一个字节表示,所以它效率更高,更灵活。

    编码 就是上述两者的组合。所以我们在针对Unicode这种字符集时,才会去区分它的多种编码方案,UTF-8,UTF-16等。而其它的编码就用一个名称就能代表其内涵了。参考资料:http://www.iteye.com/topic/317895  http://www.cnblogs.com/skynet/archive/2011/05/03/2035105.html

    utf-16在字节开头用两个字节表示其字节顺序,FFFE表示正序,FEFF表示反向。UTF-8一般用3个字节表示一个汉字。

    查看一个汉字的UTF-8编码的一种方法:在浏览器输入 javascript:alert(encodeURI('汉').replace(/%/g,'')) 即可

    ANSI 在国内表示 GBK
    EF BB BF (E8 81 94)( E9 80 9A) 括号代表联通 utf-8
    FF FE 54 80 1A 90  Unicode(utf-16) 小尾码FFFE 代表字节正序
    FE FF 80 52 90 1A  Unicode(utf-16) 大尾码

    5.关于回调机制,典型的例子如:Collections类的重载sort()方法,需要传入一个比较器的那个。通常比较器通过一个匿名类来实现。

    sort方法回调了Comparator接口的compare()方法。

  • 相关阅读:
    javascritp学习笔记(四)----引用类型
    Bootstrap学习笔记(二)-----网格系统
    Javascript学习笔记(三)--变量、作用域和内存问题
    Javascript学习笔记(二)--创建对象(七种模式)
    Javascript学习笔记(一)--理解对象
    ReentrantLock
    synchronized使用
    多线程在web项目中的存在方式
    多线程基础
    java集合Map体系
  • 原文地址:https://www.cnblogs.com/enjoy-ourselves/p/3149206.html
Copyright © 2011-2022 走看看