零碎面试知识

单例模式实现方式

  • 静态内部类,通过静态内部类实现懒加载,静态内部类有具有线程安全
  • 静态饿汉模式(static修饰)
  • 双重检查非静态实现
  • 枚举类

常见字符编码

  • 字符集:即字符的集合,是一个字典式的东西,可以理解成计算机的字典,也就是说每个字在字典中都是独立存在的,在计算机领域,每个字都需要编号,计算机才能认识。字符集就是字符编号的集合,其中编号又称 代码点(Code Point);常见字符集有:GBK、GB2312、Unicode、ASCII、iso-8859-1
  • 字符编码:计算机要处理字符集需要将字符集转化成二进制数据,不同的编码方式转化的结果不一样。UTF-8、UTF-16、UTF-32就是Unicode的编码方式,ASCII的编码方式是最早确定的,直接存储字符额编号;GBK、GB2312属于同一系列的字符集,使用固定长度的方式进行编码
  • 日常中习惯把GBK、UTF-8都说成编码格式,这只是一种惯用方法。因为GBK等的编码方式、字符集对应是固定的,说GBK其实也是默认其编码方式。
  • UTF-8是变长编码,可能是1字节、2字节、3字节、4字节,看字符集所需的长度。通过第一个字节区分字符长度
  • 单字节:0xxx xxxx
  • 双字节:110x xxxx
  • 三字节:1110 xxxx
  • 多字节的字符除了第一个字节外,所有字节都是10开头,这样所有字节都可以区分。