1. 程式人生 > >java學習筆記(12)

java學習筆記(12)

1:StringBuffer(掌握)
(1)用字串做拼接,比較耗時並且也耗記憶體,而這種拼接操作又是比較常見的,為了解決這個問題,Java就提供了
一個字串緩衝區類。StringBuffer供我們使用。
(2)StringBuffer的構造方法
A:StringBuffer()
B:StringBuffer(int size)
C:StringBuffer(String str)
(3)StringBuffer的常見功能(自己補齊方法的宣告和方法的解釋)
A:新增功能append
B:刪除功能deletecharat delete
C:替換功能replace
D:反轉功能reverse
E:擷取功能(注意這個返回值)
(4)StringBuffer的練習(做一遍)
A:String和StringBuffer相互轉換
String – StringBuffer
構造方法
StringBuffer – String
toString()方法
B:字串的拼接
C:把字串反轉
D:判斷一個字串是否對稱
(5)面試題
小細節:
StringBuffer:同步的,資料安全,效率低。
StringBuilder:不同步的,資料不安全,效率高。
A:String,StringBuffer,StringBuilder的區別
B:StringBuffer和陣列的區別?
(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:要掌握的方法(自己補齊方法)
把陣列轉成字串:
排序:
二分查詢:
(4)Arrays工具類的原始碼解析
(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之間的資料緩衝池問題

4:Character(瞭解)
(1)Character構造方法
Character ch = new Character(‘a’);
(2)要掌握的方法
A:判斷給定的字元是否是大寫
B:判斷給定的字元是否是小寫
C:判斷給定的字元是否是數字字元
D:把給定的字元轉成大寫
E:把給定的字元轉成小寫