Android 面试集合(一)

2018-03-27  本文已影响58人  IT一书生
面向对象和面向过程的区别

面向对象四个基本特征

String 类能否被继承

不能。String 类有final修饰。由final修饰的类不能被继承、属性不能修改。

==、hashCode、equals

==:运算符用来比较两个变量的值是否相等
equals、hashCode 这两个方法都是 object 类继承过来的
equals()是对两个对象的地址值进行的比较(即比较引用是否相同)。
hashCode()是一个本地方法,它的实现是根据本地机器相关的。返回一个离散的int型整数

String、StringBuffer和StringBuilder

        String s = "我喜欢湖畔的风";
        // 在Java Compiler里,s1 自动做了转换,编译时类似于 s,速度比较快
        String s1 = "我喜欢" + "湖畔的" + "风";

        // 在Java Compiler里,s2 不能自动转换,s2 对象由 s21、s22、s23对象拼接而成,速度比较慢
        String s21 = "我喜欢";
        String s22 = "湖畔的";
        String s23 = "风";
        String s2 = s21 + s22 + s23;

注:

  1. 操作少量的数据,用String ;单线程操作大量数据,用StringBuilder ;多线程操作大量数据,用StringBuffer。
  2. 不要使用String类的"+"来进行频繁的拼接,因为那样的性能极差的,应该使用StringBuffer或StringBuilder类。
  3. 为了获得更好的性能,在构造 StringBuffer 或 StringBuilder 时应尽可能指定它们的容量。当然,如果你操作的字符串长度(length)不超过 16 个字符就不用了,当不指定容量时默认构造一个容量为16的对象。不指定容量会显著降低性能。
  4. StringBuilder一般使用在方法内部来完成类似"+"功能,因为是线程不安全的,所以用完以后可以丢弃。StringBuffer主要用在全局变量中。

Java基本类型占用字节数

1字节: byte , boolean
2字节: short , char
4字节: int , float
8字节: long , double
编码与中文:
Unicode/GBK: 中文2字节
UTF-8: 中文通常3字节,在拓展B区之后的是4字节
综上,中文字符在编码中占用的字节数一般是2-4个字节。

int和Integer的区别

1、Integer是int的包装类,int则是java的一种基本数据类型
2、Integer变量必须实例化后才能使用,而int变量不需要
3、Integer实际是对象的引用,当new一个Integer时,实际上是生成一个指针指向此对象;而int则是直接存储数据值
4、Integer的默认值是null,int的默认值是0
int和Integer的区别

内部类

深入理解Java:内部类

上一篇下一篇

猜你喜欢

热点阅读