Java基础班学习笔记(11)API常用类(二)

1:StringBuffer(掌握)
 (1)用字符串做拼接,比较耗时并且也耗内存,而这种拼接操作又是比较常见的,为了解决这个问题,Java就提供了
    一个字符串缓冲区类。StringBuffer供我们使用。
 (2)StringBuffer的构造方法
  A:StringBuffer()
  B:StringBuffer(int size)
  C:StringBuffer(String str)
 (3)StringBuffer的常见功能(自己补齐方法的声明和方法的解释)
  A:添加功能
   public StringBuffer append(String str)
   public StringBuffer insert(int offset,String str)
  B:删除功能
   public StringBuffer deleteCharAt(int index)
   public StringBuffer delete(int start,int end)
  C:替换功能
   public StringBuffer replace(int start,int end,String str)
  D:反转功能
 
  E:截取功能(注意这个返回值)
 (4)StringBuffer的练习(做一遍)
  A:String和StringBuffer相互转换
   String --> StringBuffer
   // 注意:不能把字符串的值直接赋值给StringBuffer
   // StringBuffer sb = "hello";    //错误
   // StringBuffer sb = s;            //错误
   // 方式1:通过构造方法
   StringBuffer sb = new StringBuffer(s);
   // 方式2:通过append()方法
   StringBuffer sb2 = new StringBuffer();
 
   StringBuffer --> String
   StringBuffer buffer = new StringBuffer("java");
   // String(StringBuffer buffer)
   // 方式1:通过构造方法
   String str = new String(buffer);
   // 方式2:通过toString()方法
   String str2 = buffer.toString();
 
  B:字符串的拼接
  C:把字符串反转
  D:判断一个字符串是否对称
 (5)面试题 #面试题#
  小细节:
   StringBuffer:同步的,数据安全,效率低。
   StringBuilder:不同步的,数据不安全,效率高。
  A:String,StringBuffer,StringBuilder的区别
  B:StringBuffer和数组的区别?
StringBufferDemo.java
 (6)注意的问题:
  String作为参数传递,效果和基本类型作为参数传递是一样的。(因为它是特殊的引用类型,它在内存中的位置和其他的引用类型不一样)
  StringBuffer作为形式参数。
 
2:数组高级以及Arrays(掌握)
 (1)排序
  A:冒泡排序
   相邻元素两两比较,大的往后放,第一次完毕,最大值出现在了最大索引处。同理,其他的元素就可以排好。
   
   public static void bubbleSort(int[] arr) {
    for(int x=0; x<arr.length-1; x++) {
     for(int y=0; y<arr.length-1-x; y++) {
      if(arr[y] > arr[y+1]) {
       int temp = arr[y];
       arr[y] = arr[y+1];
       arr[y+1] = temp;
      }
     }
    }
   }
   
  B:选择排序
   把0索引的元素,和索引1以后的元素都进行比较,第一次完毕,最小值出现在了0索引。同理,其他的元素就可以排好。
   
   public static void selectSort(int[] arr) {
    for(int x=0; x<arr.length-1; x++) {
     for(int y=x+1; y<arr.length; y++) {
      if(arr[y] < arr[x]) {
       int temp = arr[x];
       arr[x] = arr[y];
       arr[y] = temp;
      }
     }
    }
   }
 
 (2)查找
  A:基本查找
   针对数组无序的情况
   
   public static int getIndex(int[] arr,int value) {
    int index = -1;
   
    for(int x=0; x<arr.length; x++) {
     if(arr[x] == value) {
      index = x;
      break;
     }
    }
   
    return index;
   }
  B:二分查找(折半查找)
   针对数组有序的情况(千万不要先排序,在查找)
   
   public static int binarySearch(int[] arr,int value) {
    int min = 0;
    int max = arr.length-1;
    int mid = (min+max)/2;
   
    while(arr[mid] != value) {
     if(arr[mid] > value) {
      max = mid - 1;
     }else if(arr[mid] < value) {
      min = mid + 1;
     }
     
     if(min > max) {
      return -1;
     }
     
     mid = (min+max)/2;
    }
   
    return mid;
   }
 (3)Arrays工具类
  A:是针对数组进行操作的工具类。包括排序和查找等功能。
  B:要掌握的方法(自己补齐方法)
   把数组转成字符串:    public static String toString(int[] a)
   排序:                       public static void sort(int[] a)
   二分查找:                 public static int binarySearch(int[] a,int key)
 (4)Arrays工具类的源码解析
Arrays工具类的方法源码解析.txt
 (5)把字符串中的字符进行排序
  举例:
   "edacbgf"
   得到结果
   "abcdefg"
 
3:Integer(掌握)
 (1)为了让基本类型的数据进行更多的操作,Java就为每种基本类型提供了对应的包装类类型
  byte Byte
  short Short
  int Integer
  long Long
  float Float
  double Double
  char Character
  boolean Boolean
 (2)Integer的构造方法
  A:Integer i = new Integer(100);
  B:Integer i = new Integer("100");
   注意:这里的字符串必须是由数字字符组成
 (3)String和int的相互转换
  A:String -- int
   Integer.parseInt("100");
  B:int -- String
   String.valueOf(100);
 (4)其他的功能(了解)
  进制转换
 (5)JDK5的新特性
  自动装箱 基本类型--引用类型
  自动拆箱 引用类型--基本类型
 
  把下面的这个代码理解即可:
   Integer i = 100;
   i += 200;
 (6)面试题 #面试题#
  -128到127之间的数据缓冲池问题
IntegerDemo.java
// 通过查看源码,我们就知道了,针对-128到127之间的数据,做了一个数据缓冲池,如果数据是该范围内的,每次并不创建新的空间
4:Character(了解)
 (1)Character构造方法
  Character ch = new Character('a');
 (2)要掌握的方法:(自己补齐)
  A:判断给定的字符是否是大写
  B:判断给定的字符是否是小写
  C:判断给定的字符是否是数字字符
  D:把给定的字符转成大写
  E:把给定的字符转成小写
 (3)案例:
  统计字符串中大写,小写及数字字符出现的次数
posted @ 2015-06-15 00:10  苏坡漫  阅读(199)  评论(0编辑  收藏  举报