A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

那个第一次面试没有通过的小伙伴又来了,首先说下面试的题目:首先是一个小时做三道编程题:
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, 下载次数: 49)

面试题

面试题

36 个回复

正序浏览
[b] 感觉 好难得样子
回复 使用道具 举报
收藏下 ,顶个
回复 使用道具 举报
谢谢分享很有用
回复 使用道具 举报
666,我还没学到呢,不过看看也好
回复 使用道具 举报
谢谢分享!还需多努力~~~
回复 使用道具 举报
第二次面试 还会问那些个人信息、家庭情况、性格特点么
还需要再自我介绍一遍么
  望告知
回复 使用道具 举报
楼主 笔试题是现场写代码吗。
回复 使用道具 举报
谢谢分享   很有用啊
回复 使用道具 举报
谢谢,非常感谢
回复 使用道具 举报
朋友,你进入就业班了吧,,,题目好简单。。
回复 使用道具 举报
感谢分享
回复 使用道具 举报
729524251 发表于 2016-5-15 21:32
还没有学到线程,但是看着感觉好难啊

线程在基础班的这些知识应该是挺简单了
回复 使用道具 举报
还没有学到线程,但是看着感觉好难啊
回复 使用道具 举报

。。。使劲看,帖子最后有个一大图呢,那个应该能看清
回复 使用道具 举报
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. }
复制代码
回复 使用道具 举报 1 0
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. }
复制代码

简单的翻译一下,题目就好不要想的太多。这是我写的答案,你可以参考一下
回复 使用道具 举报
w1001566 发表于 2016-5-15 16:02
大神,拿你代码看了下
问题1:窗口3卖第十张票,不是卖剩余的第十张票
问题2:没有同步代码块,票号不按 ...

没学到同步代码块,,,,,,刚接触线程
回复 使用道具 举报
何亚辉 发表于 2016-5-15 14:20
class Play {
        public static void main(String[] args){
                Window w = new Window();

大神,拿你代码看了下
问题1:窗口3卖第十张票,不是卖剩余的第十张票
问题2:没有同步代码块,票号不按顺序卖,可能会先卖99再卖100
加了同步同步代码块会出现负数的票
回复 使用道具 举报
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张票就跳过,,,,
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马