感谢张琼老师的面试。还要感谢流程中的其他老师。谢谢!
3号问了50期第二批有多少名额。老师说有20个左右。然后我就申请了面试。4号5号准备了两天。
今天9点30,老师发给我2个题,要求半小时完成。
1、把当前文件中的所有文本拷贝,存入一个txt文件,统计每个字符出现的次数并输出,例如:
a: 21 次
b: 15 次
c: 15 次
把: 7 次
当: 9 次
前: 3 次
,:30 次
2、声明一个共享数组,起两个线程,两个线程分别隔一段时间(可以写一个随机数),给数组中添加数据,每一个线程为数组添加3个数据即可。
30多分钟做了第一题。另一题没完成(老师是给时间我们多做会的,我建议能写点什么就多写点。就算你写不出整体思路也可以写点比如implements Runnable{ public void run(){ ... } } 等,然后和老师说不会做。也好过我只写了几个涉及内容的单词sychronized Thread sleep random ,然后和老师说没思路)。
第一题以前就存在电脑上了,只是一直没做。只做过类似的题:“abcdefavzc”以a(2)b(1)c(2)...的形式打印。正巧昨天晚上自己独立把这个题做出来了。但今天写的时候。思路都能写出来。但写代码的时候这搞下那改下。感觉写代码思绪像是在飞一样(SO在最后老师就问了我敲代码敲得多不),好在最后搞出来了。
一运行,目的文件中是乱码。不知道错在了哪。还好昨天做CopyDir时忘了close写入流,有些数据没有刷新到目的中。代码运行正常。却出现了图片显示不全的问题。还好晚上瞅了好久找到了问题。今天这题也是差不多的问题。没写换行newLine();写入到目的中出现的是乱码。这种不报错的问题。简直!还好找到了问题所在。—————所以大家要多注意小细节问题。关流,换行。。。等等
然后老师就问这两题怎么做的。涉及到哪些知识点,还问了反射。暴力反射。集合框架。
最后是自我介绍...
/*
* 分析:
* 1.文本到文本用到读取写入字符流
* 2.获取对应 字符的次数并排序, a: 21 键值关系,可以用TreeMap
*
* 3.读取文本一行每个字符。
* 查找Map是是否存在,不存在put(key,1)不存在就put(key,value+1) 将所有数据都存到Map中
*
* 4.然后在取出Map中元素,写入到目的文本中
* */
import java.io.*;
import java.util.*;
public class Test1 {
public static void main(String[] args) throws Exception{
TreeMap<Character , Integer> tm = new TreeMap<Character , Integer> ();
BufferedReader bufr = new BufferedReader(new FileReader("D:\\Test.txt"));
BufferedWriter bufw = new BufferedWriter(new FileWriter("D:\\Test1.txt"));
String line = null;
while((line=bufr.readLine())!=null){
store(line,tm);// 将每一行数据存入集合中
}
bufr.close();
// 将存在Map集合中的元素取出 ,存入 bufw
Set<Character> keySet = tm.keySet();
Iterator<Character> it = keySet.iterator();
while(it.hasNext()){
Character key = it.next();
Integer value = tm.get(key);
bufw.write(key+": "+value);// 存入目的文本中
bufw.newLine();
}
bufw.close();
}
// 创建读取一行数据的方法 "abcd"
public static void store(String line, TreeMap<Character , Integer> tm){
// 字符串转换为字符数组
char[] ch = line.toCharArray();
// 遍历字符数组,
for(int i=0; i<ch.length; i++){
// 字符作为键,获取值
Character key = ch[i];
Integer value = tm.get(key);
if(value==null){
tm.put(key, 1);
}else
tm.put(key, value+1);
}
}
}
|
|