黑马程序员技术交流社区

标题: 分享一下我面试时候的笔试题(干货) [打印本页]

作者: Sj改变    时间: 2016-5-13 13:48
标题: 分享一下我面试时候的笔试题(干货)
那个第一次面试没有通过的小伙伴又来了,首先说下面试的题目:首先是一个小时做三道编程题:
Test1: * 接收用户输入的一句英文,将其中的单词以反序输出。例如:“I love you” →"I evol uoy"
Test2:* * .定义一个类实现Runnable接口,卖票100张,四个线程,输出格式为“窗口1,还剩10张票”,指定窗口3卖第10张票
Test3: 3.已知一个字符串“ab-cd-ef-g" 根据“-”拆分; 将拆分后得到的数组里面的额元素存放到当前项目跟目录下(number.txt)(以追加的方式)
第二次面试的时候做的题:

可以看出来面试的时候笔试题还是比较简单的。由此可以看出来只要大家认真学习了,就肯定能做出来。
还可以看出来面试题大概集中在IO,多线程,字符串操作哦
之前我来逛论坛的时候都是些水贴,今天我来一发真正有用的帖子,虽然具体实现代码没有给出来,但是相信的大家都能写出来。祝大家面试的时候笔试都恩那个能够快速通过。

ERJE`R$DU[T08J%R~PP6_IJ.jpg (56.12 KB, 下载次数: 48)

面试题

面试题

作者: yaolv7    时间: 2016-5-13 16:58
小郭,你暴露了.....
作者: 一念地狱    时间: 2016-5-13 17:08
谢谢分享,赞个
作者: hycold    时间: 2016-5-13 17:56

谢谢分享,赞个
作者: Belive丶Me    时间: 2016-5-13 21:31
谢谢分享,还得好好学呀
作者: Noodles.    时间: 2016-5-13 22:43
加油,看来面试题真不简单呀
作者: ybqred    时间: 2016-5-13 22:59
赞!!!!
作者: Sj改变    时间: 2016-5-14 01:41
yaolv7 发表于 2016-5-13 16:58
小郭,你暴露了.....

小郭是谁?
作者: Sj改变    时间: 2016-5-14 01:42
yaolv7 发表于 2016-5-13 16:58
小郭,你暴露了.....

小郭是谁。。。。。。。
作者: Sj改变    时间: 2016-5-14 01:44
Noodles. 发表于 2016-5-13 22:43
加油,看来面试题真不简单呀

干货总是没人关注,哪里哭去
作者: Sj改变    时间: 2016-5-14 01:45
Belive丶Me 发表于 2016-5-13 21:31
谢谢分享,还得好好学呀

加油,我可以你也可以
作者: Sj改变    时间: 2016-5-14 01:48
Noodles. 发表于 2016-5-13 22:43
加油,看来面试题真不简单呀

挺简单的,一开始我的重点也没在写代码上,后来开始刷面是题,才把知识都联系起来
作者: Sj改变    时间: 2016-5-14 01:49
hycold 发表于 2016-5-13 17:56
谢谢分享,赞个

干货总是这么受冷落,论坛气氛真的很不好
作者: 酉良君    时间: 2016-5-14 09:21
看来面试题还得刷
作者: fanlelong    时间: 2016-5-14 13:03
发现黑马出的点招题目就那么几种,
作者: 我有上将潘凤    时间: 2016-5-14 22:28
谢谢分享,赞个
作者: w1001566    时间: 2016-5-15 13:26
买火车票怎么让窗口3线程卖的是第是张票,zs和ls 羽毛球兵乓球怎么让线程执行6次就结束?
作者: 纠结帝    时间: 2016-5-15 13:30
看不清啊              
作者: 何亚辉    时间: 2016-5-15 14:20
w1001566 发表于 2016-5-15 13:26
买火车票怎么让窗口3线程卖的是第是张票,zs和ls 羽毛球兵乓球怎么让线程执行6次就结束? ...


class Play {
        public static void main(String[] args){
                Window w = new Window();
                new Thread(w,"窗口1").start();
                new Thread(w,"窗口2").start();
                new Thread(w,"窗口3").start();
                new Thread(w,"窗口4").start();

       
        }
}

class Window implements Runnable {
                int a =100;
                public void run(){
                while (a>=0) {
                       
                        Thread t = Thread.currentThread();
                        if (a==10&&!t.getName().equals("窗口3")) {
                                continue;
                               
                               
                        }
                        System.out.println(t.getName()+"还剩"+a-- +"张票");
                       
                }
                }
}


我是这样做的,,,如果别的窗口来卖第3张票就跳过,,,,
作者: w1001566    时间: 2016-5-15 16:02
何亚辉 发表于 2016-5-15 14:20
class Play {
        public static void main(String[] args){
                Window w = new Window();

大神,拿你代码看了下
问题1:窗口3卖第十张票,不是卖剩余的第十张票
问题2:没有同步代码块,票号不按顺序卖,可能会先卖99再卖100
加了同步同步代码块会出现负数的票
作者: 何亚辉    时间: 2016-5-15 17:33
w1001566 发表于 2016-5-15 16:02
大神,拿你代码看了下
问题1:窗口3卖第十张票,不是卖剩余的第十张票
问题2:没有同步代码块,票号不按 ...

没学到同步代码块,,,,,,刚接触线程
作者: Sj改变    时间: 2016-5-15 20:03
w1001566 发表于 2016-5-15 16:02
大神,拿你代码看了下
问题1:窗口3卖第十张票,不是卖剩余的第十张票
问题2:没有同步代码块,票号不按 ...
  1. public class Test2 {
  2.         public static void main(String[] args) {
  3.                 Tickets tickets = new Tickets();
  4.                 Thread t1 = new Thread(tickets, "窗口1");
  5.                 Thread t2 = new Thread(tickets, "窗口2");
  6.                 Thread t3 = new Thread(tickets, "窗口3");
  7.                 Thread t4 = new Thread(tickets, "窗口4");

  8.                 t1.start();
  9.                 t2.start();
  10.                 t3.start();
  11.                 t4.start();
  12.         }
  13. }

  14. class Tickets implements Runnable {
  15.         private int num = 100;
  16.         @Override
  17.         public void run() {
  18.                 while (true) {
  19.                         synchronized (this) {
  20.                                 if (num != 10 && num > 0) {
  21.                                         num--;
  22.                                         System.out.println(Thread.currentThread().getName() + ",还剩" + num + "票");

  23.                                 } else if (num == 10 && Thread.currentThread().getName().equals("窗口3")) {
  24.                                         num--;
  25.                                         System.out.println(Thread.currentThread().getName() + ",还剩" + num + "票");
  26.                                 }
  27.                                 else{
  28.                                         break;
  29.                                 }
  30.                         }
  31.                 }
  32.         }
  33. }
复制代码

简单的翻译一下,题目就好不要想的太多。这是我写的答案,你可以参考一下
作者: Sj改变    时间: 2016-5-15 20:09
w1001566 发表于 2016-5-15 13:26
买火车票怎么让窗口3线程卖的是第是张票,zs和ls 羽毛球兵乓球怎么让线程执行6次就结束? ...
  1. package com.itheima.Demo;

  2. import java.util.Random;

  3. public class Test1 {
  4.         public static void main(String[] args) {
  5.                 String[] str = {"爬山","游泳","羽毛球","乒乓球","网球"};
  6.                 todo  something = new todo(str);
  7.                 new Thread(something,"ls").start();;
  8.                 new Thread(something,"zs").start();;
  9.         }
  10. }
  11. class todo implements Runnable{
  12.         private String[] str;
  13.         //把num定义为私有成员变量,保证了多个线程值操作以个num 当有一个线程,num等与6的时候就会结束。
  14.         private int num = 0;
  15.         private Random r =  new Random();
  16.         public todo(String[] str){
  17.                 this.str = str;
  18.         }
  19.        
  20.         @Override
  21.         public void run() {
  22.                 while(num < 6){
  23.                         synchronized(this){
  24.                                 if(num<6){
  25.                                        
  26.                                         int i = r.nextInt(str.length);
  27.                                         String name = Thread.currentThread().getName();
  28.                                         System.out.println(name + "要去" + str[i]);
  29.                                         num++;
  30.                                         try {
  31.                                                 this.wait(10);
  32.                                         } catch (InterruptedException e) {
  33.                                                 e.printStackTrace();
  34.                                         }
  35.                                 }
  36.                         }
  37.                 }       
  38.         }       
  39. }
复制代码

作者: Sj改变    时间: 2016-5-15 20:17
纠结帝 发表于 2016-5-15 13:30
看不清啊

。。。使劲看,帖子最后有个一大图呢,那个应该能看清
作者: 729524251    时间: 2016-5-15 21:32
还没有学到线程,但是看着感觉好难啊
作者: Sj改变    时间: 2016-5-15 22:07
729524251 发表于 2016-5-15 21:32
还没有学到线程,但是看着感觉好难啊

线程在基础班的这些知识应该是挺简单了
作者: sasyun    时间: 2016-5-15 22:08
感谢分享
作者: zhoubinjian    时间: 2016-6-1 09:50
朋友,你进入就业班了吧,,,题目好简单。。
作者: SkyBlack    时间: 2016-6-1 10:13
谢谢,非常感谢
作者: demon凯    时间: 2016-6-2 16:32
谢谢分享   很有用啊
作者: demon凯    时间: 2016-6-2 17:02
楼主 笔试题是现场写代码吗。
作者: 阿云    时间: 2016-6-7 21:17
第二次面试 还会问那些个人信息、家庭情况、性格特点么
还需要再自我介绍一遍么
  望告知
作者: 戎马生涯    时间: 2016-6-7 22:46
谢谢分享!还需多努力~~~
作者: lionc123    时间: 2016-6-7 22:57
666,我还没学到呢,不过看看也好
作者: tianzhu2725    时间: 2016-6-7 23:04
谢谢分享很有用
作者: jianhua0798    时间: 2016-6-7 23:12
收藏下 ,顶个
作者: java小白怕不    时间: 2016-6-8 00:14
[b] 感觉 好难得样子




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