我在Java学斩神:排序算法
重生之我在Java学斩神。
汇总关于稳定性和占用内存的说明:
稳定性:如果A = B,排序前A在B前面,排序后A也在B前面,则为稳定;如果出现了排序后A在B后面的情况,则为不稳定。
占用内存:in代表占用常数内存,不消耗额外内存;out代表消耗常数内存。
开始笔记中使用了自定义的类,分别是SortEnum枚举类和SortUtil工具类。SortEnum枚举类如下:
1234567891011121314151617181920212223public enum SortEnum { BUBBLE("冒泡排序"), SELECTION("选择排序"), INSERTION("插入排序"), SHELL("希尔排序"), MERGE("归并排序"), QUICK("快速排序"), HEAP("堆排序"), COUNTING("计数排序" ...
我在Java学斩神:设计模式
重生之我在Java学斩神。
设计模式共有23种,分为创建型、结构型和行为型。此处仅仅介绍常见的八种设计模式:单例模式、工厂模式、抽象工厂模式、建造者模式、策略模式、装饰器模式、适配器模式和观察者模式。
设计模式原则单一职责原则一个对象只包含单一的职责,并且该职责被完整地封装在一个类中。
12345678910111213public class Person { public void teach() { System.out.println("我可以教学生学习"); } public void takeaway() { System.out.println("我要去送外卖"); } public void screw() { System.out.println("我在大厂打螺丝"); } }
上述 Person 类中 ...
Oracle从入土到诈尸
本笔记不适合初学者。本笔记不适合初学者。本笔记不适合初学者。
Oracle基础语法增删改查
SELECT查询 1SELECT column1, column2 FROM table_name WHERE condition;
INSERT插入 1INSERT INTO table_name (column1, column2) VALUES ('value1', 'value2');
UPDATE修改 1UPDATE table_name SET column1 = 'value' WHERE condition;
DELETE删除 1DELETE FROM table_name WHERE condition;
likelike用于模糊匹配。
1SELECT column1 FROM table_name WHERE condition LIKE 'expression';
例如:要查询名字中含有字符’a’的人的信息:
1SELECT * FROM table_name WHERE ename LI ...
Java从入门到烧烤
JDK的安装JDK和JRE
什么是JRE? JRE(Java Runtime Environment)是java程序的运行环境,最核心的内容就是JVM(Java虚拟机)和核心类库。
什么是JDK? JDK(Java Development Kit)是java的开发环境,包含了JRE,并提供了额外的开发者工具,例如javac、javaw等。
JDK的下载推荐使用BellSoft的Liberica JDK。未来开发中可以根据需要选择不同的JDK版本。
配置JDK环境
打开设置-系统-系统信息-高级系统设置-环境变量。
在系统变量下新建变量名JAVA_HOME,变量值选择JDK目录。
打开系统变量下的Path变量,新建一个值,名为%JAVA_HOME%\bin,并建议将其置于前列。这样在我们有不同需要时,更改JAVA_HOME下的路径,即可切换不同的JDK版本。
配置完成后,打开cmd输入java -version查看版本,能够查看到结果就说明已经成功安装并配置了JDK。
Java程序入门第一个Java程序123456public class HelloJava { ...
CentOS服务器下配置java环境
由于服务器只需要运行环境而不需要开发环境,我们只需要在服务器安装 JRE 即可。相对于 JDK 而言,JRE 的压缩包体积更小,便于更快上传。
下载JRE本文使用Liberica JDK/JRE,版本为jre-8u442。
选择TAR.GZ版本下载。
将下载好的JRE上传到服务器。
安装JRE
使用tar命令解压压缩包。 12# tar -zxvf 压缩包名 -C 目标路径tar -zxvf jre-8u442.tar.gz -C /source/java/
打开配置文件。 1vi /etc/profile
按下 i 键进入编辑模式,在文件末尾追加以下内容,然后按下 ESC 退出编辑模式,输入:wq保存并退出文件。 12345# 记得改为你自己的目标路径export JAVA_HOME=/source/java/jre8u442export CLASSPATH=.:${JAVA_HOME}/libexport PATH=${JAVA_HOME}/bin:$PATHexport PATH=${JAVA_HOME ...
MySQL从建表到删库
MySQL的连接通过执行mysql -u 用户名 -p,并输入密码即可连接数据库。在连接到MySQL后,可以通过show databases列出所有的数据库,并使用use 数据库名来选择数据库。使用create databse 数据库名可以创建新的数据库;使用drop database 数据库名可以删除已有的数据库。执行exit或quit即可退出MySQL。
数据类型MySQL的数据类型可以分为三种:数值、日期(时间)和字符串(字符)类型。
数值类型
类型
大小
范围(有符号)
范围(无符号)
用途
TINYINT
1 Bytes
(-128,127)
(0,255)
小整数值
SMALLINT
2 Bytes
(-32768,32767)
(0,65 535)
大整数值
MEDIUMINT
3 Bytes
(-8388608,8388607)
(0,16 777 215)
大整数值
INT或INTEGER
4 Bytes
(-2147483648,2147483647)
(0,4 294 967 295)
大整数值
BIGINT
8 Bytes
(-9,22 ...
MySQL的安装与使用
下载MySQL
进入MySQL的下载页面,点击MySQL Community Server链接,选择对应的MySQL版本和系统版本,并下载。
将下载好的zip压缩包解压到一个目录。
安装MySQL
在MySQL文件夹中创建”data”目录和”my.ini”文件,在”my.ini”中写入以下内容:
12345678910111213141516[mysql]# 端口,默认为3306port= 3333[mysqld]# 端口,默认为3306port= 3333# mysql安装目录basedir = D:\\tools\\mysql# 数据库的数据存放目录datadir = D:\\tools\\mysql\\data# 允许的最大连接数max_connections = 20# 创建新表时使用的存储引擎default-storage-engine = INNODB# 创建模式sql_mode = NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
在MySQL文件夹中以管理员方式打开cmd命令提示符,并进入到bin目录,并执行my ...
java_swing相关知识总结
使用自定义字体
使用URL+File。(个人推荐使用这一种)
12345678910111213private static Font getCustomFont(String fontPath, int style, int size) { try { URL url = CustomFont.class.getResource(fontPath); File fontFile = new File(url.getFile()); Font font = Font.createFont(Font.TRUETYPE_FONT, fontFile); return font.deriveFont(style, size); } catch (IOException e) { System.out.println(e.getMessage() + ": 无法读取文件" + fontPath); } catch (FontFormatE ...
回溯算法学习笔记
什么是回溯算法?回溯算法通过穷举来解决问题,暴力搜索,遇到正确的解则记录,在某个状态无法前进或无法满足条件时,回退到上一步状态,再尝试其他的选择。回溯算法通常采用深度优先搜索进行遍历。
[!NOTE]
回溯算法适合处理无法预测哪些是有效的解,必须对所有可能的解进行遍历的情况。因此并不适合处理大规模或复杂问题。
时间复杂度:由于需要遍历所有可能的解,可能会达到O(n^k)。
空间复杂度:需要在遍历过程中记录当前状态,随着深度的增大,对空间的需求也会增大。
回溯算法常见的问题全排列无重复元素全排列详情请见LeetCode-46 全排列。
给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。
示例1:输入:nums = [1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]示例2:输入:nums = [0,1]输出:[[0,1],[1,0]]示例3:输入:nums = [1]输出:[[1]]
思路
将生成结果的过程看 ...
使用docker安装Oracle 19c
下载镜像
拉取镜像。 1docker pull registry.aliyuncs.com/zhuyijun/oracle:19c
查看镜像是否下载成功。 1docker images
部署Oracle容器
创建挂载文件,将数据和配置挂载到本机。 1mkdir -p /mydata/oracle/oradata
部署并启动容器。 1docker run -d -p 1521:1521 -p 5500:5500 -e ORACLE_SID=<Your SID> -e ORACLE_PDB=<Your PDB> -e ORACLE_PWD=<Your Password> -e ORACLE_EDITION=standard -e ORACLE_CHARACTERSET=AL32UTF8 -v /mydata/oracle/oradata:/opt/oracle/oradata --name oracle registry.aliyuncs.com/zhuyijun/oracle:19c
ORACLE_SID、ORACLE_PDB和ORACLE_P ...