黔西县住房和城乡建设局网站,pc端网站开发总结,建设部网站监理工程师,多用户软件商城软件设计模式#xff1a; 1.应对重复发生的问题 2.解决方案 3.可以反复使用 1.本质是面向对象 2.优点很多 1.创建型-创建和使用分离 2.结构型-组合 3.行为型-协作 571123种模式 UML-统一建模语言-Unified Modeling Language 1.可视化#xff0c;图形化 2.各种图#xff08;9…软件设计模式 1.应对重复发生的问题 2.解决方案 3.可以反复使用 1.本质是面向对象 2.优点很多 1.创建型-创建和使用分离 2.结构型-组合 3.行为型-协作 571123种模式 UML-统一建模语言-Unified Modeling Language 1.可视化图形化 2.各种图9种图 3.可以同时表示静态信息、动态信息 类图-class diagram 就是图形化显式 类 classNamefieldmethod public-private#protected 关联关系 单向关联 fieldtype 成员变量address 其属性 Address Address 是一个类 关联关系 is 最常用的类与类之间的关系 注意单项关联有一个箭头 实线箭头 双向关联 各自持有对方的类来当作自己的成员变量 注意双向关联没有箭头 自 关联 聚合关系 1.整体、成员也叫部分 2.成员部分可独立存在 注意聚合关系用菱形表示不是箭头而且是空心菱形 组合关系 1.整体、成员也叫部分 2.成员部分不能独立存在 注意组合关系用菱形表示不是箭头是实心菱形 依赖关系 1.耦合度最弱 2.临时性的关系不是整体和部分它们之间那样的关系 3.虚线箭头指向被使用的类 继承关系 1.耦合度最强 2.父子关系 3.实线空心三角形 4.指向父类 注意继承关系使用实线空心三角形 实现关系 1.接口、实现类 2.实现关系使用虚线空心三角形 3.指向接口 注意实现关系使用虚线空心三角形 单例模式 单例使用一个内存空间 private static LazySingleton instance LazySingleton 是类型 instance 是成员变量 相当于private static string color 成员变量的类型写在成员变量前面并用空格连接它们 注意懒汉式单例模式在加载类的时候并没有单例生成 只有在第一次调用getInstance方法的时候才会创建单例对象 单例对象代码如下 使用测试类Test1验证在多次调用后产生的是否为单例对象即是否是同一个对象代码如下 测试结果如下 内存地址相同都是4554617c说明这4个实例就是同一个实例即单例实例 注意饿汉单例模式在类创建的同时就会同步建立一个静态的单例对象之后也不会再作改变。 饿汉式代码如下 注意使用final修饰的变量 表示其内存地址就已经固定了不会再发生改变 测试在多次调用后产生的实例是否是同一个实例测试代码如下 测试结果如下 显然是同一个内存地址说明再经过了3次调用每次都得到同一个实例即同一个单例 枚举类型创建单例代码如下 注意这里创建SingletonEnum类之前要手工选择Java中的enum代码如下 测试类代码如下 测试结果如下 说明是同一个单例 使用Runtime的单例对象获取Java虚拟机的内存总量、最大内存代码如下 用Runtime的单例对象执行Windows命令的代码如下 运行结果如下 实现上述两个功能完整代码如下 注意主方法上有一个抛出异常的代码 把执行ipconfig的结果存放到process变量里 用getInputStream方法将变量process中的数据转成流数据放到变量inputStream中 准备一个100兆空间大小的字节类型的变量arr 把变量inputStream中的流数据通过read方法存放到字节变量 arr中 把b个字节数据转成gbk码的字符串 当通过Runtime执行像ipconfig这样的命令时 命令的输出会被重定向到操作系统的一个进程间通信IPC通道 这个通道我们不能直接以文本形式访问。 为了能够读取和处理这些输出我们需要通过特定的流接口来访问这些数据。
Process类的getInputStream()方法就是用来获取这样一个InputStream对象的。
这个InputStream代表了子进程的标准输出流。
简单来说命令的输出在操作系统层面是以字节流的形式存在的 而InputStream正是Java中处理字节流的标准方式。
通过将进程的输出流转换为InputStream 我们可以利用Java的I/O流库来读取、解析这些原始的字节数据进而转换成我们能够理解和处理的格式比如字符串。
September2024the27thFriday