一、StringBuffer(重要)
1缩筛、定義:
消略。線程安全的可變字符序列,一個(gè)類似于Sring的字符緩沖區(qū)瞎抛,我們
可以將StringBuffer看做是一個(gè)高級(jí)的String
艺演。StringBuffer和String的區(qū)別
。String是一個(gè)不可變的字符序列
桐臊。StringBuffer是一個(gè)可變的字符序列
2胎撤、構(gòu)造方法:
。public StringBuffer();無參構(gòu)造方法 默認(rèn)容量是16
断凶。public StringBuffer(int capacity);指定容量的字符串緩沖區(qū)對(duì)象
伤提。public StringBuffer(String str);指定字符串內(nèi)容的字符串緩沖區(qū)
對(duì)象
。擴(kuò)容公式: 原容量<<1+2
3认烁、常用方法
①容量和長(zhǎng)度
肿男。public int capacity();返回當(dāng)前容量,
capacity:英 /k??p?s?ti/:n. 能力砚著;容量次伶;
痴昧。public int length(); 返回長(zhǎng)度(字符數(shù)) 實(shí)際值
演示
publci sttic void main(String[] args){
StringBuffer buffer = new StringBuffer();
//獲取容量
int capacity = buffer.capacity();
//獲取內(nèi)容的長(zhǎng)度
int length = buffer.length();
System.out.println(capacity);
System.out.println(length );
}
②添加:
稽穆。public StringBuffer append(String str)
「献可以把任意類型數(shù)據(jù)添加到字符串緩沖區(qū)里面舌镶,
并返回字符串緩沖區(qū)本身
。public StringBuffer insert(int offset ,String str)
豪娜。在指定位置把任意類型的數(shù)據(jù)插入到做符串緩沖
區(qū)里面餐胀,并返回字符串緩沖區(qū)本身
演示:
public sttic void main(String[] args){
StringBuffer buffer = new StringBuffer("abcd");
buffer.append("abbc");
System.out.println(buffer.toString());//結(jié)果:abcdabbc
buffer.insert(2,"woaini ");//插入到指定位置
System.out.println(buffer.toString());
}
③刪除:
。public StringBuffer deleteCharAt(int index);
瘤载。刪除指定位置的字符否灾,并返回本身
。public StringBuffer delete(int start, int end)
鸣奔。刪除從指定位置開始到指定位置結(jié)束內(nèi)容墨技,
并反回本身
演示:
public static void main(String[] args){
StringBuffer buffer = new StringBuffer("abcd");
buffer.deleteCharAt(1);//刪除角標(biāo)位1的值
System.out.println(buffer.toString());//結(jié)果:acd
buffer.delete(1,2);
System.out.println(buffer.toString());//結(jié)果:ad
}
④替換和反轉(zhuǎn):
惩阶。public StringBuffer replace(int satrt, int end,String str)
扣汪。從start開始到end用str替換
。public StringBuffer reverse()
崭别。字符串反轉(zhuǎn)
演示:
public static void main(String[] args){
StringBuffer buffer = new StringBuffer("abcd");
//替換一部分內(nèi)容
buffer.replace(1,3,"愛你");
System.out.println(buffer.toString());//結(jié)果:a愛你d
//反轉(zhuǎn)
buffer.reverse();
System.out.println(buffer.toString());//結(jié)果:d你愛a
}
⑤截取:
茅主。public String substring( int satrt)
舞痰。從指定位置截取到末尾
诀姚。public String substring(int start , int end)
。截取從指定位置到結(jié)束位置学搜,包括開始位置娃善,不
包括結(jié)束位置
。注意:返回值不再是StringBuffer本身瑞佩,而是一
個(gè)String
演示:
public static void main(String[] args){
StringBuffer buffer = new StringBuffer("abcdefg");
//截取一部分聚磺,從某個(gè)角標(biāo)開始炬丸,到結(jié)尾
String str1 = buffer.substring(2);
System.out.println(str1);//結(jié)果:cdefg
//截取一段,從某個(gè)角標(biāo)到某個(gè)角標(biāo)(不包尾)
String str2 = buffer.substring(2,5);
System.out.println(str2);//結(jié)果:cde
}
⑥StringBuffer 和String的相互轉(zhuǎn)換
焕阿。String-->StringBuffer
首启。通過構(gòu)造方法
。通過StringBuffer的append方法
毅桃。StringBuffer-->String
。通過toString()方法
莺掠。通過substring(0,length)
4读宙、演示:
1、數(shù)組轉(zhuǎn)成字符串
需求: 使用StringBuffer將數(shù)組中的數(shù)據(jù)按照指定格式拼接成一個(gè)字符串
輸入結(jié)果: [ 1, 2, 3]
public static void main(String[] args) {
int[] arr = {6,5,8,7};
StringBuffer buffer = new StringBuffer();
buffer.append("[");
for (int i = 0; i < arr.length; i++) {
if (i==arr.length-1) {
buffer.append(arr[i]).append("]");
}else{
buffer.append(arr[i]).append(",");
}
}
System.out.println(buffer.toString());//結(jié)果: [6,5,8,7]
}
2唇兑、字符串反轉(zhuǎn)
需求: 從鍵盤錄入一個(gè)字符串,對(duì)字符串進(jìn)行反轉(zhuǎn)
public static void main(String[] args) {
Scanner scanner =new Scanner(System.in);
String str = scanner.nextLine();
StringBuffer buffer = new StringBuffer(str);
buffer.reverse();
System.out.println(buffer.toString());
scanner.close();
}
二、StringBuilder(重要)
1耻讽、定義:
帕棉。StringBuilder功能等同于Stringbuffer,線程不安全香伴,效率高,
單線程下建議使用StringBuilder
2即纲、StringBuffer和StringBuilder的區(qū)別
。StringBuffer是jdk1.0版本開始的低斋,是線程安全的,效率低
掘猿。StringBuilder是jdk1.5版本開始的唇跨,實(shí)線程不安全的,效率高
三改橘、基本數(shù)據(jù)類型的包裝類(重要)
1玉控、基本數(shù)據(jù)類型自身沒有方法,這樣就限制了我們的使用奸远,將基本數(shù)
據(jù)類型封裝成對(duì)象的號(hào)好處在于可以再對(duì)象中定義更多的功能方法操作
該數(shù)據(jù)
2、對(duì)應(yīng)關(guān)系表:
基本數(shù)據(jù)類型 引用數(shù)據(jù)類型
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean
3、常用方法:
薛窥。用于基本數(shù)據(jù)類型和字符串之間的轉(zhuǎn)換
public static void main(String[] args){
String str = "100";
int num = Integer.parseInt(str);
System.out.println(num*5);//結(jié)果500
}
4诅迷、自動(dòng)裝箱和拆箱
罢杉。自動(dòng)裝箱:把基本數(shù)據(jù)類型轉(zhuǎn)換為包裝類型
。自動(dòng)拆箱:把包裝類型轉(zhuǎn)換成基本數(shù)據(jù)類型
public static void main(String[] args){
Integer ii =100;//自動(dòng)裝箱
int i = ii;//自動(dòng)拆箱
}
四滩租、Math
1、定義:
Math類包含用于執(zhí)行基本數(shù)學(xué)運(yùn)算的方法猎莲,如初等指數(shù)技即,對(duì)數(shù)
,平方根和三角函數(shù)
2身笤、常用方法:
葵陵。public static int abs(int a);返回一個(gè)數(shù)的絕對(duì)值
。public static double ceil(double a );返回大于等于參數(shù)的最
小整數(shù)
莹弊。public static double floor(double a);返回小于等于參數(shù)的最
大整數(shù)
涡尘。public static int max(int a , int b);獲取最大值
。public static double pow(double a,double b);計(jì)算某個(gè)數(shù)的
幾次冥
public static double random() : 獲取一個(gè)大于等于0且小于1的隨機(jī)數(shù)
public static int round(float a) : 對(duì)象小數(shù)四舍五入
public static double sqrt(double a) : 計(jì)算平方根
五呼胚、Random:隨機(jī) (要記)
1犁柜、定義:
疯兼。此類用于產(chǎn)生偽隨機(jī)數(shù)
吧彪。之所以說是偽隨機(jī)數(shù)丢早,是因?yàn)楫a(chǎn)生的數(shù)是使用一個(gè)算法算出的
秧倾。如果用相同的種子創(chuàng)建兩個(gè)Random實(shí)例傀缩,則對(duì)每個(gè)實(shí)例進(jìn)行
相同的方法調(diào)用序列,它們將生成并返回相同的數(shù)字序列
2售淡、構(gòu)造方法:
慷垮。public Random()
。public Random(long seed)
3换帜、常用的方法
。public int nextInt()
蹲嚣。public int nextInt(int n)(重點(diǎn)掌握):產(chǎn)生一個(gè)0到參數(shù)
(不包括)之內(nèi)的隨機(jī)整數(shù)
public static void main(String[] args){
Random random = new Random();
int num = random.nextInt(100);
System.out.println(num);
}
六祟牲、System:系統(tǒng)说贝、體制
1、常用的方法
乡恕。public static void gc();暗示垃圾回收器運(yùn)行
。public static void exit():虛擬機(jī)退出
运杭。public static long currentTimeMillis();獲取當(dāng)前時(shí)間的毫秒
值
函卒。public static void arraycopy(Object src ,int srcPos ,
Object dest , int destPos , int length);復(fù)制數(shù)組
2、演示:
public static void main(String[] args){
new Demo();//創(chuàng)建一個(gè)匿名對(duì)象虱咧,當(dāng)程序執(zhí)行完這句話之后锚国,這個(gè)對(duì)象就沒用了
System.gc();//暗示調(diào)用垃圾回收器,能不能回收逸雹,看臉
long time = System.currentTimeMillis();//獲取當(dāng)前時(shí)間的毫秒值
System.out.println(time);
System.out.println("..............");
System.exit(0);//退出jvm
System.out.println(".............");//將不會(huì)執(zhí)行
}
七云挟、Date:日期(重要)
1、定義:
帖世。Date類表示特定的瞬間沸枯,精確到毫秒
2、構(gòu)造方法
绑榴。public Date()
。public Date(long date)
3窃诉、常用方法
赤套。public long getTime()
。 public void setTime()
4宣脉、演示
public static void main(String[] args){
Date date = new Date();
System.out.println(date.toString());//表示瞬間時(shí)間的字符串剔氏,
System.out.println(date.getTime());//獲取瞬間書劍的毫秒值
date.setTime(1509379011190L);//設(shè)置時(shí)間點(diǎn)
}
八、SimpleDateFormat:日期格式
Simple 簡(jiǎn)單羊苟、簡(jiǎn)易的币旧、單純
Format 格式、格式化巍虫、格式化磁盤鳍刷、磁盤格式化命令
1、定義:
瓦胎。時(shí)間格式化工具,它以與語言無關(guān)的方式格式化并解析日期或
時(shí)間
2搔啊、構(gòu)造方法
。public SimpleDateFormat()
漫蛔。public SmpleDateFormat(String pattern)使用一個(gè)字符串時(shí)間
格式
3旧蛾、常用方法
。public final String format(Date date)
毯盈。public Date parse(String source)
九搂赋、Calendar(非常重要):英 /?k?l?nd?(r)/n. 日歷陪拘;[天] 歷法左刽;日程表
1迄靠、定義:
掌挚。Calendar類是一個(gè)抽象類吠式,它為特定瞬間與一組諸如YEAR特占、
MONTH是目、DAY_OF_MONTH标捺、HOUR等日歷字段之間的轉(zhuǎn)換
提供了一些方法,并為操作日歷字段(例如獲得下星期的日期)
提供了一些方法
嗤疯。Calendar是一個(gè)萬年歷
2、成員方法
辟汰。public static Calendar getlnstance() 獲取萬年歷對(duì)象
阱佛。public int get(int field) 獲取時(shí)間的某個(gè)值
戴而。public void add(int field, int amount) 在當(dāng)前時(shí)間的基礎(chǔ)上
加上一段時(shí)間
。public final void set(int year , int month , int date)設(shè)置時(shí)
間點(diǎn)