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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 左建飞 中级黑马   /  2012-8-11 19:09  /  1719 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在张老师的银行调度管理系统的代码中,
  1. package cn.itcast.bankqueue;

  2. import java.util.Random;
  3. import java.util.concurrent.Executors;
  4. import java.util.logging.Logger;

  5. /**
  6. * 没有把VIP窗口和快速窗口做成子类,是因为实际业务中的普通窗口可以随时被设置为VIP窗口和快速窗口。
  7. * */
  8. public class ServiceWindow {
  9.         private static Logger logger = Logger.getLogger("cn.itcast.bankqueue");//这个Logger是什么作用?
  10.         private CustomerType type = CustomerType.COMMON;
  11.         private int number = 1;

  12.         public CustomerType getType() {
  13.                 return type;
  14.         }

  15.         public void setType(CustomerType type) {
  16.                 this.type = type;
  17.         }
  18.        
  19.         public void setNumber(int number){
  20.                 this.number = number;
  21.         }
  22.        
  23.         public void start(){
  24.                 Executors.newSingleThreadExecutor().execute(
  25.                                 new Runnable(){
  26.                                         public void run(){
  27.                                                 //下面这种写法的运行效率低,最好是把while放在case下面。是在每个case中都写一个while(true)么?这是为什么呢?
  28.                                                 while(true){
  29.                                                         switch(type){
  30.                                                                 case COMMON:
  31. //while(true){
  32.                                                                         commonService();
  33.                                                                         break;
  34. //}
  35.                                                                 case EXPRESS:
  36.                                                                         expressService();
  37.                                                                         break;
  38.                                                                 case VIP:
  39.                                                                         vipService();
  40.                                                                         break;
  41.                                                         }
  42.                                                 }
  43.                                         }
  44.                                 }
  45.                 );
  46.         }
复制代码
只粘了这个类中的一部分代码,但方法是完整的,应该够了。望高手解答。

1 个回复

倒序浏览
java.util.logging   类 Logger
Logger 对象用来记录特定系统或应用程序组件的日志消息。一般使用圆点分隔的层次命名空间来命名 Logger。Logger 名称可以是任意的字符串,但是它们一般应该基于被记录组件的包名或类名,如 java.net 或 javax.swing。此外,可以创建“匿名”的 Logger,其名称未存储在 Logger 命名空间中。

可通过调用某个 getLogger 工厂方法来获得 Logger 对象。这些方法要么创建一个新 Logger,要么返回一个合适的现有 Logger。

日志消息被转发到已注册的 Handler 对象,该对象可以将消息转发到各种目的地,包括控制台、文件、OS 日志等等。

每个 Logger 都跟踪一个“父”Logger,也就是 Logger 命名空间中与其最近的现有祖先

static Logger         getLogger(String name)
          为指定子系统查找或创建一个 logger。
最好是把while放在case下面。是在每个case中都写一个while(true)么?这是为什么呢?
这个问题,你可以从程序运行,来分析啊?找出,他们运行的,区别啊。

这个项目我还没看,不知道具体功能,
感觉while (true)这里感觉有点,多余,

但是,要写的话也是写在,case的下边的。。


点评

while(true)就是线程中的循环么。就是让线程不停的循环执行。张老师的注释写的“下面这种写法的运行效率低,最好是把while放在case下面。”我不懂为啥  发表于 2012-8-11 20:20
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马