`
文章列表

类之间的关系

    博客分类:
  • OOD
generalization 泛化:A类扩展了B类,则A类与B类是扩展关系。                                  说明A类是B类所代表类型的一个分类,A类的职责在B类职责范围内或A类职责是对B类职责的扩展。          realization 实现:A类实现了接口B,则A类与B类是实现关系。                               说明 B类声明了功能,A类是B类的具体实现。         dependency依赖:A类是B类的方法参数、局部变量或B类引用了A类的静态方法,则B类依赖A类。               ...

类与美女

    博客分类:
  • OOD
类的设计原则:  如果将类比做office美女,那么她应该具有:    1.苗条的身材:臃肿不招人喜欢    2.明确的职责:只负责做XX事(没有职责就失去了存在的意义)    3.懒惰的情格:XX之外的事,我不管    4.谨慎的承诺:不轻意做出承诺,承诺超多干的越多       寻找有类似职责的干爹:    1.权势的干爹:找个类似职责的权势的干爹,能帮你做好多事,外系统的帮不上什么忙。    2.干爹的马甲:出门办事披上干爹的马甲,事好办。    3.干爹的要求:要尽量满足,实在满足不了的,可以对干爹声明能做到,真正做的时候抛出异常好了。    注意事项:   ...

面象对象的概念

    博客分类:
  • OOD
类的产生:    1.事物类:通过对问题领域内的某一类事物的分析,抽取其共同特征(主要是属性特征),而生成类,一般表述某一事物。     2.功能类:为了解决某一程序问题构造出来的类,该类提供了某些功能来解决问题。    类的实例:   事物类的实例,由于属性有不同的值,而表示不同的具体事物。 通常为N多例。 功能类的实例,一般为单例或几个实例。     继承:如一些类,具有大部分相同的属性特征或行为特征,将共同性抽取形成父类,子类自动继承了父类的属性特征和行为特征,       好处是:避免多个类重复的定义相同的属性及行为特征,这些特征自动的从共用的父类处继承而来。 ...

NIO 简单封装

对NIO进行封装,使其方便使用。   UML类图:  DatagramChannel     打开一个指定端口或随机端口,并可以接收任何发到本端口的数据报,也可以发送数据报到任何一个远程的地址。一个  DatagramChannel 即可以做为Server端(前提是Client端知道你的端口)也可以做为Client端,即 N对N的关系。    ServerSocketChannel   Socket通信中的服务端,打开一个指定的端口,可以接收多个Socket连接,如A主机发送Socket连接请求,连接成功后,生成SocketChannel ,该通道只能接收或发送数据到A主机。 ...
  一. 不依赖第三方类库的可执行JAR   Eclipse 工程上右键->export 打开窗口中,选择java/jar file ->next->     1.选择打到jar包里的文件和src下的哪些类     2.在JAR file:录入生所的jar包名。(默认路径是当前工作台目录,与可以选择指定的目录)   ->next->next : Main class 框中选择主执行类->finish 就可以生成jar包的。   二   依赖第三方类库的可执行JAR     如果代码的执行依赖第三方类库,就需要第三方类库的jar包在class ...

DatagramChannel

  UDP 是User Datagram Protocol的简称,UDP进行通信,客户端与服务端不进行连接,只是使用数据报进行通信。 一个程序打开一个UDP端口,可以给任何远程主机的UDP端口发送数据报,也可以接收任何发送到本端口的数据报(前提是别 ...

Channel

  Channel  API描述:用于 I/O 操作的连接。 通道表示到实体,如硬件设备、文件、网络套接字或可以执行一个或多个不同 I/O 操作(如读取或写入)的程序组件的开放的连接。    
 UDP发送接收数据类:     /** * udp 数据报的发送和接收 * @author yanlei * */ public class UDPPort implements Runnable{ private static Logger logger = Logger.getLogger(UDPPort.class); /** * 本地端口,未指定,则是随机端口 */ int localPort = 0; /** * 接收缓冲区大小 */ int bufferSize= 1024; public int ...

FileChannel示例

FileChannel      public class TestFileChannel { /** * 复制文件 * @param srcfile * @param destFile * @throws IOException */ public void copyFile(File srcfile,File destFile ) throws IOException{ FileChannel srcfileChannel = new FileInputStream(srcfile).getChannel(); FileCh ...

ByteBuffer

 NIO  Buffer 一种容器,可以写入和读取基本类型数据。  Buffer 内部一般是使用数组来实现。  Buffer 基本属性:  1.position:数组的下标,下一个读取或写入操作由此下标开始,写入或读取完成后  position会增加读取或写入数据的长度,即指向新的写入或读取位置。 2.limit :数组下标,指明该下标开始,以后的数组元素不可以读取或写入。            用途:如写入了10个数组元素,limit定为10,则读取操作不可以读取超过10个元素。 3.capacity: 数组的实际长度。可保存元素的最大个数。 4.mark:  通过调用ma ...

IO流

字节流,读取或写入byte 8位。 字符流,流取或写入char 16位。与字符集有关。     字节输入流 :InputStream          字节输出流:OutputStream     字符输入流:Reader   字符输出流:Writer      

反射

Class 类的实例表示正在运行的 Java 应用程序中的类和接口。枚举是一种类,注释是一种接口 通过Class 能够获取类的信息,调用类的方法等。 一 生成Class对象    static Class<?> Class.forName(String className)  className是类的全名 Class<?> ClassLoader.loadClass(String name) name 是类的全名 ClassLoader来源: 1.Thread.currentThread().getContextClassLoader ...

Annotaion

Annotation 是一种注释,可以标注在类、方法、属性上,对其在另一个层面(一般在系统实现上)进行说明。     Annotation 的定义类似于接口:   @Retention(RetentionPolicy.RUNTIME)//指明该Annotation 在运行时存在,可通过对类反射获取标 ...

泛型定义

方法的参数及返回值一般是具体的某个类或某个接口。 (接口的好处是多态)。   当方法的参数或返回值是允许是多种不同的类型时,只能使用Object对象。 如:实例化某一个类:   public Object createJavaBean(Class classz) throws Exception{ return classz.newInstance(); } //调用时需使用 Person person =(Person)createJavaBean(Person.class); // Dog dog= (Dog)createJavaBean ...
java 可以调用操作系统上可以执行的命令   调用方式一: Process process = Runtime.getRuntime().exec(new String []{"ping","127.0.0.1" }, null,null); .exec方法:  public Process exec(String cmdarray[], String[] envp, File dir) 参数: cmdarray 命令及参数组成的数组:可执行的命令字符串,用空格分隔而生成的数组             envp 每一个元素为一个环境变量 ...
Global site tag (gtag.js) - Google Analytics