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()方法。

  • 相关阅读:
    关于在MAC上进行 LARAVEL 环境 Homestead 安装过程记录
    js 贷款计算器
    js 实现阶乘
    js 两点间距离函数
    composer Your requirements could not be resolved to an installable set of packages
    vue 项目优化记录 持续更新...
    vue 项目打包
    vue 真机调试页面出现空白
    vue 真机调试
    谈谈-Android状态栏的编辑
  • 原文地址:https://www.cnblogs.com/enjoy-ourselves/p/3149206.html
Copyright © 2011-2022 走看看