Java笔试题共23题(附答案)
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4、遍历第二个集合,并用第一个集合判断是否包含第一个
集合的元素,如果不包含就向集合一添加元素
5、打印集合1,就是想要的结果
*/
//导包
import java.util.List;
import java.util.ArrayList;
import java.util.Iterator;
class Test {
import java.io.File;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.util.Arrays;
System.out.println(str+"---"+map.get(str));
}
System.out.println("----------------------");
//获取map的键值对集合
Set<Entry<String, String>> mset = map.entrySet();
}
}
System.out.println(list1);
}
}
/////////////////////////////////////////////////////////////////////
"3
/*
题目:
已知文件a.txt文件中的内容为“bcdeadferwplkou”,请编写程序读取该文件内容,
//高效字符输入流得到数据源
BufferedReader br = new BufferedReader(new FileReader(a));
//高效字符输出流得到目的地
BufferedWriter bw = new BufferedWriter(new FileWriter(b));
String line =null;
/*题目2:
两个集合{“a”,“b”,“c”,“d”,“e”}和{“d”,“e”,“f”,“g”,“h”},
把这两个集合去除重复项合并成一个
思路:
这道题主要是考察集合的知识的,可以用ArrayList解决问题
1、先创建这两个集合
2、向这两个集合分别添加元素
3、用第二个集合的调用iterator()方法获取Iterator对象
{
//用File对象封装目录
File srcfile = new File("D:\\demos\\");
//用File对象封装目录
File destFile = new File("D:\\copyTo\\");
//调用复制的方法
copyFile(srcfile,destFile);
}
//复制方法
//循环读取文件
while((line = br.readLine())!=null)
{
//得到读取一行字符串的长度
int len = line.length();
char[] chrs = new char[len];
//转换成字符数组
chrs = line.toCharArray();
//通过Arrays的sort方法排序
//循环遍历键值对集合
for(Entry<String, String> me : mset)
{
//用键值对对象分别获取键和值
System.out.println(me.getKey()+"---"+me.getValue());
}
System.out.println("----------------------");
//用高效的字节输出流封装目的地
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(newFile));
byte[] bys= new byte[1024];
int len = 0;
//判断是否读到文件结尾
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
class Test
{
public static void main(String[] args) throws IOException
1发现组合的最小长度是单个字符且就是原始字符串的每个字符而最长长度则和字符串一2每行新组合都是在前一行ih组合的基础上将每个ih组合打原始字符串中每个不同字符单独组合一次获得新组合3新一行组合有多少个无法马上确定因为都是字符串所以可以先用stringbuilder接收每个新组合最后再切割获得每个新组合publicclasstestpublicstaticvoidmainstringargs调用方法传入字符串showc?abc
import java.util.Map;
class ForMap
{
public static void main(String[] args)
{
//创建一个map对象
HashMap<String,String> map = new HashMap<String,String>();
//向map中添加元素
"5
/*
题目1:
将项目路径下java_all目录下所有的.java文件复制到项目路径下Java_jad
文件夹下,并将文件名从原来的.java修改成.jad*/
"******************************************************************************
//遍历这个File数组,得到每一个File对象
for(File file : fileArray)
{
//判断该File对象是否是文件
if(file.isFile())
{
//如果不是以java为后缀的不复制,执行下次循环
if(!file.getName().endsWith(".java"))
{
continue;
//获取集合2的迭代器
Iterator it = list2.iterator();
//遍历集合2
while(it.hasNext())
{
String str = (String) it.next();
//如果不包含就向集合1添加此元素
if(!list1.contains(str))
{
list1.add(str);
Arrays.sort(chrs);
System.out.println("字符串:"+new String(chrs));
//写到文件中
bw.write(chrs);
bw.newLine();
//刷新缓冲区
bw.flush();
}
//关闭资源
br.close();
bw.close();
System.out.println("复制成功");
map.put("A","101");
map.put("B","102");
map.put("C","103");
map.put("D","104");
//获取键的集合
Set<String> set = map.keySet();
//循环遍历键集合
for (String str : set) {
//通过键获取值
}
}
/////////////////////////////////////////////////////////////////////
"4
/*
题目:
编写一个程序,将指定目录下所有.java文件拷贝到另一个目录中,
并将扩展名改为.txt
思路:
1、用File对象封装目录
2、通过listFiles()方法获取该目录下所有的文件或者文件夹的File对象数组
class ReadFileAndSortString {
public static void main(String args[]) throws IOException
{
//封装数据源及目的地File
File a = new File("a.txt");
File b = new File("b.txt");
并按照自然排序顺序后输出到b.txt文件中。即b.txt文件内容应为"abc......"这样的顺序
思路:
1、先将a.txt文件内容读取出来并存到字符数组中
2、用Arrays.sort(字符数组)将这个字符数组排序
3、将字符数组输出到b.txt文件中
*/
import java.io.IOException;
}
}
////////////////////////////////////////////////////////////////////
"2
/*
题目1:
创建ArrayList对象,添加5个元素,使用Iterator遍历输出。*/
"******************************************************************************
list1.add("e");
//创建集合2
List<String> list2 = new ArrayList<String>();
//向集合2添加元素
list2.add("d");
list2.add("e");
list2.add("f");
list2.add("g");
list2.add("h");
public static void copyFile(File srcFile, File destFile) throws IOException
{
//通过listFiles()方法获取该目录下所有的文件或者文件夹的File对象数组
File[] fileArray = srcFile.listFiles();
|----HashSet
|----TreeSet
遍历集合的两种方式:
1、通过获取键的集合,遍历键的集合,通过键获取值
2、通过键值对集合,遍历键值对对象,分别取得键值
*/
import java.util.HashMap;
import java.util.Set;
import java.util.Map.Entry;
3、遍历这个File数组,得到每一个File对象
4、判断该File对象是否是文件
a、如果是文件
b、继续判断是否以.java结尾
是:先改名后复制文件
否:不复制
*/
//导包
import java.io.IOException;
import java.io.File;
import java.io.BufferedInputStream;
/*题目2:
编写一个程序,把一个目录里边的所有带.java文件拷贝到另一个目录中,
拷贝成功后,把后缀名是.java的文件改为.txt文件。(注意事项:是先拷贝,
拷贝成功后才可以改后缀名的)*/
"(★将以下代码改改路径和扩展名即可★)
/*
思路:
1法获取该目录下所有的文件或者文件夹的File对象数组
"★里面有解题思路一样的没有全部解答,仅仅将题目列出,稍微改变即可得出结果★
"笔试题重点,
"1、复制文件
"2、多线程
"3、集合
"4、反射
/////////////////////////////////////////////////////////////////////
"1
/*
Collection集合体系图
while( (len = bis.read(bys)) != -1 )
{
//将数据写到文件中
bos.write(bys,0,len);
//刷新缓存流
bos.flush();
}
//关闭流对象
bis.close();
bos.close();
}
}
}
}
///////////////////////////////////////////////////////////
Collection
|----List元素有序,可重复
|----ArrayList底层数据结构是数组,查询快,增删慢,线程不安全,效率高
|----Vector底层数据结构是数组,查询快,增删慢,线程★安全★,效率低
|----LinkedList底层数据结构是链表,查询慢,增删快,线程不安全,效率高
|----Set元素无序,唯一。
}
//新文件File对象//复制前改名
File newFile = new File(destFile,file.getName().replace(".java",".txt"));
//用高效的字节输入流封装数据源
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file));
public static void main(String args[])
{
//创建集合1
List<String> list1 = new ArrayList<String>();
//向集合1添加元素
list1.add("a");
list1.add("b");
list1.add("c");
list1.add("d");
集合的元素,如果不包含就向集合一添加元素
5、打印集合1,就是想要的结果
*/
//导包
import java.util.List;
import java.util.ArrayList;
import java.util.Iterator;
class Test {
import java.io.File;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.util.Arrays;
System.out.println(str+"---"+map.get(str));
}
System.out.println("----------------------");
//获取map的键值对集合
Set<Entry<String, String>> mset = map.entrySet();
}
}
System.out.println(list1);
}
}
/////////////////////////////////////////////////////////////////////
"3
/*
题目:
已知文件a.txt文件中的内容为“bcdeadferwplkou”,请编写程序读取该文件内容,
//高效字符输入流得到数据源
BufferedReader br = new BufferedReader(new FileReader(a));
//高效字符输出流得到目的地
BufferedWriter bw = new BufferedWriter(new FileWriter(b));
String line =null;
/*题目2:
两个集合{“a”,“b”,“c”,“d”,“e”}和{“d”,“e”,“f”,“g”,“h”},
把这两个集合去除重复项合并成一个
思路:
这道题主要是考察集合的知识的,可以用ArrayList解决问题
1、先创建这两个集合
2、向这两个集合分别添加元素
3、用第二个集合的调用iterator()方法获取Iterator对象
{
//用File对象封装目录
File srcfile = new File("D:\\demos\\");
//用File对象封装目录
File destFile = new File("D:\\copyTo\\");
//调用复制的方法
copyFile(srcfile,destFile);
}
//复制方法
//循环读取文件
while((line = br.readLine())!=null)
{
//得到读取一行字符串的长度
int len = line.length();
char[] chrs = new char[len];
//转换成字符数组
chrs = line.toCharArray();
//通过Arrays的sort方法排序
//循环遍历键值对集合
for(Entry<String, String> me : mset)
{
//用键值对对象分别获取键和值
System.out.println(me.getKey()+"---"+me.getValue());
}
System.out.println("----------------------");
//用高效的字节输出流封装目的地
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(newFile));
byte[] bys= new byte[1024];
int len = 0;
//判断是否读到文件结尾
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
class Test
{
public static void main(String[] args) throws IOException
1发现组合的最小长度是单个字符且就是原始字符串的每个字符而最长长度则和字符串一2每行新组合都是在前一行ih组合的基础上将每个ih组合打原始字符串中每个不同字符单独组合一次获得新组合3新一行组合有多少个无法马上确定因为都是字符串所以可以先用stringbuilder接收每个新组合最后再切割获得每个新组合publicclasstestpublicstaticvoidmainstringargs调用方法传入字符串showc?abc
import java.util.Map;
class ForMap
{
public static void main(String[] args)
{
//创建一个map对象
HashMap<String,String> map = new HashMap<String,String>();
//向map中添加元素
"5
/*
题目1:
将项目路径下java_all目录下所有的.java文件复制到项目路径下Java_jad
文件夹下,并将文件名从原来的.java修改成.jad*/
"******************************************************************************
//遍历这个File数组,得到每一个File对象
for(File file : fileArray)
{
//判断该File对象是否是文件
if(file.isFile())
{
//如果不是以java为后缀的不复制,执行下次循环
if(!file.getName().endsWith(".java"))
{
continue;
//获取集合2的迭代器
Iterator it = list2.iterator();
//遍历集合2
while(it.hasNext())
{
String str = (String) it.next();
//如果不包含就向集合1添加此元素
if(!list1.contains(str))
{
list1.add(str);
Arrays.sort(chrs);
System.out.println("字符串:"+new String(chrs));
//写到文件中
bw.write(chrs);
bw.newLine();
//刷新缓冲区
bw.flush();
}
//关闭资源
br.close();
bw.close();
System.out.println("复制成功");
map.put("A","101");
map.put("B","102");
map.put("C","103");
map.put("D","104");
//获取键的集合
Set<String> set = map.keySet();
//循环遍历键集合
for (String str : set) {
//通过键获取值
}
}
/////////////////////////////////////////////////////////////////////
"4
/*
题目:
编写一个程序,将指定目录下所有.java文件拷贝到另一个目录中,
并将扩展名改为.txt
思路:
1、用File对象封装目录
2、通过listFiles()方法获取该目录下所有的文件或者文件夹的File对象数组
class ReadFileAndSortString {
public static void main(String args[]) throws IOException
{
//封装数据源及目的地File
File a = new File("a.txt");
File b = new File("b.txt");
并按照自然排序顺序后输出到b.txt文件中。即b.txt文件内容应为"abc......"这样的顺序
思路:
1、先将a.txt文件内容读取出来并存到字符数组中
2、用Arrays.sort(字符数组)将这个字符数组排序
3、将字符数组输出到b.txt文件中
*/
import java.io.IOException;
}
}
////////////////////////////////////////////////////////////////////
"2
/*
题目1:
创建ArrayList对象,添加5个元素,使用Iterator遍历输出。*/
"******************************************************************************
list1.add("e");
//创建集合2
List<String> list2 = new ArrayList<String>();
//向集合2添加元素
list2.add("d");
list2.add("e");
list2.add("f");
list2.add("g");
list2.add("h");
public static void copyFile(File srcFile, File destFile) throws IOException
{
//通过listFiles()方法获取该目录下所有的文件或者文件夹的File对象数组
File[] fileArray = srcFile.listFiles();
|----HashSet
|----TreeSet
遍历集合的两种方式:
1、通过获取键的集合,遍历键的集合,通过键获取值
2、通过键值对集合,遍历键值对对象,分别取得键值
*/
import java.util.HashMap;
import java.util.Set;
import java.util.Map.Entry;
3、遍历这个File数组,得到每一个File对象
4、判断该File对象是否是文件
a、如果是文件
b、继续判断是否以.java结尾
是:先改名后复制文件
否:不复制
*/
//导包
import java.io.IOException;
import java.io.File;
import java.io.BufferedInputStream;
/*题目2:
编写一个程序,把一个目录里边的所有带.java文件拷贝到另一个目录中,
拷贝成功后,把后缀名是.java的文件改为.txt文件。(注意事项:是先拷贝,
拷贝成功后才可以改后缀名的)*/
"(★将以下代码改改路径和扩展名即可★)
/*
思路:
1法获取该目录下所有的文件或者文件夹的File对象数组
"★里面有解题思路一样的没有全部解答,仅仅将题目列出,稍微改变即可得出结果★
"笔试题重点,
"1、复制文件
"2、多线程
"3、集合
"4、反射
/////////////////////////////////////////////////////////////////////
"1
/*
Collection集合体系图
while( (len = bis.read(bys)) != -1 )
{
//将数据写到文件中
bos.write(bys,0,len);
//刷新缓存流
bos.flush();
}
//关闭流对象
bis.close();
bos.close();
}
}
}
}
///////////////////////////////////////////////////////////
Collection
|----List元素有序,可重复
|----ArrayList底层数据结构是数组,查询快,增删慢,线程不安全,效率高
|----Vector底层数据结构是数组,查询快,增删慢,线程★安全★,效率低
|----LinkedList底层数据结构是链表,查询慢,增删快,线程不安全,效率高
|----Set元素无序,唯一。
}
//新文件File对象//复制前改名
File newFile = new File(destFile,file.getName().replace(".java",".txt"));
//用高效的字节输入流封装数据源
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file));
public static void main(String args[])
{
//创建集合1
List<String> list1 = new ArrayList<String>();
//向集合1添加元素
list1.add("a");
list1.add("b");
list1.add("c");
list1.add("d");