• JavaSE:新特性和项目


    一. 索引

      1.  常用的设计原则和设计模式

          <1>  常用的设计原则

                软件开发的流程

                  需求文档分析,概要设计文档,详细设计文档,编码和测试,安装和调试,维护和升级

                原则

                  开闭原则:对扩展开放,对修改关闭

                  里氏代换原则:任何父类出现的地方,子类一定可以出现

                  依赖倒转原则:尽量依赖于抽象类/接口,而不是具体实现类

                  接口隔离原则:尽量将大接口拆分成若干小接口

                  迪米特(最少知道)法则:一个实体应当少于其他实体发生相互作用(高内聚,低耦合)

                  合成复用原则:声明一个类类型的引用,作为另外一个类类型的成员变量

          <2>  常用的设计模式 - 基本概念和分类

                设计模式:是代码设计经验的总结

                分类

                  创建型模式

                  结构性模式

                  行为型模式

          <3>  设计模式详解

                  单例设计模式(懒汉式)

                  一个类对外提供,且只提供一个对象

                工厂方法模式

                  通过工厂类中的方法,实现(大量的)产品(对象)的创建:

                      普通工厂模式

                      建立一个工厂类,并在类中提供一个工厂方法,来生产各种不同的产品

                      通过参数,传入字符串,来区分不同的产品

                      多个工厂方法模式:

                      一个工厂类中,多个工厂方法,各自生产不同的产品

                      优点:不需要传递字符串,避免了字符串传错时的异常

                    静态工厂方法模式:

                      无需创建工厂类的对象,即可调用生产方法

                    抽象工厂方法模式:

                      为了避免违背开闭原则,可以使用抽象工厂方法模式

                      即,每个工厂类,生产一种单独的产品

                                       

                装饰器模式:

                  给一个对象动态地增加、撤销功能(不更改被装饰类原有的代码)

                代理模式:

                  在代理类中,直接创建一个被代理类的对象

                模板方法模式:

                  实际上就是抽象类的应用

                  

      2.  新特性

          <1>  Java8 - 函数式接口

                一个接口只包含一个抽象方法, 如Runnable, Comparator 等

          <2>  Java8  - Lambda表达式

                实现函数式接口的一种方式:

                (参数列表) -> {方法体}

          <3>  Java8新特性 - 方法引用

                实现函数式接口的另一种方式:

                对象/类名  :: 方法名

          <4>  Java8新特性 - Stream接口

                简化对集合的操作

                  创建流 --> 对集合进行中间操作(筛选与切片 / 映射 / 排序) --> 对集合进行终止操作 (匹配与查找 / 规约 / 收集)

                  等价于:创建集合 --> 调用集合的成员方法

          <5>  Java8新特性 - Optional类

                该类的引入能很好地解决空指针异常,不用显式进行空值检测

          <6>  Java9 新特性

                模块化 - module

                钻石操作符<>的操作升级

                集合工厂方法of(), 用于创建不可变实例

                InputStream增加了transferTo()方法,底层是read()和write()         

          <7>  Java10新特性

                局部变量类型(var)推断  

          <8>  Java11新特性

                简化的编译运行

                String类新增方法

      3.  在线考试系统(项目)

          <1>  概要分析

          <2>  服务器:初始化、关闭、测试

          <3>  客户端:初始化、关闭、测试

          <4>  客户端:主界面的绘制、测试

          <5>  客户端:扫描器工具类的封装

          <6>  客户端:将管理员相关信息发送到服务器

          <7>  服务器:接收客户端发来的消息,并打印

          <8>  服务器:校验管理员的账户和密码

          <9>  客户端:接收结果,并打印

      4.  NIO技术

          <1>  NIO的概念

          <2>  NIO - Buffer缓冲区概述 & ByteBuffer的创建方式

          <3>  NIO - 缓冲区的常用方法 & Buffer类中的变量(一)

          <4>  NIO - Buffer类中的变量(二)

          <5>  NIO - Channel通道概述 & Channel API

          <6>  NIO - FileChannel基本使用

          <7>  NIO - 网络编程收发信息

          <8>  NIO - accept阻塞问题(设置非阻塞)

          <9>  NIO - Selector选择器的概念

          <10>   NIO - 选择键(SelectionKey) & Selector的使用流程

          <11>   NIO编程实例

    二. 编程题

             

    在已有的在线考试系统的基础上,实现学员管理系统的功能:

    <1>  当项目启动时:将文件中的所有学员账户信息全部读取出来,放到一个集合List中

    <2>  客户端:输入要增加学员的用户名和密码,通过对象输出流,发送给服务器

    <3>  服务器:接收客户端发来的消息,判断集合中是否存在该学员账户信息,并实现具体添加功能

    <4>  服务器:将增加学员功能的处理结果,发送给客户端; 客户端:给出对应的提示

    <5>  当项目退出时:将集合中的所有学员信息,整体写入到文件中

    提示:

      1.  对象序列化流,在socket发送完成后,注意使用reset()

      2.  服务器:要对客户端的请求 & 相应内容进行打印

                  如:服务端收到客户端的 ”管理员登录“ 请求, 请求数据为 ”XXX“,

                  调用 ”XXX“方法, 响应结果为 {"result" , "success"}

  • 相关阅读:
    Django Admin 管理工具
    老男孩培训机构老师的博客
    pycharm版本选择并安装
    Linux命令-自动挂载文件/etc/fstab功能详解
    django urls路由匹配分发
    django templates模板
    Django models模型
    django views视图函数
    JDK与JRE、JVM三者间的关系及JDK的安装部署
    django 第一个项目测试
  • 原文地址:https://www.cnblogs.com/JasperZhao/p/14981473.html
Copyright © 2020-2023  润新知