java 学习银行调度学习笔记
来源:互联网 发布:如何分析大数据 编辑:程序博客网 时间:2024/05/17 09:04
------- android培训、java培训、期待与您交流! ----------
看了张老师讲的系统后,我觉得我的眼界增长了很多。和交通灯系统一样,它也实现了一个单例。看来单例真的很重要。在银行调度系统中,含有3个应用逻辑类,2个辅助类,一个测试类。在NumberManager类中我们模拟的是产生号码。在NumberMachine中,我们模拟的是银行那个管理号码的机器,里面有3个NumberManager,分别是CommonManger,ExpressManger和VIPmanger.在ServiceWindow中我们模拟的是银行窗口的服务过程,快速和vip窗口空闲时作为普通窗口提供服务。Constans和CustomerType是两个辅助类,一个用来存储变量,一个重写了toString方法,使之返回中文更加贴近我们的生活习惯。
//号码产生类,用一个集合的add()和remove()方法来模拟取号,add()对应的是顾客取号,remove()对应的是银行工作人员需要服务的号码。
//在这个类中还用到了1.5的新特性自动打包功能。因为这顾客取号和工作人员得到号的过程是平行的,所以我们得用加锁来控制不让两个线程
1:同一个资源(比如变量)就会引起冲突,而线程同步synchronized恰当的解决了这个问题
public class numbermanager {
private int lastnumber = 0;
private list queuenumbers = new arraylist();
public synchronized integer generatenewnumber(){
queuenumbers.add(++lastnumber);
return lastnumber;
}
public synchronized integer fetchnumber(){
if(queuenumbers.size()>0){
return (integer)queuenumbers.remove(0);
}else{
return null;
}
}
}
(自己没注意,看视频是猛然发现的,自己的敏感度不高)
2:要注意极限值:
在数组或者是反省集合中容易犯的错
public synchronized integer fetchnumber(){
if(queuenumbers.size()>0){
return (integer)queuenumbers.remove(0);
}else{
return null;
}
}
在没有判读size的情况下就容易数组越界异常
要享受自己编写代码是的感觉,要欣赏自己编写的代码,若果自己就瞧不起,就是难办了
编程要敏感度:
3:画图分析法:
画图分析该系统的对象关系
(在交通灯管理系统中张孝祥老师也提到过画图的好处)
4:单实例的创建
public class numbermachine {
private numbermanager commonmanager = new numbermanager();
private numbermanager expressmanager = new numbermanager();
private numbermanager vipmanager = new numbermanager();
public numbermanager getcommonmanager() {
return commonmanager;
}
public numbermanager getexpressmanager() {
return expressmanager;
}
public numbermanager getvipmanager() {
return vipmanager;
}
private numbermachine(){}
private static numbermachine instance = new numbermachine();
public static numbermachine getinstance(){
return instance;
}
}
- java 学习银行调度学习笔记
- 学习笔记-----------------------银行调度系统
- 学习笔记--银行调度系统
- 黑马程序员-----------银行调度系统学习笔记
- 学习日记-银行调度
- 黑马程序员—24—java面试:有关银行调度学习笔记和学习心得体会
- 黑马程序员高级视频学习笔记银行调度系统
- 黑马程序员_银行调度系统学习笔记
- 关于银行调度的学习
- 黑马程序员 银行调度管理学习日记
- 黑马程序员银行调度系统学习日记
- 黑马程序员-----银行调度系统学习日志
- JAVA学习--银行系统
- 2.10学习笔记 java任务调度
- Spring学习笔记 调度
- 进程调度学习笔记
- Java学习笔记(银行业务调度系统学习)
- java学习 银行管理系统
- 计算机网络面试常考
- python foreword
- c#MVC文件(图片,word,excel,zip等)批量上传
- armeabi,armeabi-v7a,x86,mips,arm64-v8a,mips64,x86_64下的so文件
- NGUI基本控件制作
- java 学习银行调度学习笔记
- 什么是seo
- Datatable导出到Execl中
- C语言数据定义长度 16位、32位、64位
- document.documentElement与document.body
- 《Xilinx可编程逻辑器件设计与开发(基础篇)》连载13:Spartan-6的BRAM(Block RAM)模块
- HDOJ-5446 Clarke and problem(DP)
- SQL Server
- c指针加减值得问题