黑馬程序員面試題_第1頁(yè)
黑馬程序員面試題_第2頁(yè)
黑馬程序員面試題_第3頁(yè)
黑馬程序員面試題_第4頁(yè)
黑馬程序員面試題_第5頁(yè)
已閱讀5頁(yè),還剩19頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、(黑馬點(diǎn)招面試題):有類似這樣的字符串:"1.2,3.4,5.6,7.8,5.56,44.55”請(qǐng)按照要求,

依次完成以下試題。

(1)以逗號(hào)作為分隔符,把已知的字符串分成一個(gè)String類型的數(shù)組,數(shù)

組中的每一個(gè)元素類似于"1.273.4"這樣的字符串

(2)把數(shù)組中的每一個(gè)元素以"."作為分隔符,把"."左邊的元素作為key,右

邊的元素作為value,封裝到Map中,M叩中的key和value都是Object類型。

(3)把map中的key封裝的Set中,并把Set中的元素輸出。

(4)把map中的value封裝到Collection中,把Collection中的元素輸出。

2、(黑馬點(diǎn)招面試題):現(xiàn)有如下兩個(gè)已知條件:

在F盤有一個(gè)文件:a.txt,該文件內(nèi)容如下:

test.Person,id:5

test.Student,id:6

(1)讀取a.txt中為每一行,把每一行放入一個(gè)變量中

(2)用","分隔符把變量變成一個(gè)String類型的數(shù)組。

(3)讀取數(shù)據(jù)中的第一個(gè)元素,利用java反射機(jī)制創(chuàng)建對(duì)象。

3、編寫程序,循環(huán)接收用戶從鍵盤輸入多個(gè)字符串,直到輸入“end”時(shí)循環(huán)結(jié)束,并

將所有已輸入的字符串按字典順序倒序打印。

4、編寫一個(gè)程序,把指定目錄下的所有的帶.java文件都拷貝到另一個(gè)目錄中,拷貝成

功后,把后綴名是.java的改成.txt。

5,編寫一個(gè)類A,增加一個(gè)實(shí)力方法showString,用于打印一條字符串,在編寫一個(gè)類

TestA,作為客戶端,用鍵盤輸入?個(gè)字符串,改字符串就是類A的全名,使用反射機(jī)制創(chuàng)

建該類的對(duì)象,并調(diào)用該對(duì)象中的方法showStringo

6、鍵盤錄入5個(gè)數(shù)據(jù),存儲(chǔ)到一個(gè)數(shù)組中,取最大值和最小值。

7、取出個(gè)字符串中字母出現(xiàn)的次數(shù)。如:字符串:"abcdekka27qoq",輸出格式為:

a(2)b(l)k(2)...

8、向泛型為Integer的AnayList中添加-,個(gè)String類型的元素

9、定義?個(gè)文件輸入流,調(diào)用read(byte[]b)方法將exercise.txt文件中的所有內(nèi)容打印

出來(lái)(byte數(shù)組的大小限制為5).

11、編寫程序,循環(huán)接收用戶從鍵盤輸入多個(gè)字符串,直到輸入“end”時(shí)循環(huán)結(jié)束,

并將所有已輸入的字符串按字典順序倒序打印。

12、一個(gè)ArrayList對(duì)象aList中存有若干個(gè)字符串元素,現(xiàn)欲遍歷該ArrayList對(duì)象,

刪除其中所有值為“abc”的字符串元素,請(qǐng)用代碼實(shí)現(xiàn)。

13、編寫一個(gè)類,增加一個(gè)實(shí)例方法用于打印一條字符串。并使用反射手段創(chuàng)建該類的

對(duì)象,并調(diào)用該對(duì)象中的方法。

14、編寫一個(gè)程序,獲取10個(gè)1至20的隨機(jī)數(shù),要求隨機(jī)數(shù)不能重復(fù)。

15、聲明一個(gè)共享數(shù)組,起兩個(gè)線程,兩個(gè)線程分別隔一段時(shí)間(可以寫一個(gè)隨機(jī)數(shù)),

給數(shù)組中添加數(shù)據(jù),每?個(gè)線程為數(shù)組添加3個(gè)數(shù)據(jù)即可。

16、使用帶緩沖功能的字節(jié)流復(fù)制文件。

17、求三位數(shù)的質(zhì)數(shù),只能被本身和1整除,倒序輸出

18、用Math.random生成1,2,3,4,5,6,7,8,9,10

19、鍵盤錄入5個(gè)數(shù),存儲(chǔ)到一個(gè)數(shù)組中,取最大值和最小值

20、通過(guò)反射創(chuàng)建?個(gè)對(duì)象,并且運(yùn)行其中的私有方法

21、九九乘法表

22、冒泡排序

23、懶漢式

24、1-100中個(gè)位和十位不含7的數(shù)

25、從文本中讀取在控制臺(tái)顯示

packagecom.itheima;

importjava.util.Collection;

importjava.utiLHashMap;

importjava.util.IdentityHashMap;

importjava.util.Map;

importjava.util.Set;

/*

*1、有類似這樣的字符串:”1.2,3.4,5.6,7.8,5.56,44.55"請(qǐng)按照要求,依次完成以下試題。

*(1)以逗號(hào)作為分隔符,把已知的字符串分成一個(gè)String類型的數(shù)組,數(shù)組中的每

一個(gè)元素類似于"1.2",”3.4”這樣的字符串

*(2)把數(shù)組中的每一個(gè)元素以作為分隔符,把".”左邊的元素作為key,右邊的元素

作為value,封裝到Map中,Map中的key和value都是Object類型。

*(3)把map中的key封裝至ljSet中,并把Set中的元素輸出。

*(4)把map中的value封裝至UCollection中,把Collection中的元素輸出。

*

*思路:

求一定要明確的是:我們學(xué)的Map集合鍵是不可以重復(fù)的,所以我們做這個(gè)題的時(shí)候

就要考慮可以重復(fù)鍵的Map集合。IdentityHashMap

*考點(diǎn):1.正則2.M叩集合3*.最重要的是要明確這個(gè)題的最重要的一點(diǎn),

IdentityHashMap作為Map集合鍵可以重復(fù)。

*要知道,所有的題都是很簡(jiǎn)單的,不要想的太復(fù)雜,多問(wèn)老師和百度。

*/

publicclassExamTestl{

publicstaticvoidmain(String[]args){

Stringstring="1.2,3.4,5.6,7.8,5.56,44.55”;〃定義一個(gè)字符串

Map<Object,Object>map=newIdentityHashMap<Object,Object>();//創(chuàng)建

M叩集合

Stringf]str=string.split(n,H);/Z將字符串以,”分割,用一個(gè)字符串str數(shù)組接收

//遍歷str數(shù)組并將數(shù)組中的元素用”.“分割(使用了正則表達(dá)式內(nèi)容),用str2

接收。

for(inta=0;a<str.length;a++){

//創(chuàng)建一個(gè)字符串?dāng)?shù)組str2

String[]str2=str[a].split(n\\.n);

//遍歷str2數(shù)組,將分割后的內(nèi)容存入到map集合中

map.put(str2[0],str2[l]);

Set<Object>set=map.keySet();

//打印set獲取鍵

System.out.println(set);

Collection<Object>col=map.values();

〃打印col獲取值

System.out.println(col);

)

packagecom.itheima;

importjava.io.BufferedReader;

importjava.io.FileReader;

/*

*2、現(xiàn)有如下兩個(gè)已知條件:

*在F盤有一個(gè)文件:a.txt屋該文件內(nèi)容如下:

*test.Person4d:5

*test.Student,id:6

*

*(1)讀取a.txt中為每一行,把每一行放入一個(gè)變量中

*(2)用","分隔符把變量變成一個(gè)String類型的數(shù)組。

*(3)讀取數(shù)據(jù)中的第一個(gè)元素,利用java反射機(jī)制創(chuàng)建對(duì)象。

*/

publicclassExamTest2{

publicstaticvoidmain(String[Jargs)throwsException{

//創(chuàng)建一個(gè)高效輸入流,指向F盤下的a.txt文件

BufferedReaderbr=newBufferedReader(newFileReader(na.txt"));

//讀取第一行

Stringstrl=br.readLine();

//讀取第二行

Stringstr2=br.readLine();

//System.out.println(strl);

//System.out.println(str2);

//分別用字符串?dāng)?shù)組接收用“J隔開(kāi)的兩部分

String[]strsl=strl.split。J);

String[]strs2=str2.split(n,");

〃創(chuàng)建字節(jié)碼對(duì)象

Classc=Class.forName(strs1[0]);

//c.getConstructor().newInstance();

〃用字節(jié)碼文件創(chuàng)建對(duì)象

Objectobj=c.newlnstance();

packagecom.itheima;

importjava.utiLComparator;

importjava.util.Iterator;

importjava.util.Scanner;

importjava.util.TreeSet;

〃3、編寫程序,循環(huán)接收用戶從鍵盤輸入多個(gè)字符串,直到輸入“end”時(shí)循環(huán)結(jié)束,

并將所有)輸入的字符串按字典順序倒序打印。

//問(wèn)樂(lè)飛去吧,思路對(duì)了,但是結(jié)果沒(méi)有對(duì)

publicclassExamTest3{

publicstaticvoidmain(String[]args){

TreeSet<String>ts=newTreeSeto(newComparator<String>(){

?Override

publicintcompare(Stringsi,Strings2){

retum-(pareTo(s2));

}

});

while(true){

Scannersc=newScanner(System.in);

Stringstring=sc.nextLine();

if(string.equals(nend")){

Iterator<String>it=ts.iterator();

while(it.hasNext()){

System.out.println(it.next());

}

break;

)

ts.add(string);

)

packagecom.itheima;

importjava.io.BufferedReader;

importjava.io.BufferedWriter;

importjava.io.File;

importjava.io.FileReader;

importjava.io.FileWriter;

importjava.io.FilenameFilter;

importjava.io.IOException;

〃4、編寫一個(gè)程序,把這個(gè)目錄下的所有的帶.java文件都拷貝到另一個(gè)目錄總,拷貝成功

后,把后綴名是.java的改成.txt

/*

*思路

*1、創(chuàng)建輸入流對(duì)象,遍歷目錄,通過(guò)匿名內(nèi)部類拿出。符合規(guī)則的文件

*2、通過(guò)高效字符流復(fù)制文件

*3、將.java改成.txt

*

*注意:如果是多級(jí)目錄的話用遞歸,最好在過(guò)濾器方法中用,這是要注意,遞歸調(diào)用的

方法一定要try..catch不可以拋異常,原因是他爹沒(méi)有,你懂得!

*/

publicclassExamTest4{

publicstaticvoidmain(String[]args)throwslOException{

//封裝d:\\java這個(gè)目錄

FilestartFile=newFile(,'d:\\javaM);

//獲取該目錄下的所有滿足條件的數(shù)組

File[Jfiles=startFile.listFiles(newFilenameFilter(){

?Override

publicbooleanaccept(Filedir,Stringname){

returnnewFile(dir,name).isFile()&&name.endsWith(H.java");

)

});

〃判斷目的地是否存在,不存在就建立

FileendFile=newFile(Hd:\\jarn);

if(!endFile.exists()){

endFile.mkdir();

)

//遍歷文件數(shù)組

for(Filef:files){

Stringname=f.getName();//得到文件名

FilenewFile=newFile(endFile,name);//將路徑和文件名拼接

BufferedReaderbr=newBufferedReader(newFileReader(f));

BulferedWriterbw=newBufferedWriter(newFileWriter(newFile));

Stringline=null;

while((line=br.readLine())!=null){

bw.write(line);

bw.newLine();

bw.flush();

}

bw.close();

br.close();

)

//改名

File[]endFileArray=endFile.listFiles();

for(Filefile:endFileArray){

Stringname=file.getName();

Stringnewname=name.replace(u.javau,".jar");

FilenewFile=newFile(endFile,newname);

file.renameTo(newFile);

)

)

)

packagecom.itheima;

importjava.lang.reflect.Method;

importjava.util.Scanner;

〃5、編寫一個(gè)類A,增加一個(gè)實(shí)力方法showString,用于打印一條字符串,在編寫一個(gè)類TestA,

作為客戶端,用鍵盤輸入一個(gè)字符串,改字符

〃串就是類A的全名,使用反射機(jī)制創(chuàng)建該類的對(duì)象,并調(diào)用該對(duì)象中的方法showString。

publicclassExamTest5{

publicstaticvoidmain(String[]args)throwsException{

Scannersc=newScanner(System.in);

Stringstring=sc.nextLine();

Classc=Class.forName(nheima.mianshiti.A");//獲取字節(jié)碼對(duì)象

Methodm=c.getMethod(nshowString",String.class);

m.invoke(c.newlnstance(),string);

classA{

publicvoidshowString(Stringstr){

System.out.println(str);

)

)

packagecom.itheima;

importjava.util.Arrays;

importjava.util.Scanner;

〃6、鍵盤錄入5個(gè)數(shù)據(jù),存儲(chǔ)到一個(gè)數(shù)組中,取最大值和最小值

//重點(diǎn)Arrays的sort方法忘了的看API

publicclassExamTest6{

publicstaticvoidmain(String[]args){

//鍵盤錄入5個(gè)數(shù)

Scannersc=newScanner(System.in);

int[]arr=newint[5];

intcount=0;

for(inti=0;i<5;i++){

System.out.println("請(qǐng)輸入第"+(count+1)+”個(gè)數(shù)據(jù):");

inta=sc.nextlnt();

arr[countj=a;

count++;

)

get(arr);

)

publicstaticvoidget(int[]arr){

Arrays.sort(arr);

System.out.prinlln("最大值為:"+arr[arr.length-1]);

System.out.println("最小值為:"4-arr[0]);

packagecom.itheima;

importjava.util.Iterator;

importjava.util.Map;

importjava.util.Map.Entry;

importjava.util.Scanner;

importjava.util.Set;

importjava.util.TreeMap;

/*7、取出一個(gè)字符串中字母出現(xiàn)的次數(shù)。如:字符串:uabcdekka27qoq",輸出格式為:

a(2)b(l)k(2)...

*

*這個(gè)不用解釋了,老畢視頻講的很清楚不懂多問(wèn)問(wèn)會(huì)的同學(xué)

*/

publicclassExamTest7{

publicstaticvoidmain(String[]args){

Scannersc=newScanner(System.in);

System.out.println("請(qǐng)輸入一個(gè)字符串:");

Stringstr=sc.nextLine();

char[]ch=str.toCharArrayO;//轉(zhuǎn)換成字符數(shù)組

TreeMap<Character,Integer>map=newTreeMap<>();//創(chuàng)建一個(gè)TreeMap

for(charc:ch){//遍歷

Characterkey=c;

Integervalue=map.get(c);

if(value==null){〃判斷,如果值為空,則向集合中添加(key」),如果不為空則

添加(key,value+l)

map.put(key,1);

}else{

map.put(key,value+1);

)

)

//遍歷集合

Set<Map.Entry<Character,Integer?set=map.entrySet();

Iterator<Entry<Character,Integer?it=set.iterator();

while(it.hasNext()){

Map.Entry<Character,Integer>me=it.next();

Characterkey=me.getKeyO;

Integervalue=me.getValue();

System.out.println(key+H("+value+")”);〃按規(guī)定的格式輸出

)

packagecom.itheima;

/*8、ArrayList<Integer>list=newArrayList<Integer>();

在這個(gè)泛型為Integer的ArrayList中存放一個(gè)String類型的對(duì)象。

*/

importjava.lang.reflect.Method;

importjava.util.ArrayList;

publicclassExamTest8{

publicstaticvoidmain(String[]args)throwsException{

〃用反射跳過(guò)泛型,調(diào)用ArrayList類中的add方法添加string

ArrayList<Integer>list=newArrayList<Integer>();//定義Inleger泛型

Methodm=list.getClass().getMethod(nadd",Object.class);//得到add方法對(duì)象

m.invoke(list,"thisisaString"”/通過(guò)反射來(lái)執(zhí)行l(wèi)ist的第一個(gè)方法,第一個(gè)是list對(duì)

象,代表該對(duì)象的方法,第二個(gè)是方法參數(shù)

System.out.println(list.get(0));

packagecom.itheima;

importjava.io.FilelnputStream;

importjava.io.lOException;

〃定義一個(gè)文件輸入流,調(diào)用read(byte[]b)方法將exercise.txt文件中的所有

〃內(nèi)容打印出來(lái)(byte數(shù)組的大小限制為5)o

publicclassExamTest9{

//@SuppressWamings(Munused")

publicstaticvoidmain(Stringl]args)throwslOException{

FilelnputStreamfis=newFileInputStream("E:\\a.java");

byte[]bys=newbyte[5];

intlen=0;

while((len=fis.read(bys))!=-1){

System.out.print(newString(bys));

packagecom.itheima;

importjava.util.HashMap;

importjava.util.Iterator;

importjava.util.Map;

importjava.util.Set;

/*

IS目:編寫一個(gè)類,在main方法中定義一個(gè)Map對(duì)象(采用泛型),加入若干個(gè)對(duì)象,然

后遍歷并打印出各元素的key和valueo

分析:

L創(chuàng)建Map對(duì)象

2.加入若干對(duì)象

3.遍歷Map對(duì)象

4.打印元素key和value

這要是不會(huì)不要怪別人,最基礎(chǔ)的,但是如果不熟練在好好練練

*/

publicclassExamTestlO{

publicstaticvoidmain(String[]args){

//創(chuàng)建Map對(duì)象

Map<String,Integer>map=newHashMap<String,Integer>();

//加入若干對(duì)象

map.putC'小明”,21);

map.put(“小王”,18);

map.put(“小李”,45);

//遍歷Map對(duì)象

Set<Map.Entry<String,Integer?set=map.entrySet();

Iterator<Map.Entry<String,Integer?it=set.iterator();

while(it.hasNext()){

Map.Entry<String,Integer>me=it.nextQ;

//打印元素key和value

System.out.println(”key:"+me.getKeyO+"-----”+nvalue:M

+me.getValueO);

)

packagecom.itheima;

importjava.io.BufferedReader;

importjava.io.IOException;

importjava.io.InputStreamReader;

importjava.util.ArrayList;

importjava.util.Collections;

importjava.util.Iterator;

importjava.util.List;

/*

題目:編寫程序,循環(huán)接收用戶從鍵盤輸入多個(gè)字符串,直到輸入“end”時(shí)循環(huán)結(jié)束,

并將所有已輸入的字符串按字典順序倒序打印。

分析:

1.字符串本身提供的比較性為字典順序,可以使用工具類Collections.reverse()方法將原

來(lái)的比較性反序。

但也可以自定一個(gè)比較器,讓集合自身必備比較性;

2.鍵盤錄入的是字節(jié)流,操作的是字符流,可以使用轉(zhuǎn)換流,并加入緩沖區(qū)技術(shù),提

高效率;

3.錄入的字符串存儲(chǔ)到ArrayList集合中;

4.使用Collections工具類給ArrayList中元素排序

5.打印ArrayList集合中的元素

步驟:

1.List<String>list=newArrayList<String>();

2.BufferedReaderbufr=newBufferedReader(newInputStreamReader(System.in));

3.1ist.add(line);

4.Collections.sort(list,Collections.reverseOrder());

5.Iterator<String>it=list.iterator();

while(it.hasNext()){

System.out.println(it.next());

)

*/

publicclassExamTestll{

publicstaticvoidmain(String[]args){

//1、定義一個(gè)ArrayList集合

List<String>list=newArrayList<String>();

〃鍵盤錄入字符串,轉(zhuǎn)換流,緩沖區(qū)

System.out.println("請(qǐng)輸入一些字符或者字符串,end結(jié)束!)

BufferedReaderbufr=newBufferedReader(newInputStreamReader(System.in));

Stringline=null;

try(

while((line=bufr.readLine())!=null){

if("end'^equalsCline))

break;

//往ArrayList集合中添加元素

list.add(line);

)

}catch(lOExceptione){

thrownewRuntimeException(nIO異常)

)

〃給ArrayList排序,字典倒序

Collections.sort(list,Collections.reverseOrderO);

//打印集合

Iterator<String>it=list.iterator();

while(it.hasNext()){

System.out.println(it.next());

)

)

)

packagecom.itheima;

importjava.util.ArrayList;

importjava.util.Iterator;

importjava.util.List;

/*

*3、一個(gè)ArrayList對(duì)象aList中存有若干個(gè)字符串元素,

*現(xiàn)欲遍歷該ArrayList對(duì)象,刪除其中所有值為“abc”的字符串元素,

*請(qǐng)用代碼實(shí)現(xiàn)。

**/

@SuppressWarnings(,'unusedn)

publicclassExamTest12{

publicstaticvoidmain(String[]args){

List<String>aList=newArrayList<String>();

aList.add(nCSDN社區(qū))

aList.add("abcM);

aList.add("黑馬程序員)

aList.add("黑馬論壇)

aList.add("黑馬程序員——安卓)

aList.add("黑馬程序員—云計(jì)算");

aList.add("abc");

aList.add("我準(zhǔn)備去黑馬訓(xùn)練營(yíng)了)

//通過(guò)普通的角標(biāo)遍歷,刪除。要避免并發(fā)修改異常

for(inta=0;a<aList.size();a++){

if(aList.get(a).equals("abc")){

aList.remove(a);

}

)

System.out.println(aList);

packagecom.itheima;

importjava.lang.reflect.Method;

*6、編寫一個(gè)類,增加一個(gè)實(shí)例方法用于打印一條字符串。

*并使用反射手段創(chuàng)建該類的對(duì)象,并調(diào)用該對(duì)象中的方法。

**/

〃對(duì)象的打印方法

classPrintin{

publicvoidprintln(Stringstr){

System.out.println(str);

)

)

publicclassExamTest13{

publicstaticvoidmain(String[]args)throwsException{

Classc=Class.forName(ucom.itheima.Println");//通過(guò)反射的方式獲取該類的字節(jié)

碼文件

Methodmethod=c.getMethod(uprintln",Slring.class);//獲取字節(jié)碼對(duì)象對(duì)應(yīng)的方

法,并指定參數(shù)類型。

method.invoke(c.newlnstance(),”王榮榮好難看呀O(n_A)O哈哈?”);〃運(yùn)行對(duì)

象中的方法,并傳入?yún)?shù)。

packagecom.itheima;

importjava.util.Random;

importjava.util.TreeSet;

/*

*編寫一個(gè)程序,獲取10個(gè)1至20的隨機(jī)數(shù),要求隨機(jī)數(shù)不能重復(fù)。

*

*思路:

*1.定義一個(gè)集合,用于存儲(chǔ)隨機(jī)數(shù)

*2.產(chǎn)生隨機(jī)數(shù),并存儲(chǔ)進(jìn)集合中。

*3.對(duì)集合的長(zhǎng)度進(jìn)行判斷。

*步驟:

*1.由于隨機(jī)數(shù)不能重復(fù),所以使用Set集合。為了保證值的唯一,所以使用HashSet

集合.

*2.通過(guò)Set集合的add方法,將生成的隨機(jī)數(shù)存儲(chǔ)進(jìn)HashSet集合。

*3.通過(guò)Set集合的size方法對(duì)集合的長(zhǎng)度進(jìn)行判斷,如果產(chǎn)生的隨機(jī)數(shù)達(dá)到10個(gè),

那么將退出循環(huán)。

**/

publicclassExamTestl4{

publicstaticvoidmain(String[]args){

//存儲(chǔ)Integer的Set集合

TreeSet<Integer>set=newTreeSet<Integer>();

//判斷集合的長(zhǎng)度,如果符合了一定的長(zhǎng)度,那么循環(huán)結(jié)束

while(set.size()<10){

//產(chǎn)生1?20之間的隨機(jī)數(shù)

inti=newRandom().nextlnt(20)+1;

〃添加進(jìn)Set集合中

set.add(i);

)

//打印下集合的元素

System.out.println(set);

packagecom.itheima;

importjava.util.Arrays;

importjava.util.Random;

〃聲明一個(gè)共享數(shù)組,起兩個(gè)線程,

〃兩個(gè)線程分別隔一段時(shí)間(可以寫一個(gè)隨機(jī)數(shù)),給數(shù)組中添加數(shù)據(jù),

〃每一個(gè)線程為數(shù)組添加3個(gè)數(shù)據(jù)即可。

publicclassExamTestl5{

〃寫一個(gè)類實(shí)現(xiàn)Runnable接口,創(chuàng)建兩個(gè)Thread對(duì)象傳入該類

〃多線程操作共享數(shù)組需要同步synchronize

publicstaticvoidmain(String[]args){

FillArrayfa=newFillArrayO;

Threadtl=newThread(fa);

Threadt2=newThread(fa);

tl.start();

t2.start();

)

}

classFillArrayimplementsRunnable{

〃定義共享數(shù)組

int[]arr=newint[6];

〃創(chuàng)建random類的r對(duì)象

Randomr=newRandom();

//簡(jiǎn)單初始化

intcount=0;

publicvoidrun(){

//同步代碼塊

synchronized(r){

//控制長(zhǎng)度

while(count<arr.length){

//Romdom類的nextlnt方法自己看API

intnum=r.nextInt(20);

〃System.out.println(Thread.currentThread().getName()+響數(shù)組中力I」入了

"+num);

arrfcount]=num;

count++;

//try{

//r.wait(500);

//}catch(Exceptione){

//e.printStackTrace();

//

System.out.println(AiTays.toString(arr));

packagecom.itheima;

importjava.io.BufferedlnputStream;

importjava.io.BufferedOutputStream;

importjava.io.FilelnputStream;

importjava.io.FileOutputStream;

importjava.io.IOException;

〃使用帶緩沖功能的字節(jié)流復(fù)制文件。

〃只有一個(gè)要強(qiáng)調(diào)的寫的時(shí)候要用實(shí)際長(zhǎng)度因?yàn)樽止?jié)控制在1024有可能里面的內(nèi)

容沒(méi)有這么大這時(shí)候會(huì)出現(xiàn)一些空格字節(jié)還是字符???

publicclassExamTestl6{

publicstaticvoidmain(String[]args){

BufferedlnputStreambis=null;

BufferedOutputStreambos=null;

try(

bis=newBufferedInputStream(newFileInputStream(ua.txtn));

bos=newBufferedOutputStream(newFileOutputStream("copya.txt"));

byte[lbys=newbyte[1024];

intlen=0;

while((len=bis.read(bys))!=-1){

bos.write(bys,0,len);

)

}catch(Exceptione){

e.printStackTrace();

}finally{

try(

bos.close();

}catch(lOExceptione){

e.printStackTrace();

}

try(

bis.close();

}catch(lOExceptione){

e.printStackTrace();

packagecom.itheima;

importjava.util.ArrayList;

importjava.util.Collections;

〃求三位數(shù)的質(zhì)數(shù),只能被本身和1整除,倒序輸出

publicclassExamTest17{

publicstaticvoidmain(String[]args){

ArrayList<Integer>al=newArrayList<>();

booleanflag=true;

for(inta=100;a<1000;a++){

flag=true;

for(intb=2;b<a;b++){

if(a%b==0){

flag=false;

break;

}

)

if(flag){

al.add(a);

)

)

//Collections工具類的方法,你懂得

Collections.reverse(al);

System.out.println(al);

packagecom.itheima;

importjava.util.TreeSet;

〃用Math.random生成1,2,3,4,5,6,7,8,9,10

//Math的random方法看API

publicclassExamTest18{

publicstaticvoidmain(String[]args){

TreeSet<Integer>ts=newTreeSet<Integer>();

//Randomrd=newRandom();

〃控制長(zhǎng)度

while(ts.size()<10){

ts.add((int)(Math.random()*10+1));

)

System.out.println(ts);

packagecom.itheima;

importjava.util.Arrays;

importjava.utiLScanner;

〃鍵盤錄入5個(gè)數(shù),存儲(chǔ)到一個(gè)數(shù)組中,取最大值和最小值

〃重點(diǎn)是Arrays的sort方法看API

publicclassExamTest19{

publicstaticvoidmain(String[]args){

int[]arr=newint[5];

Scannersc=newScanner(System.in);

System.out.println(nlogin");

for(inti=0;i<5;i++){

arr[i]=sc.nextlnt();

//System.out.println(arr[i]);

)

get(arr);

)

publicstaticvoidget(int[Jarr){

Arrays.sort(arr);

System.out.println(arrlOJ);

System.out.println(arr[arr.length-1]);

packagecom.itheima;

importjava.lang.reflect.Constructor;

importjava.lang.reflect.Method;

//通過(guò)反射創(chuàng)建一個(gè)對(duì)象,并且運(yùn)行其中的私有方法

//掌握反射的原理機(jī)制和三種獲取class字節(jié)碼文件的方法

publicclassExamTest20{

publicstaticvoidmain(String[]args)throwsException(

Classc=Class.forName("com.itheima.Studetn");

Constructorcon=c.getConstructor();

Objectobj=c.newlnstance();

Methodm=c.getDeclaredMethod("show",null);

m.setAccessible(true);

m.invoke(obj,null);

)

packagecom.itheima;

〃九九乘法表自己琢磨吧解釋就是對(duì)你最大的不尊重

publicclassExamTest21{

publicstaticvoidmain(String[]args){

for(intx=9;x>0;x—){

for(inty=1;y<=x;y++){

System.out.print(y++x+"="+x*y+

System.out.printlnO;

)

packagecom.itheima;

〃冒泡排序最基礎(chǔ)的東西掌握4種簡(jiǎn)單的排序明白外循環(huán)和內(nèi)循環(huán)的作用

publicclassExamTest22{

publicstaticvoidmain(String[]args){

int[]array={12,25,234,364,4,345,346,47);

for(inta=0;a<array.length-1;a++){

for(intb=0;b<array.length-1-a;b++){

if(arrayfb]>array[b+1]){

inttemp=array[b];

array[b]=array[b+1];

array[b+1]=temp;

)

)

)

for(inti:array){

System.out.println(i);

)

)

)

packagecom.itheima;

〃懶漢式(延遲加載的單例設(shè)計(jì)模式)

publicclassExamTest23{

}

classStudent{

privateStudent(){

privatestaticStudents=null;

〃注意在多線程程序中容易出現(xiàn)安全問(wèn)題,所以我們寫的時(shí)候最好加上synchronized

publicstaticsynchr

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論