Java笔试题共23题附答案.docx

上传人:b****5 文档编号:7319531 上传时间:2023-01-22 格式:DOCX 页数:43 大小:28.34KB
下载 相关 举报
Java笔试题共23题附答案.docx_第1页
第1页 / 共43页
Java笔试题共23题附答案.docx_第2页
第2页 / 共43页
Java笔试题共23题附答案.docx_第3页
第3页 / 共43页
Java笔试题共23题附答案.docx_第4页
第4页 / 共43页
Java笔试题共23题附答案.docx_第5页
第5页 / 共43页
点击查看更多>>
下载资源
资源描述

Java笔试题共23题附答案.docx

《Java笔试题共23题附答案.docx》由会员分享,可在线阅读,更多相关《Java笔试题共23题附答案.docx(43页珍藏版)》请在冰豆网上搜索。

Java笔试题共23题附答案.docx

Java笔试题共23题附答案

"★里面有解题思路一样的没有全部解答,仅仅将题目列出,稍微改变即可得出结果★

"笔试题重点,

"1、复制文件

"2、多线程

"3、集合

"4、反射

/////////////////////////////////////////////////////////////////////

"1

/*

Collection集合体系图

Collection

|----List元素有序,可重复

|----ArrayList底层数据结构是数组,查询快,增删慢,线程不安全,效率高

|----Vector底层数据结构是数组,查询快,增删慢,线程★安全★,效率低

|----LinkedList底层数据结构是链表,查询慢,增删快,线程不安全,效率高

|----Set元素无序,唯一。

|----HashSet

|----TreeSet

遍历集合的两种方式:

1、通过获取键的集合,遍历键的集合,通过键获取值

2、通过键值对集合,遍历键值对对象,分别取得键值

*/

importjava.util.HashMap;

importjava.util.Set;

importjava.util.Map.Entry;

importjava.util.Map;

classForMap

{

publicstaticvoidmain(String[]args)

{

//创建一个map对象

HashMapmap=newHashMap();

//向map中添加元素

map.put("A","101");

map.put("B","102");

map.put("C","103");

map.put("D","104");

//获取键的集合

Setset=map.keySet();

//循环遍历键集合

for(Stringstr:

set){

//通过键获取值

System.out.println(str+"---"+map.get(str));

}

System.out.println("----------------------");

//获取map的键值对集合

Set>mset=map.entrySet();

//循环遍历键值对集合

for(Entryme:

mset)

{

//用键值对对象分别获取键和值

System.out.println(me.getKey()+"---"+me.getValue());

}

System.out.println("----------------------");

}

}

////////////////////////////////////////////////////////////////////

"2

/*

题目1:

创建ArrayList对象,添加5个元素,使用Iterator遍历输出。

*/

"******************************************************************************

/*题目2:

两个集合{“a”,“b”,“c”,“d”,“e”}和{“d”,“e”,“f”,“g”,“h”},

把这两个集合去除重复项合并成一个

思路:

这道题主要是考察集合的知识的,可以用ArrayList解决问题

1、先创建这两个集合

2、向这两个集合分别添加元素

3、用第二个集合的调用iterator()方法获取Iterator对象

4、遍历第二个集合,并用第一个集合判断是否包含第一个

集合的元素,如果不包含就向集合一添加元素

5、打印集合1,就是想要的结果

*/

//导包

importjava.util.List;

importjava.util.ArrayList;

importjava.util.Iterator;

classTest{

publicstaticvoidmain(Stringargs[])

{

//创建集合1

Listlist1=newArrayList();

//向集合1添加元素

list1.add("a");

list1.add("b");

list1.add("c");

list1.add("d");

list1.add("e");

//创建集合2

Listlist2=newArrayList();

//向集合2添加元素

list2.add("d");

list2.add("e");

list2.add("f");

list2.add("g");

list2.add("h");

//获取集合2的迭代器

Iteratorit=list2.iterator();

//遍历集合2

while(it.hasNext())

{

Stringstr=(String)it.next();

//如果不包含就向集合1添加此元素

if(!

list1.contains(str))

{

list1.add(str);

}

}

System.out.println(list1);

}

}

/////////////////////////////////////////////////////////////////////

"3

/*

题目:

已知文件a.txt文件中的内容为“bcdeadferwplkou”,请编写程序读取该文件内容,

并按照自然排序顺序后输出到b.txt文件中。

即b.txt文件内容应为"abc......"这样的顺序

思路:

1、先将a.txt文件内容读取出来并存到字符数组中

2、用Arrays.sort(字符数组)将这个字符数组排序

3、将字符数组输出到b.txt文件中

*/

importjava.io.IOException;

importjava.io.File;

importjava.io.BufferedReader;

importjava.io.BufferedWriter;

importjava.io.FileReader;

importjava.io.FileWriter;

importjava.util.Arrays;

classReadFileAndSortString{

publicstaticvoidmain(Stringargs[])throwsIOException

{

//封装数据源及目的地File

Filea=newFile("a.txt");

Fileb=newFile("b.txt");

//高效字符输入流得到数据源

BufferedReaderbr=newBufferedReader(newFileReader(a));

//高效字符输出流得到目的地

BufferedWriterbw=newBufferedWriter(newFileWriter(b));

Stringline=null;

//循环读取文件

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

=null)

{

//得到读取一行字符串的长度

intlen=line.length();

char[]chrs=newchar[len];

//转换成字符数组

chrs=line.toCharArray();

//通过Arrays的sort方法排序

Arrays.sort(chrs);

System.out.println("字符串:

"+newString(chrs));

//写到文件中

bw.write(chrs);

bw.newLine();

//刷新缓冲区

bw.flush();

}

//关闭资源

br.close();

bw.close();

System.out.println("复制成功");

}

}

/////////////////////////////////////////////////////////////////////

"4

/*

题目:

编写一个程序,将指定目录下所有.java文件拷贝到另一个目录中,

并将扩展名改为.txt

思路:

1、用File对象封装目录

2、通过listFiles()方法获取该目录下所有的文件或者文件夹的File对象数组

3、遍历这个File数组,得到每一个File对象

4、判断该File对象是否是文件

a、如果是文件

b、继续判断是否以.java结尾

是:

先改名后复制文件

否:

不复制

*/

//导包

importjava.io.IOException;

importjava.io.File;

importjava.io.BufferedInputStream;

importjava.io.BufferedOutputStream;

importjava.io.FileInputStream;

importjava.io.FileOutputStream;

classTest

{

publicstaticvoidmain(String[]args)throwsIOException

{

//用File对象封装目录

Filesrcfile=newFile("D:

\\demos\\");

//用File对象封装目录

FiledestFile=newFile("D:

\\copyTo\\");

//调用复制的方法

copyFile(srcfile,destFile);

}

//复制方法

publicstaticvoidcopyFile(FilesrcFile,FiledestFile)throwsIOException

{

//通过listFiles()方法获取该目录下所有的文件或者文件夹的File对象数组

File[]fileArray=srcFile.listFiles();

//遍历这个File数组,得到每一个File对象

for(Filefile:

fileArray)

{

//判断该File对象是否是文件

if(file.isFile())

{

//如果不是以java为后缀的不复制,执行下次循环

if(!

file.getName().endsWith(".java"))

{

continue;

}

//新文件File对象//复制前改名

FilenewFile=newFile(destFile,file.getName().replace(".java",".txt"));

//用高效的字节输入流封装数据源

BufferedInputStreambis=newBufferedInputStream(newFileInputStream(file));

//用高效的字节输出流封装目的地

BufferedOutputStreambos=newBufferedOutputStream(newFileOutputStream(newFile));

byte[]bys=newbyte[1024];

intlen=0;

//判断是否读到文件结尾

while((len=bis.read(bys))!

=-1)

{

//将数据写到文件中

bos.write(bys,0,len);

//刷新缓存流

bos.flush();

}

//关闭流对象

bis.close();

bos.close();

}

}

}

}

///////////////////////////////////////////////////////////

"5

/*

题目1:

将项目路径下java_all目录下所有的.java文件复制到项目路径下Java_jad

文件夹下,并将文件名从原来的.java修改成.jad*/

"******************************************************************************

/*题目2:

编写一个程序,把一个目录里边的所有带.java文件拷贝到另一个目录中,

拷贝成功后,把后缀名是.java的文件改为.txt文件。

(注意事项:

是先拷贝,

拷贝成功后才可以改后缀名的)*/

"(★将以下代码改改路径和扩展名即可★)

/*

思路:

1、用File对象封装目录

2、通过listFiles()方法获取该目录下所有的文件或者文件夹的File对象数组

3、遍历这个File数组,得到每一个File对象

4、判断该File对象是否是文件

a、如果是文件

b、继续判断是否以.java结尾

是:

复制文件

在复制完成后改名

否:

不复制

*/

//导包

importjava.io.IOException;

importjava.io.File;

importjava.io.BufferedInputStream;

importjava.io.BufferedOutputStream;

importjava.io.FileInputStream;

importjava.io.FileOutputStream;

classFileCopySingleFolderByByte

{

publicstaticvoidmain(String[]args)throwsIOException

{

//用File对象封装目录

Filesrcfile=newFile("D:

\\demos\\");

//用File对象封装目录

FiledestFile=newFile("D:

\\copyTo\\");

//调用复制的方法

copyFile(srcfile,destFile);

}

//复制方法

publicstaticvoidcopyFile(FilesrcFile,FiledestFile)throwsIOException

{

//通过listFiles()方法获取该目录下所有的文件或者文件夹的File对象数组

File[]fileArray=srcFile.listFiles();

//遍历这个File数组,得到每一个File对象

for(Filefile:

fileArray)

{

//判断该File对象是否是文件

if(file.isFile())

{

//如果不是以java为后缀的不复制,执行下次循环

if(!

file.getName().endsWith(".java"))

{

continue;

}

//新文件

FilenewFile=newFile(destFile,file.getName());

//用高效的字节输入流封装数据源

BufferedInputStreambis=newBufferedInputStream(newFileInputStream(file));

//用高效的字节输出流封装目的地

BufferedOutputStreambos=newBufferedOutputStream(newFileOutputStream(newFile));

byte[]bys=newbyte[1024];

intlen=0;

//判断是否读到文件结尾

while((len=bis.read(bys))!

=-1)

{

//将数据写到文件中

bos.write(bys,0,len);

//刷新缓存流

bos.flush();

}

//关闭流对象

bis.close();

bos.close();

//得到新文件名

StringnewName=newFile.getName().replace(".java",".txt");

//根据新文件名创建新文件对象

FiletempFile=newFile(destFile,newName);

//改名

newFile.renameTo(tempFile);

}

}

}

}

/////////////////////////////////////////////////////////////////////

"6

/*

题目:

统计一个文件夹下的txt文件个数,包括所有子文件夹内,

并将它们全部复制到D盘任意目录下

思路:

(★提示★)用高效字节流可以用来复制任意类型文件

1、定义一个统计变量

2、用File对象封装目录

3、通过listFiles()方法获取该目录下所有的文件或者文件夹的File对象数组

4、遍历这个File数组,得到每一个File对象

5、判断该File对象是否是文件夹

a、如果是文件夹回到第3步

b、继续判断是否以.txt结尾

是:

复制文件并将统计文件变量加1

否:

不复制

*/

//导包

importjava.io.IOException;

importjava.io.File;

importjava.io.BufferedInputStream;

importjava.io.BufferedOutputStream;

importjava.io.FileInputStream;

importjava.io.FileOutputStream;

classFileCopyMultiFolderByByte

{

//用来统计复制文件的总个数

publicstaticintcount=0;

publicstaticvoidmain(String[]args)throwsIOException

{

//用File对象封装目录

Filesrcfile=newFile("D:

\\demos\\");

//用File对象封装目录

FiledestFile=newFile("D:

\\copyTo\\");

//调用复制的方法

copyFolder(srcfile,destFile);

System.out.println("文件复制完毕,共复制文件"+count+"个");

}

//复制方法

publicstaticvoidcopyFolder(FilesrcFile,FiledestFile)throwsIOException

{

//通过listFiles()方法获取该目录下所有的文件或者文件夹的File对象数组

File[]fileArray=srcFile.listFiles();

//遍历这个File数组,得到每一个File对象

for(Filefile:

fileArray)

{

//判断该File对象是否是文件夹

if(file.isDirectory())

{

//多级目录递归

copyFolder(file,destFile);

}

else

{

//文件

FilenewFile=newFile(destFile,file.getName());

copyFile(file,newFile);

}

}

}

//复制文件并计数的方法

publicstaticvoidcopyFile(FilesrcFile,FilenewFile)throwsIOException

{

//如果不是以txt为后缀的不复制,跳出循环

if(!

srcFile.getName().endsWith(".txt"))

{

continue;

}

//统计文件个数的变量加1

count++;

//用高效的字节输入流封装数据源

BufferedInputStreambis=newBufferedInputStream(newFileInputStream(srcFile));

//用高效的字节输出流封装目的地

BufferedOutputStreambos=newBufferedOutputStream(newFileOutputStream(newFile));

byte[]bys=newbyte[1024];

intlen=0;

//判断是否读到文件结尾

while((len=bis.read(bys))!

=-1)

{

//将数据写到文件中

bos.write(bys,0,len);

//刷新缓存流

bos.flush();

}

//关闭流对象

bis.close();

bos.close();

}

}

/////////////////////////////////////////////////////////////////////

"7

/*

题目:

创建多线程的方式有几种?

请代码实现

解答:

一共两种。

1、通过实现Runnable接口,重写run()方法

2、通过继承THread类,重写run()方法。

*/

//

classThreadTest

{

publicstaticvoidmain(String[]arg

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > 其它考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1