作者:Utopia | 来源:互联网 | 2023-05-18 13:31
1:StringBuffer(掌握)(1)用字符串做拼接,比较耗时并且也耗内存,而这种拼接操作又是比较常见的,为了解决这个问题,Java就提供了一个字符串缓冲区类。StringBu
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 index):删除从指定位置开始指定结束内容,并返回本身。
C:替换功能
public StringBuffer replace(int start,int end,String str):从start开始到end用str替换
D:反转功能
public StringBuffer reverse():将此字符序列用其反转形式取代。
E:截取功能
注意:返回值类型不再是StringBuffer本身了
public String substring(int start): 该子字符串始于指定索引处的字符,一直到此字符串末尾。
public String substring(int start,int end): 该子字符串始于指定索引处的字符,一直到此字符指定索引处的字符。
(4)StringBuffer的练习
A:String和StringBuffer相互转换
String -- StringBuffer
构造方法
StringBuffer -- String
toString()方法
B:字符串的拼接
C:把字符串反转
D:判断一个字符串是否对称
(5)面试题
小细节:
StringBuffer:同步的,数据安全,效率低。
StringBuilder:不同步的,数据不安全,效率高。
A:String,StringBuffer,StringBuilder的区别
a:String是内容不可变的,而StringBuffer,STringBuilder内容可变的。
b:StringBuffer是同步的,数据安全,效率低。
c:StringBuilder是不同步的,数据不安全,效率高。
B:StringBuffer和数组的区别?
二者可以看出是一个容器,装其它的数据。
但是呢,StringBuffer数据最终是一个字符串数据。//sb.append(true).append(123)。
而数组可以放置多种数据,但必须是同一种数据类型的。//int[] arr = {1,2,3}数据类型必须相同
(6)注意的问题:
String作为形式参数,StringBuffer作为形式参数。
其本类型:形式参数的改变不影响实际参数
引用类型:形式参数的改变直接影响实际参数
注意:
String作为参数传递,效果程基本类型是一样的。
2:数组高级以及Arrays(掌握)
(1)排序
A:冒泡排序
相邻元素两两比较,大的往后放,第一次完毕,最大值出现在了最大索引处。同理,其他的元素就可以排好。
public static void bubbleSort(int[] arr) {
for(int x=0; x 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 value) {
max = mid - 1;
}else if(arr[mid] 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工具类的源码解析
http://blog.csdn.net/l1585931143/article/details/53247870
(5)把字符串中的字符进行排序
举例:
"edacbgf"
得到结果
"abcdefg"
for (int x = 0; x chs[y + 1]) {
char temp = chs[y];
chs[y] = chs[y + 1];
chs[y + 1] = temp;
}
}
}
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:判断给定的字符是否是大写
public static boolean isUpperCase(char ch):判断给定的字符是否是大写字符
B:判断给定的字符是否是小写
public static boolean isLowerCase(char ch):判断给定的字符是否是小写字符
C:判断给定的字符是否是数字字符
public static boolean isDigit(char ch):判断给定的字符是否是数字字符
D:把给定的字符转成大写
public static char toUpperCase(char ch):把给定的字符转换为大写字符
E:把给定的字符转成小写
public static char toLowerCase(char ch):把给定的字符转换为小写字符
(3)案例:
统计字符串中大写,小写及数字字符出现的次数
for (int x = 0; x