黑马程序员技术交流社区

标题: 面试结束,总结一下 [打印本页]

作者: 晓恣晴空    时间: 2014-10-13 16:10
标题: 面试结束,总结一下
先是写了一个题,题目如下写一个txt文档(全是字母),读取txt文档的内容,统计各个字母的个数,并把统计情况保存到一个a.txt文档里
具体代码应该论坛能够搜索到,因为这是一个测试题,应该算是中等难度

其他问题
1、说说集合框架结构?


2、如何获取字节码?



3、如何创建线程?


4、线程的状态


5、关闭和刷新的区别


6、说说sleep,wait这两个关键字。sleep的时间单位是什么?


7、对于反射的理解


8、其他的应该都是些细节问题,随后总结


答案,会稍后发布,现在技术分不够,求加分啊!

作者: 杨佳名    时间: 2014-10-13 16:20
哪天分配名额?楼主分很急我知道,但之后也别水帖,学习了这么多肯定有很多能帮到周围的人。只要是尽力帮我看到后不会吝啬加分的。若这样,最后还是不够,我可以把我的黑马币补给你。因为需保证公平,楼主就先想着尽自己的力量帮助更多人就好了。
作者: 晓恣晴空    时间: 2014-10-13 16:22
杨佳名 发表于 2014-10-13 16:20
哪天分配名额?楼主分很急我知道,但之后也别水帖,学习了这么多肯定有很多能帮到周围的人。只要是尽力帮我 ...

嗯,我知道不能水贴的,所以都是在发技术类的,包括自己曾经记录的笔记,希望能够帮到别人吧
作者: 晓恣晴空    时间: 2014-10-13 16:24
本帖最后由 晓恣晴空 于 2014-10-13 16:25 编辑

还是先把答案贴出来public class Test01 {

        /**
         * 写一个txt文档(全是字母),读取txt文档的内容,统计各个字母的个数,并把统计情况保存到一个a.txt文档里
         * @param args
         */
        public static void main(String[] args) {
                File fileName=new File("src.txt");
                File toFileName=new File("dest.txt");
               
                countFunc(fileName,toFileName);

        }
        public static void countFunc(File fileName,File toFileName){
                BufferedReader br=null;
                BufferedWriter bw=null;
                FileInputStream fi;
                try {
                        fi = new FileInputStream(fileName);
                        InputStreamReader is= new InputStreamReader(fi, "GBK");
                        br=new BufferedReader(is);
                        
                        TreeMap<Character,Integer> tm=new TreeMap<Character, Integer>();
                        
                        String line=null;
                        
                        while((line=br.readLine())!=null){
                                char[] ch=line.toCharArray();
                                for(int i=0;i<ch.length;i++){
                                        if(tm.containsKey(ch)){
                                                tm.put(ch, tm.get(ch)+1);
                                        }else{
                                                tm.put(ch, 1);        
                                        }
                                }
                        }
                        FileOutputStream fs=new FileOutputStream(toFileName);
                        OutputStreamWriter ow=new OutputStreamWriter(fs,"GBK");
                        bw=new BufferedWriter(ow);
                        
                        Set<Map.Entry<Character,Integer>> entrySet=tm.entrySet();
                        Iterator<Map.Entry<Character,Integer>> it=entrySet.iterator();
                        while(it.hasNext()){
                                Map.Entry<Character,Integer> me=it.next();
                                Character key=me.getKey();
                                Integer value=me.getValue();
                                
                                bw.write(key+":出现了"+value+"次");
                                bw.newLine();
                                bw.flush();
                        }
                        System.out.println();
                } catch (FileNotFoundException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                } catch (UnsupportedEncodingException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                }finally{
                        try{
                                if(br!=null){
                                        br.close();
                                }
                        }catch(IOException e){
                                System.out.println("读取流关闭失败");
                        }
                        try{
                                if(bw!=null){
                                        bw.close();
                                }
                        }catch(IOException e){
                                System.out.println("写入流关闭失败");
                        }
                }
        }
}


写的比较仓促,不完善,后期修改吧

作者: 晓恣晴空    时间: 2014-10-13 16:26
本帖最后由 晓恣晴空 于 2014-10-13 16:29 编辑

第一个
集合框架主要是Collection框架。
Collection接口下面有三个子接口:List,Set,Map
List 接口是有序的,可重复的,有角标。
Set 接口是无序的,不可以重复。
Map 接口里面存放的是键值对形式存在。

List 接口下面有3个子类对象:ArrayList,LinkedList,Vector.
ArrayList和Vector的内部结构是数组,Vector是同步的,里面有一个枚举类型,
Arraylist是线程不同步的,Arraylist判断元素唯一性的依据是equals方法,并且Arraylist取代了vector。
Linkedlist :内部结构是链表。

Set 接口下面有2个子类:HashSet和TreeSet
HashSet:内部结构是哈希表,判断元素唯一性的依据首先是HahsCode,然后是equals。
TreeSet:内部结构是二叉树,判断元素唯一性的依据是CompareTo的return 方法。

Map:接口有3个子类对象Hahshtable、HahsCode、TreeMap
Hashtable和HashCode内部结构都是哈希表,
TreeMap的内部结构是二叉树。
第二个
获取字节码有3中方式:一:类名.class;二:对象名.getClass();三:Class.forName("类名");
第三个
创建线程有2种方式:一:继承Thread类;二:实现Runnable接口;还有一种通过线程池executor.newSingleThreadPloo();而且都必须覆盖run()方法。
第四个


作者: 晓恣晴空    时间: 2014-10-13 16:56
卢仪敏 发表于 2014-10-13 16:54
你是报多少期的

48:(差好多技术分啊
作者: 晓恣晴空    时间: 2014-10-13 16:59
杨佳名 发表于 2014-10-13 16:20
哪天分配名额?楼主分很急我知道,但之后也别水帖,学习了这么多肯定有很多能帮到周围的人。只要是尽力帮我 ...

今天下午6点之前:(不知道能不能来得及呢
作者: 杨佳名    时间: 2014-10-13 17:04
晓恣晴空 发表于 2014-10-13 16:59
今天下午6点之前不知道能不能来得及呢

因为公平,不能给技术分了。相当于借你的,之后帮助更多人吧
作者: 晓恣晴空    时间: 2014-10-13 17:05
杨佳名 发表于 2014-10-13 17:04
因为公平,不能给技术分了。相当于借你的,之后帮助更多人吧

嗯嗯,谢谢,以后会帮助更多人的
作者: 天弓    时间: 2014-10-13 17:13
都是重点,呵呵
作者: 晓恣晴空    时间: 2014-10-13 17:15
天弓 发表于 2014-10-13 17:13
都是重点,呵呵

会陆续将答案补充完整的
作者: 心之信子    时间: 2014-10-13 17:17
很好呀。。。。。。。。。。。。。。。
作者: 九零零    时间: 2014-10-13 17:48
这发帖时间才一个小时。。。大家就把分给你送够了,黑马学员都太友爱了,感动。。。
作者: sk0806    时间: 2014-10-13 18:00
谢谢楼主啊,,大家就应该互相帮助,总结的很好,copy走,,,看你黑马币技术分分现在够了,也不是土豪,不给了哈,有需要的,随时可以
作者: 懒羊羊    时间: 2014-10-13 18:34
这是面试题?
作者: 懒羊羊    时间: 2014-10-13 18:35
话说后付款只能 考进前5吗,那岂不是一个班70人65个人都要先交钱
目前没那么多钱怎么办
作者: 任献东    时间: 2014-10-13 19:26
70个人里只有前5名才能后付款么?
作者: 雨夜忧伤    时间: 2014-10-13 20:00
技术分不够?
作者: wyf20106    时间: 2014-10-13 20:15
谢谢分享!!
作者: Doit    时间: 2014-10-13 21:52
谢谢分享!
作者: 在学野马    时间: 2014-10-13 22:02
楼主被录取了吗
作者: MeryStyle    时间: 2014-10-13 23:53
赞一个!!
作者: alpha.huai    时间: 2014-10-14 00:31
题目 关闭和刷新的区别 什么意思没懂....
作者: 晓恣晴空    时间: 2014-10-14 10:08
alpha.huai 发表于 2014-10-14 00:31
题目 关闭和刷新的区别 什么意思没懂....

这个是IO流里面的,close()关闭此流,但要先刷新它。flush()刷新该流的缓冲。
作者: kakasa    时间: 2014-10-14 17:14
挺佩服楼主心里素质好,技术分没满,照样走流程,
作者: MeryStyle    时间: 2014-10-17 16:55
赞楼主!lz 这期的后付费的录取分数是多少啊?
作者: 黄小橙    时间: 2014-10-18 08:52
谢谢分享
作者: kid1943    时间: 2014-10-18 09:16
谢谢撸主啊




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2