摘要:
交换排序 交换排序算法描述:比较相邻两个元素大小,如果反序,则交换。 交换排序算法有两种:冒泡排序和快速排序 冒泡排序 算法描述 冒泡排序比较相邻两个元素的大小,如果反序,则交换,若按升序排序,每趟将数据序列中的最大元素交换到最后位置,就像气泡从水里冒出来一样。 算法思路 算法实现 Java实现 阅读全文
摘要:
算法描述 直接插入排序算法描述如下: 设线性序列是{a0,a1,...ai 1,ai,...,an 1}。 1. 第 `i (1 0,a1,...,ai 1}子序列是排序的,将元素 ai 插入 {a0,a1,...,ai 1} 的适当位置,使插入后的子序仍然是排序的,ai 的插入位置由关键字比较大小 阅读全文
摘要:
什么是二分法查找 二分查找也称折半查找(BinarySearch),它是一种采用分治策略的算法,他将问题分解为规模更小的的子问题,分而治之,逐一解决。采用二分法查找的前提条件是:要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。 二分法查找使用场景 二分法查找适用于数据量较大时,但是数据 阅读全文
摘要:
使用 chatAt() 方法 利用 String 的 CharAt 方法取出字符串中的各个字符 转为数组后拼接字符串 利用 String 的 toCharArray 方法先将字符串转化为 char 类型数组,然后将各个字符进行重新拼接。 StringBuilder 中的 reverse 成员方法 利 阅读全文
摘要:
经典案例 1. 古代某法官要判决 n 个犯人死刑,他有一条荒唐的逻辑,将犯人首尾的相接排成圆圈,然后从第 start 开始数起,每数到第 distance 个犯人,就拉出来处决;然后又数 distance 个,数到的犯人又拉出来处决,依次类推。剩下的最后一人可以豁免。 2. 一群猴子排成一圈,按1, 阅读全文
摘要:
下载 JDBC Jar包 Mysql JDBC 地址:https://dev.mysql.com/downloads/connector/j/ 选择 Platform Independent 下载并解压得到 .jar 包,放入自己 Jar 文件夹中 将 Jar 库导入到 Idea 注册驱动并获取连接 阅读全文
摘要:
基本概念 通常情况下编写代码都是固定的,无论运行多少次执行的结果也是固定的,在某些特殊场合中编写代码时不确定要创建什么类型的对象,也不确定要调用什么样的方法,这些都希望通过运行时传递的参数来决定,该机制叫做动态编程技术,也就是反射机制。 通俗来说,反射机制就是用于动态创建对象并且动态调用方法的机制。 阅读全文
摘要:
七层网络模型 OSI(Open System Interconnect),即开放式系统互联,是ISO(国际标准化组织)组织在1985年研究的网络互联模型。 OSI七层模型和TCP/P五层划分如下: 当发送数据时,需要对发送的内容按照上述七层模型进行层层加包后发送出去 当接收数据时,需要对接收的内容按 阅读全文
摘要:
线程同步机制 基本概念 当多个线程同时访问同一种昧享资源时,可能会造成数据的覆盖等不一致性问题,此时就需要对线程之间进行通信和协调,该机制就叫做线程的同步机制。 多个线程并发读写同一个临界资源时会发生线程并发安全问题。 异步操作:多线程并发的操作,各自独立运行。 同步操作:多线程串行的操作,先后执行 阅读全文
摘要:
基本概念 程序和进程的概念 程序 数据结构 + 算法,主要指存放在硬盘上的可执行文件。 进程 主要指运行在内存中的可执行文件。 目前主流的操作系统都支持多进程,为了让操作系统同时可以执行多个任务,但进程是重量级的,也就是新建一个进程会消耗CPU和内存空间等系统资源,因此进程的数量比较局限。 线程的概 阅读全文
摘要:
IO 流的概念 IO 就是 Input 和 Output 的简写,也就是输入和输出的含义。 IO 流就是指读写数据时像流水一样从一端流到另外 端,因此得名为"流"。 基本分类 按照读写数据的基本单位不同,分为字节流和字符流 其中字节流主要指以字节为单位进行数据读写的流,可以读写任意类型的文件。 其中 阅读全文
摘要:
基本概念 类主要用于描述文件或目录路径的抽象表示信息,可以获取文件或目录的特征信息,如:大小等。 常用的方法 | 方法声明 | 功能概述 | | | | | File(String pathname) | 根据参数指定的路径名来构造对象 | | File(String parent, String 阅读全文
摘要:
基本概念 异常就是“不正常”的含义,在 Java 语言中主要指程序执行中发生的不正常情况。 java.lang.Throwable 类是 Java 语言中错误(Error)和异常(Exception)的超类。 其中 Error 类主要用于描述Java虛拟机无法解决的严重错误,通常无法编码解决,如:J 阅读全文
摘要:
泛型机制 泛型概念 通常情况下集合中可以存放不同类型的对象,是因为将所有对象都看做 Object类型放入的,因此从集合中取出。元素时也是Object类型,为了表达该元素真实的数据类型,则需要强制类型转换,而强制类型转换可能会引发类型转换异常。 为了避免上述错误的发生,从Java5开始增加泛型机制,也 阅读全文
摘要:
集合的概述 集合的由来 当需要在 Java 程序中记录单个数据内容时,则声明一个变量。 当需要在 Java 程序中记录多个类型相同的数据内容时,声明一个一维数组。 当需要在 Java 程序中记录多个类型不同的数据内容时,则创建一个对象。 当需要在 Java 程序中记录多个类型相同的对象数据时,创建一 阅读全文
摘要:
正则表达式的概念 正则表达式本质就是一个“规则字符串”,可以用于对字符串数据的格式进行验证,以及匹配查找、替换等操作。该字符串通常使用 运算符作为开头标志,使用 运算符作为结尾标志,当然也可以省略 正则表达式的规则 | 正则表达式 | 说明 | | | | | [abc] | 可以出现a、b、C中任 阅读全文
摘要:
斐波那契数列 编程实现费式数列中第 n 项的数值并返回。 费式数列: 分析规律 1. 第 1 项和第 2 项固定为 1。 2. 从第 3 项起每一个数值是前两项的和。 递归实现 递归实现会影响程序的执行性能 不推荐使用 递推实现 public int seriesFor(int n) { // 当 阅读全文
摘要:
整数类型 Java语言中描述整数数据的类型有:byte、 short、int、long,荐int类型 规律:1个字节为 那么类型在内存空间中占 n 个字节表示范围是: 1. 其中 类型在内存空间中占1个字节,表示范围是: . 2. 其中 类型在内存空间中占2个字节,表示范围是: . 3. 其中 类型 阅读全文
摘要:
十进制转换二进制 拆分法 将十进制整数拆分为若千个二进制权重的和,有该权重下面写 1,否则写 0。 权重等于 10^1~n 次方 拆分出来必须是权重中的数字! 正十进制转换为二进制 求 45 的二进制 负十进制转换为二进制 先将十进制的绝对值转换为二进制,然后进行按位取反再加1 负数的需要补码:按位 阅读全文
摘要:
安装 WSL2 启用子系统和虚拟机平台 然后重启系统 WSL 2 要求系统版本应该在 Windows 10, Version 2004, Build 19041 及以上。 以管理员身份打开 powershell,运行如下命令以启动需要的组件: dism.exe /online /enable-fea 阅读全文