旅行售货员问题 旅行售货员问题 问题描述 给定一组城市和每对城市之间的距离,访问每个城市一次,然后返回起点,求最短的可能路线。 算法设计 将城市0(假设为第0个节点)作为起点和终点,由于路线是循环的,所以我们可以把任何一点作为起点。 以DFS(Depth-First-Search)方式开始从源到相邻节点的遍历。 计算每次遍历的距离,跟踪最小距离,并不断更新最小距离存储值,以最低距离返回结果。 代码实现 2021-12-31 Software Algorithm 回溯法
N皇后问题 N皇后问题 问题描述 在n x n格的棋盘上防止彼此不受攻击的n个皇后,按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子,n后问题等价于在n x n格的棋盘上放置n格皇后,任何2个皇后不放在同一行或同一列或同一斜线上。 算法设计 为了判断一个位置所在的列和两条斜线上是否已经有皇后,使用三个集合columns,diagonals1和diagonals2 分别记录每一列以 2021-12-31 Software Algorithm 回溯法
Linux 初始化 Linux 初始化 CentOS 1$ docker run -d --name centos -h centos centos:7 /sbin/init 包含桌面环境和 vnc 服务 1234$ docker run -d -name centos_vnc \--hostname centos_vnc \--user 0 -p 6911:6901 \consol/centos-xfce-vnc 2021-12-31 Software OperatingSystem Linux
Git diff Git diff 显示暂存区和工作区的差异 1$ git diff --cached:使用暂存区与其他版本比较,如果未指定其他版本,比较暂存区和上一次提交(commit)的差异。 --stat:查看简单的 diff 结果。 [<path>...]:只比较单个文件的路径。 -shortstat "@{0 day ago}":显示今天你写了多少行代 2021-12-31 Software DevOps VCS Git 基本命令
Git stash Git stash 保存当前工作进度,会把暂存区和工作区的改动保存起来。 12$ git stash$ git stash save 'message' #添加一些注释。 list 显示保存进度的列表,也就意味着, git stash 命令可以多次执行。 1$ git stash list pop 通过 git stash pop 命令恢复进度后,会删除当前进度。 2021-12-31 Software DevOps VCS Git 基本命令
Java AWT事件 Java AWT事件 事件处理 事件处理包括以下3个部分。 事件源:发生事件的GUI部件。 事件:用户对事件源进行操作触发事件。 事件监听者:负责对事件的处理。 事件处理流程 下图给出了动作事件处理的各方关系: 给事件源对象注册监听者。 Java的事件处理机制称为委托事件处理,给事件源对象注册监听者就是发生事件时委托监听者处理事件。 事件监听者是在事件发生时要对事件进行 2021-12-30 Software Language Java JavaSE GUI AWT
JSP 自定义标签 JSP 自定义标签 自定义标签是用户定义的JSP语言元素,当JSP页面包含一个自定义标签时将被转化为servlet,标签转化为对被称为tag handler的对象的操作,即当servlet执行时Web container调用那些操作。 JSP标签扩展可以让你创建新的标签并且可以直接插入到一个JSP页面, JSP 2.0规范中引入Simple Tag Handlers来编写这些自定义标记。 你可以 2021-12-30 Software Language Java JavaEE JSP
Java 条件选择语句 Java 条件选择语句 if语句 无else的if语句 其格式如下: 123if(条件表达式){ if块;} 说明 如果条件表达式的值为真,则执行"if块"部分的语句,否则直接执行后续语句。 用大括号括住要执行一组语句,也称语句块,语句块以"{“表示块的开始,以”}"表示块的结束,如果要执行的if块为单条语句,可以省略大括号。 [例3 2021-12-30 Software Language Java JavaSE 流程控制语句
Java 继承 Java 继承 继承是存在于面对对象程序中两个类之间的一种关系,被继承的类称为父类或超类,而继承父类的类称为子类,父类实际上是所有子类的公共域和公共方法的集合,而每个子类则是父类的特殊化,是对公共域和方法在功能,内涵方面的拓展和延伸,继承可使程序结构清晰,降低编码和维护的工作量。 定义类时通过extends关键字指明其要继承的直接父类,子类对象除了可以访问子类中直接定义的成员外,也可访问父类的所 2021-12-30 Software Language Java JavaSE 继承与多态
Java 访问控制修饰符 Java 访问控制修饰符 访问控制符是一组限定类,域或方法是否可以被程序其他部分访问和调用的修饰符,Java用来修饰类的访问控制符只有public,表示类对外"开放",类定义时也可以无访问修饰,则表示类只限于同一包中访问使用,修饰属性和方法的访问修饰符有public,protected和private3种,还有一种是无修饰符的默认情况,外界能访问某个类的成员的条件是:先要能访 2021-12-30 Software Language Java JavaSE 继承与多态
Java URL与URLConnection Java URL与URLConnection 在Internet上的所有网络资源都是用URL(Uniform Resource Locator)来表示的,一个URL地址通常由4部分组成,包括协议名,主机名,路径文件,端口号,例如华东交通大学Java课程的网上教学地址为http://cai.ecjtu.jx.cn:80/java/index.html URL类 使用URL进行网络通信,就要使用 2021-12-30 Software Language Java JavaSE 网络编程
Java Swing 组件 Java Swing 组件 窗体 JFrame 与Frame类似,都是窗体容器。 1234public JFrame() throws HeadlessException { super(); frameInit();} 实例 123456789101112131415class JFrameTest { public JFrameTest() 2021-12-30 Software Language Java JavaSE GUI Swing
Servlet HTTP 状态码 Servlet HTTP 状态码 HTTP 请求和 HTTP 响应消息的格式是类似的,结构如下: 初始状态行 + 回车换行符(回车+换行) 零个或多个标题行+回车换行符。 一个空白行,即回车换行符。 一个可选的消息主体,比如文件,查询数据或查询输出。 例如,服务器的响应头如下所示: 12345678910111213HTTP/1.1 200 OKContent-Type: text/ht 2021-12-30 Software Language Java JavaEE Servlet
Servlet Session 跟踪 Servlet Session 跟踪 HTTP 是一种"无状态"协议,这意味着每次客户端检索网页时,客户端打开一个单独的连接到 Web 服务器,服务器会自动不保留之前客户端请求的任何记录。 但是仍然有以下三种方式来维持 Web 客户端和 Web 服务器之间的 session 会话: Cookies 一个 Web 服务器可以分配一个唯一的 session 会话 ID 作为每 2021-12-30 Software Language Java JavaEE Servlet
Servlet 监听 Session 实现用户计数 Servlet 监听 Session 实现用户计数 pom.xml 123456<dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>4.0.1</version 2021-12-28 Software Language Java JavaEE 实例
Java 多线程辅助类 Java 多线程辅助类 CountdownLatch CountDownLatch类位于java.util.concurrent包下,利用它可以实现类似计数器的功能,比如有一个任务A,它要等待其他4个任务执行完毕之后才能执行,此时就可以利用CountDownLatch来实现这种功能了。 CountDownLatch类只提供了一个构造器: 1public CountDownLatch(int c 2021-12-27 Software Language Java JavaSE 多线程
Git push Git push 推送分支 1$ git push <远程主机名> <本地分支名>:<远程分支名> -u:如果当前分支与多个主机存在追踪关系,则可以使用 -u 选项指定一个默认主机,这样后面就可以不加任何参数使用 git push --force:强行推送当前分支到远程仓库,即使有冲突。 --all:所有本地分支都推送到远程主机。 --tags:提交所有 ta 2021-12-25 Software DevOps VCS Git 基本命令
Java 表达式与运算符 Java 表达式与运算符 表达式是由操作数和运算符按一定的语法形式组成的式子,一个常量或一个变量可以看作表达式的特例,其值即该常量或变量的值在表达式中,表示各种不同运算的符号称为运算符,参与运算的数据称为操作数。 组成表达式的运算符有很多种,按操作数的数目来分,有如下3种: 一元运算符 只需要一个运算对象的运算符称为一元运算符,例如,++,–,+,-等,如: 12y = -x; // 将 2021-12-25 Software Language Java JavaSE 数据类型与表达式
Git branch Git branch 查看分支 1$ git branch -a:列出所有本地分支和远程分支。 -r:列出所有远程分支。 新建一个分支,但依然停留在当前分支 1$ git branch [branch-name] 新建一个分支,指向指定 commit 1$ git branch [branch] [commit] 新建一个分支,与指定的远程分支建立追踪关系 1$ git branch --tr 2021-12-18 Software DevOps VCS Git 基本命令