19-黑马程序员—-银行业务调度系统


———————- ASP.Net+Unity开发.Net培训、期待与您交流! ———————-
需求分析:

1.银行内有6个业务窗口,1 – 4号窗口为普通窗口,5号窗口为快速窗口,6号窗口为VIP窗口。
2.有三种对应类型的客户:VIP客户,普通客户,快速客户(办理如交水电费、电话费之类业务的客户)。
3. 异步随机生成各种类型的客户,生成各类型用户的概率比例为:VIP客户 :普通客户 :快速客户 = 1 :6 :3。
4.客户办理业务所需时间有最大值和最小值,在该范围内随机设定每个VIP客户以及普通客户办理业务所需的时间,快速客户办理业务所需时间为最小值(提示:办理业务的过程可通过线程Sleep的方式模拟)。
5.各类型客户在其对应窗口按顺序依次办理业务。
6.当VIP(6号)窗口和快速业务(5号)窗口没有客户等待办理业务的时候,这两个窗口可以处理普通客户的业务,而一旦有对应的客户等待办理业务的时候,则优先处理对应客户的业务。
7.随机生成客户时间间隔以及业务办理时间最大值和最小值自定,可以设置。
8.不要求实现GUI,只考虑系统逻辑实现,可通过Log方式展现程序运行结果。
分析与设计: 继续阅读

18-黑马程序员—-MyEclipse设置和快捷键

1、提示键配置

       一般默认情况下,Eclipse ,MyEclipse 的代码提示功能是比Microsoft Visual Studio的差很多的,主要是Eclipse ,MyEclipse本身有很多选项是默认关闭的,要开发者自己去手动配置。如果开发者不清楚的话,就不知道Eclipse ,MyEclipse的代码提示功能一样能像Microsoft Visual Studio的代码提 示功能一样强大。

      先举个简单的例子说明问题所在,例如在Eclipse ,MyEclipse代码里面,打个foreach,switch等这些,是无法得到代码提示的(不信自己试试),其他的就更不用说了,而在Microsoft Visual Studio 里面是得到非常友好的代码提示的。实际上,Eclipse ,MyEclipse代码里面的代码提示功能默认的一般 是点“.”,一般是有了点“.”,才会有代码提示。  原理:“Auto Activation triggers for java”这个选项就是指触发代码提示的的选项,把“.”改成“.abcdefghijklmnopqrstuvwxyz(,”的意思,就是指遇到26个字母和.,(这些符号就触发代码提 示功能了。增强Eclipse ,MyEclipse 的代码提示功能,具体怎么样来配置? 继续阅读

17-黑马程序员—-深入探讨java泛型机制的实现—-擦除


———————- ASP.Net+Unity开发.Net培训、期待与您交流! ———————-
泛型
是一种安全机制,声明中具有一个或者多个类型参数(type parameter)的类或者接口就是泛型(generic)类或者接口,此外泛型作用在方法上称之为泛型方法。

关于泛型的术语 继续阅读

16-黑马程序员—-交通灯管理系统

 

———————- ASP.Net+Unity开发.Net培训、期待与您交流! ———————-
需求分析:

1、异步随机生成按照各个路线行驶的车辆。

例如:由南向而来去往北向的车辆 —- 直行车辆

由西向而来去往南向的车辆 —- 右转车辆

由东向而来去往南向的车辆 —- 左转车辆

2、信号灯忽略黄灯,只考虑红灯和绿灯。

3、应考虑左转车辆控制信号灯,右转车辆不受信号灯控制。

4、具体信号灯控制逻辑与现实生活中普通交通灯控制逻辑相同,不考虑特殊情况下的控制逻辑。

注:南北向车辆与东西向车辆交替放行,同方向等待车辆应先放行直行车辆而后放行左转车辆。

5、每辆车通过路口时间为1秒(提示:可通过线程Sleep的方式模拟)。

6、随机生成车辆时间间隔以及红绿灯交换时间间隔自定,可以设置。

7、不要求实现GUI,只考虑系统逻辑实现,可通过Log方式展现程序运行结果。

首先确定Road类,每个Road对象,代表一条路线。

该类实现如下: 继续阅读

15-黑马程序员—-注解


———————- ASP.Net+Unity开发.Net培训、期待与您交流! ———————-
注解
为我们在代码中添加信息提供了一种形式化的方法,使我们可以在稍后某个时刻非常方便地使用这些数据。注解可以提供完整的描述程序的所需信息,将元数据保存在java源代码中,通过使用注解我们还可以利用annotation API为自己的注解构造处理工具。

元注解

元注解是指注解的注解。包括  @Retention @Target @Document @Inherited四种。

1.@Retention: 定义注解的保留策略

@Retention(RetentionPolicy.SOURCE)   //注解仅存在于源码中,在class字节码文件中不包含
@Retention(RetentionPolicy.CLASS)     // 默认的保留策略,注解会在class字节码文件中存在,但运行时无法获得,
@Retention(RetentionPolicy.RUNTIME)  // 注解会在class字节码文件中存在,在运行时可以通过反射获取到
2.@Target:定义注解的作用目标

@Target(ElementType.TYPE)   //接口、类、枚举、注解

@Target(ElementType.FIELD) //字段、枚举的常量
@Target(ElementType.METHOD) //方法
@Target(ElementType.PARAMETER) //方法参数
@Target(ElementType.CONSTRUCTOR)  //构造函数
@Target(ElementType.LOCAL_VARIABLE)//局部变量
@Target(ElementType.ANNOTATION_TYPE)//注解
@Target(ElementType.PACKAGE) ///包
3.@Document:说明该注解将被包含在javadoc中
4.@Inherited:说明子类可以继承父类中的该注解
java.lang中内置的三种注解: 继续阅读

14-黑马程序员—-再论enum,第二篇。

———————- ASP.Net+Unity开发.Net培训、期待与您交流! ———————-
1.随机选取枚举中的元素。

 2.使用接口组织枚举 继续阅读

12-黑马程序员—-再论动态代理

———————- ASP.Net+Unity开发.Net培训、期待与您交流! ———————-
动态代理机制的核心是 InvocationHandler 接口!

———————- ASP.Net+Unity开发.Net培训、期待与您交流! ———————-

11-黑马程序员—-java的对象序列化

———————- ASP.Net+Unity开发.Net培训、期待与您交流! ———————-

      java的对象序列化将那些实现了serializable接口的对象转换成一个字节序列,并能够在以后将这个字节序列完全恢复为原来的对象。

      只要对象实现了serializable接口(标记接口,不包括任何方法),对象的序列化处理就会非常简单。

     如何序列化一个对象?

    1.首先,创建某些OutputStream对象,并将其封装在一个ObejectOutputStream对象内。

    2.调用writeObject()即可将对象序列化,并将其发送给OutputStream。

     如何将一个序列化还原为一个对象?

   1.首先,创建某些InputStream对象,并将其封装在一个ObejectInputStream对象内。

   2.调用readObject()。

代码如下: 继续阅读

10-黑马程序员—-类加载器

———————- ASP.Net+Unity开发.Net培训、期待与您交流! ———————-
类加载器的概念:

类加载器(class loader)用来加载 Java 类到 Java 虚拟机中。一般来说,Java 虚拟机使用 Java 类的方式如下:Java 源程序(.java 文件)在经过 Java 编译器编译之后就被转换成 Java 字节代码(.class 文件)。类加载器负责读取 Java 字节代码,并转换成java.lang.Class类的一个实例。每个这样的实例用来表示一个 Java 类。通过此实例的 newInstance()方法就可以创建出该类的一个对象。

java.lang.ClassLoader类的基本职责就是根据一个指定的类的名称,找到或者生成其对应的字节代码,然后从这些字节代码中定义出一个 Java 类,即 java.lang.Class类的一个实例。 继续阅读