面试题

交通灯:

从中我们可以知道,在拿到问题是画图来理清思路是一种很好的解决问题的方法

根据来来回回的路其实我们主要是考虑4条路线即可,

从面向对象方面考虑这个系统中有红绿灯、车、路线以及灯的控制系统,路是用来装载车辆的

所以应该有对车辆进行增加和删除的方法,假如灯变绿的时候,我们设定一辆车通过一个路口

为一秒,此时我们可以用线程sleep来控制,这样就有线程来随机的改变车的数量

在JDK1.5提供了一个Executors工厂来产生线程池,这个工厂包涵几个静态的方法来创建线程池

调用Executors类的静态工厂方法创建一个ExecutorService对象。这个对象代表线程池

当不想提交任务是也可调用ExecutorsService对象的shutdown方法关闭线程池

 

其中我们可以想到一条路中的交通灯的数量书固定的所以我们可以用枚举类定义各条路上的灯

可以使用 .valueOf()得到一个枚举对象

以及提供对灯的处理方法(包括变红变绿)去向的灯变红或绿的同时相反方向的灯也应该随之改变

还有判断灯当前状态以及返回状态,设置灯的构造方法并设置私有的

在对灯控制器的定义中应该在构造方法将某条路上的灯初始化;灯控制器中还应该有定时器,

在规定时间内改变当前灯的状态

 

银行业务:

先要对银行业务调度系统进行分析,

银行业务有6个窗口 1-4也普通,5为快速,6为VIP 

这三个类型的窗口也对应了三种客户类型:VIP 普通以及快速客户

要随机生产客户时间间隔以及业务办理时间最大值和最小值的界定

这个系统由一个取号器、三个号码管理器、服务窗口构成。其中取号管理三个号码管理器管理相应客户的号码增减

所以号码管理器有对号码的增减方法,取号管理器中有三个号码管理器的对象以及对这对象提供三个对象的get方法

因为取号器只能有一个所以要把这个取号器的类的构造方法设置成私有的private,在用一个静态的方法返回这个对象

 

还有可以用List类和子类实现一个动态的数组

我们要对线程访问相同的数据进行同步监控,所以给这两个线程加上synchronized关键字

JDK1.5之后产生一个线程可以用产生线程池的方式,即用Executors类,该类的方法可以产生线程池,线程池中可以用指定数量的线程,调用了execute()方法时则会在线程池中挑选一个空闲的线程来执行;

设置主类的时候可以设定三个定时器按照一定的时间产生不同类型的对象,并储存在一个集合中,这样服务窗口可以从集合中

取出对象并打印出服务信息

定义一个用于储存一个客户号码的成员变量和用于储存所有等待服务的客户号码集合还有产生新号码的方法、

这两个方法由不同的线程操作相同数据,所以要用synchronized关键字

定义一个star方法启动线程根据服务窗口的类别分别循环调用三个不同的方法

还要定义常量,可以定义在一个类中

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值