StringBuffer的理解

  1. StringBuffer是一个字符串缓冲区,当new的时候是在堆内存当中新建了一个对象,底层是一个长度为16的字符数组,当调用添加的方法时,不会再重新创建对象,而是不断的在原缓冲区添加字符。
  2. StringBuffer提供了一系列操作字符串的方法,其中截取subString()返回的类型不再是StringBuffer,而是String。
  3. StringBuffer和String的相互转换。通过构造和toString方法等。
  4. StringBuffer和StringBuilder里面的方法是完全一样的。
5. 面试题:
  • StringBuffer是jdk1.0版本提供的,是线程安全的,效率低。
  • StringBuilder是jdk1.5版本提供的,是线程不安全的,效率高。
  • String是一个不可变的字符序列。
  • StringBuffer和StringBuilder是可变的字符序列。
  1. 基本数据类型的值传递,不改变其值。
  2. 引用数据类型的值传递,改变其值。
  3. String类虽然是引用数据类型,因为他是不可变的final,所以它当做参数传递的时候和基本数据类型是一样的,也不改变值。StringBuffer是改变值的。
9. 冒泡排序:
  • 轻的上浮,沉的下降。即小的往前,大的往后。
  • 两个相邻位置比较,如果前面的比后面的元素大,就交换位置。
  • 两层for循环,外层控制比较的轮数,内层代表做的交换操作,没完成一轮,就会出现一个最大值。
10. 选择排序:
  • 用一个索引位置上的元素,依次与其他索引位置上的元素进行比较。小的放到前面,大的放到后面。
  • 外层轮数还是长度减1次,每完成一轮出来一个最小值。
  • 二分查找的前提就是数组有序,一边大,一边小。
10.Arrays工具类,针对数组操作的工具类。
  • Arrays.toString()将数组转换为字符串进行打印。
  • sort()排序的功能
  • binarySerarch()二分查找,查找的前提是先排序。
  1. Integer工具类
  • 将int转为字符串,String s1 = i + “”;String s2 = String.valueOf(100);
  • int i = Integer.parseInt(“100”);
  1. 基本数据类型包装类有八种,其中有七都有parseXXX()的方法,可以将这七种的字符串表现形式转换成基本数据类型。char的包装类没有parseXXX的方法,因为多个字符串无法保证就是一个。比如String s = “abc”; 这里三个,没法保证就是一个。
13. 面试题:
/**
-128到127是byte的取值范围,如果在这个范围内,
自动装箱就不会创建新的对象,而是从常量池中获取。
如果超出了这个范围,就会创建新的对象。
*/
Integer i1 = 127;
integer i2 = 127;
System.out.println(i1 == i2); // true
Integer i3 = 128;
Integer i4 = 128;
System.out.println(i3 == i4) // false

你可能感兴趣的:(StringBuffer的理解)