Uncategorized
12k words
Java笔记枚举类在设计一个季节对象的时候,我们可以用传统的方式实现 123456789101112public class Enumeration { Season season = new Season("春天", "温暖");}class Season { private String season; private String description; Season(String season, String description) { this.season = season; this.description = description; }} 但是众所周知,季节只有四季,不能体现只有四个这个特征,为了解决这个问题,我们可以使用枚举类来定义季节,设计几个有限的值 枚举定义是一组常量的集合:枚举是一种特殊的类,里面只包含一组有限的特定对象 自定义枚举 1.不需要提供set方法,因为枚举对象通常是只读的 2.写...
Uncategorized
16k words
Java笔记抽象类使用场景当父类方法不确定的时候,需要声明但是不知道该如何实现的时候,可以将其声明为抽象方法,这个类就是抽象类 1234567891011class Animal { private String name; public Animal(String name) { this.name = name; } public void eat() { System.out.println("吃一个..."); }} 这个时候可以将该方法设计为抽象方法,所谓抽象方法就是没有实现的方法(没有方法体) 123456789abstract class Animal { private String name; public Animal(String name) { this.name = name; } public abstract void eat()...
Uncategorized
2.3k words
词法分析正规式2.1编写有关正规式的调查报告(1) grep/sed 命令对正规式的支持调查,调查与通配符的区别;grep: 支持基本正则表达式(BRE)和扩展正则表达式(ERE)。 BRE 默认支持,ERE 需要通过 -E 选项启用。 12grep '^[0-9]\+' file.txt # 查找以数字开头的行(BRE)grep -E '^[0-9]+' file.txt # 查找以数字开头的行(ERE) 区别: 通配符运用的场景是匹配文件名称,而正规式往往匹配文本内容 (2) 各种高级程序设计语言对正规式的支持,含 C/C++,Java、Python、Rust 与 go 等语言;Java 在Java的 jdk 中拥有java.util.regex 包 ,可以通过实例化Pattern类调用正规式方法,以下是代码示例 1234import java.util.regex.*;Pattern pattern = Pattern.compile("[+-]?[0-9]+(\\.[0-9]*)?([eE][...
Uncategorized
11k words
听课笔记初级部分学习完成终于完成了Java网络通讯的大作业,将整个项目的大致流程掌握,可以熟练的使用socket套接字进行TCP,UDP的网络编程,但是由于在进行项目的时候没有进行前置知识的学习,导致在多线程,异常处理,IO流的部分仍然无法自己独立完成,从这一课我将开始进入Java编程高级部分。 类变量和类方法类变量以下是一个代码示例 1234567891011121314151617181920212223242526272829303132package com.npu.static_;public class ChildGame { public static void main(String[] args) { int count = 0;//记录有几个小孩加入游戏 Child child1 = new Child("1"); child1.join(); count++; Child child2 = new Child("2"); ...
Uncategorized
21k words
多用户通信系统设计https://github.com/thrinisty/Multi-user-communication-system.git 功能实现1.用户登录 2.拉取用户列表 3.私聊 4.群聊 5.发文件 思路分析当客户端与服务端产生链接的时候,服务端会产生一个socket,必须要创建一个线程来持有并管理产生的socket 服务器端的多个线程需要一个管理线程的集合,用以后续的服务器推送新闻 每一个客户端也可能会创建多个线程,和服务器端通信,需要客户端线程的管理集合(hashmap) 服务端1.当客户端连接到服务器时得到了socket 2.启动了一个线程,该线程持有socket,socket是线程的属性 3.为了管理线程,用集合hashmap管理线程,将线程放入集合 客户端1.和服务端通信的时候使用对象的方式,可以使用对象流来进行读写 2.当客户端连接到服务器端时,会得到socket 3.启动一个线程,该线程持有socket 4.为了管理线程,用集合hashmap管理线程,将线程放入集合 代码实现1.用户登录创建User对象,表示一个用户信息(如果对象要在IO中传输...
Uncategorized
272 words
项目开发流程需求分析—设计阶段—编码实现—测试阶段—实施阶段 1.需求分析(需求分析师)目的是产出一个需求分析报告,包含客户具体要求,项目功能 2.设计阶段(架构师/项目经理)设计工作UML类图,流程图,模块设计,数据库,架构,原型开发 组建团队 3.实现阶段(程序员/码农)完成架构师的模块功能,测试自己的模块 4.测试阶段(测试工程师)单元测试,测试用例,白盒测试,黑盒测试,集成测试 5.实施阶段(实施工程师)将项目部署到客户的平台,保证运行正常,要求对环境的部署能力要高 6.维护阶段(不固定人员)Debug,项目升级,发现bug
Uncategorized
3.9k words
听课笔记UDP网络通信编程不同于TCP通信,UDP不需要建立连接,UDP数据包中含有发送的目标地址 1.类 DatagramSocket 和 DatagramPacket【数据包/数据报】实现了基于UDP协议网络程序 2.UDP数据报通过数据报套接字 DatagramSocket 发送和接收,系统不保证UDP数据报有一定可以能够到达目的地,也不确定在什么时候可以到达 3.DatagramPacket 对象封装了UDP数据报,在数据包中包含了发送端和接收端的IP地址以及端口号 4.UDP协议中的每一个数据报都给出了完整的信息地址,因此无需建立发送方和接收方的链接吧 UDP特殊说明1.UDP中没有明确的服务端和客户端,演变为数据的发送端和接收端 2.接收数据和发送数据通过DatagramSocket对象完成 3.发送数据时会将数据封装在DatagramPacket对象中,称之为装包 4.当接收到数据包后,需要进行拆包取出数据 5.DatagramSocket可以指定在哪个端口接收数据 UDP通信流程1.建立发送端和接收端 2.发送数据前建立数据包和数据报 3.调用数据包的...
Uncategorized
2.6k words
听课笔记文件传输Java中利用套接字在服务器与客户端间进行文件传输 在这里需要使用到文件的输入输出流 客户端上: 客户端接收文件的输入流,用工具类转化为字节流进行传输 服务器上 在服务器端上我们要将收到的输入流使用功能类转化为字节流 再将转化后的字节数组用文件输出流送到一个特定的位置 客户端代码 123456789101112131415161718192021222324252627282930package com.file;import java.io.*;import java.net.InetAddress;import java.net.ServerSocket;import java.net.Socket;public class Client { public static void main(String[] args) throws Exception { Socket socket = new Socket(InetAddress.getLocalHost(),8899); String filePath...
Uncategorized
7.2k words
Java网络多线程IP地址定义:用于唯一标识网络中的每一台计算机 查看IP地址的指令:ipconfig IP地址组成:网络地址 + 主机地址 A类地址 0 + 7位网络号 + 24位主机号 B类地址 b10 + 14位网络号 + 16位主机号 C类地址 b110 + 21位网络号 +8位主机号 D类 b1110 + 28位多播组号 E类 b11110 + 27位保留位 域名www.baidu.com 将ip地址映射为域名,方便记忆 端口号概念:用于标识计算机上某个特定的网络程序 通过IP + 端口即可访问一个特定网络上的特定程序 表示形式:以整数形式表示:0—65535 (两个字节) 0-1024被占用(在实际开发中不使用这一些端口) 网络通讯协议在网络编程中数据的组织形式就是协议 TCP/IP传输控制协议/因特网互联协议,又称网络通讯协议 网络层级以及对应协议 TCP与UDPTCP通过三次握手建立连接,四次握手释放连接 TCP协议进行通信的两个应用进程:客户端、服务端 UDP将数据,源,目的封装为数据包,不需要建立连接 每一个数据包的大小限制为64K以内...
Uncategorized
13k words
听课笔记零钱通综合案例目的是使用Java开发零钱通项目,可以完成收益入账,消费,查看明细,退出等功能 1.显示菜单,可以显示菜单,给出对应提示12345678910111213141516171819202122232425262728293031323334package com.smallchange;import java.util.Scanner;public class SmallChangeSys { public static void main(String[] args) { boolean loop = true; do { System.out.println("==========零钱通=========="); System.out.println("\t\t1 零钱通明细"); System.out.println("\t\t2 收益入账"); ...