思考
- String类和StringBuffer类的差别?
String类代表字符串类,字符串是常量,它们的值在创建之后不能更改。如果你修改了String的值,就相当于创建了一个新的对象,为不可变类。
StringBuffer类指的是String的字符串缓冲区,通过调用某些方法可以改变该序列的长度和内容,为可变类,所以说StringBuffer类对象是可修改修改对象。
String的特点:
1.为不可变对象,一旦被创建就不能修改它的值;
2.String类是final类型不可被继承;
StringBuffer的特点:
1.它是一个可变的对象,当你需要修改其内容的时候,可以通过调用其方法进行修改。
2.不能通过赋值符号对他进行赋值.。
3.字符串连接操作中StringBuffer的效率要比String高
从字符串取字符和取子串分别用什么方法?
从字符串找子串有哪些方法?
基本类类型和包装类有什么关系?
包装类和基本数据类型之间有什么区别?
1、声明方式不同
基本类型不适用new关键字,而包装类型需要使用new关键字来在堆中分配存储空间;
2、存储方式及位置不同
基本类型是直接将变量值存储在堆栈中,而包装类型是将对象放在堆中,然后通过引用来使用;
3、初始值不同
基本类型的初始值如int为0,boolean为false,而包装类型的初始值为null
4、使用方式不同
基本类型直接赋值直接使用就好,而包装类型在集合如Collection、Map时会使用到。
5、包装类都是继承Number 接口实现Compareble 接口的
包装类优点:
提供了一系列实用的方法
集合不允许存放基本数据类型数据,存放数字时,要用包装类型
包装类缺点:
由于每个值分别包装在对象中,所以ArrayList
补充:
1、int 类型不能赋值为null(默认值为0),包装类型Integer可以为null(默认值为null)
2、当int中的数值 与 integer 中的数值一致的时候, 使用 “==” 进行比较,结果为true
3、如果两个都是new的Integer相比较也是相等的
- 为什么要使用包装类?
我们知道Java是一个面相对象的编程语言,基本类型并不具有对象的性质,为了让基本类型也具有对象的特征,就出现了包装类型(如我们在使用集合类型Collection时就一定要使用包装类型而非基本类型),它相当于将基本类型“包装起来”,使得它具有了对象的性质,并且为其添加了属性和方法,丰富了基本类型的操作。
另外,当需要往ArrayList,HashMap中放东西时,像int,double这种基本类型是放不进去的,因为容器都是装object的,这是就需要这些基本类型的包装器类了。
二者相互转换:(JDK1.5 之后体提供了自动拆装箱)
1、int转Integer
int i = 0;
2. Integer ii = new Integer(i);
Integer转int
1. Integer ii = new Integer(0);
int i = ii.intValue();
- Java处理日期数据的类有哪些?)