自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

abcnull 的博客

一线头部大厂程序员,挤点时间总结一些经验和知识点

  • 博客(38)
  • 资源 (7)
  • 收藏
  • 关注

原创 leetcode总结-递归题型总结

文章目录关键字一句话描述算法步骤分治算法基本都可以用递归实现,分治,递归,栈,深度优先搜索,这些思想和方法往往联系在一起关键字过程,返回值一句话描述将大问题拆成更小问题,更小问题又可以继续拆解,最后直到递归出口算法步骤觉得可以用递归解决的算法题怎么写呢?分为下面几个步骤:1.发现题目满足分治的思想首先发现题目要求解 n 很大时候的函数值,可以这个问题拆成更小的问题,在不断的拆...

2020-03-31 20:07:41 459

原创 leetcode奇技淫巧-int最大值与最小值溢出

文章目录前面int 类型界限求边界错误代码求边界正确代码前面这是我在刷 leetcode 时候发现的一个问题,做个小记录int 类型界限Java 中 int 类型是 4 个字节,2 进制 32 位,默认是有符号的,所以只有 31 位是有用的,首位用于决定正数还是负数,但是我们发现 int 的界限值如下:int 最大值: 2147483647int 最小值:-2147483648负...

2020-03-29 18:51:12 959

原创 各类排序算法比较分析

文章目录各排序算法表格比较各类排序算法场景分析一些解释各排序算法表格比较基本上排序算法,基于选择的排序除了希尔,快排,归并,堆排序之外没啥实用性,只不过是练手的工具罢了,像 O(n^2) 这样过高的时间复杂度,已经失去了它的实用意义了排序类别排序算法平均时间复杂度最好情况 时间复杂度最坏情况 时间复杂度空间复杂度稳定性适用场景交换排序冒泡排序O(n^2)...

2020-03-26 23:08:38 719

原创 docker简介

文章目录一.Docker 介绍一.简介二.历史二.Docker Hub三.Docker 镜像与容器一.Docker 介绍一.简介一个开源的应用容器引擎,开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后再发布到任何流行的 Linux 机器上,也可实现虚拟化,容器完全采用沙箱机制,相互间不会有任何接口组成:client 客户端Daemon 守护进程image 镜像Cont...

2020-03-22 21:25:46 265

转载 为什么很多公司都在招测试开发

转载https://blog.51cto.com/14293469/2430639看到很多人解释为什么公司都要招聘测试开发,在说效率,在说岗位职责,没有人从这个行业发展的变化去说的。在开始正文之前,我先抛出一个观点,做80%的做测试的,都称不上为测试工程师。好的,带着这个观点,咱们从行业目前的发展来说一下。如果你没有进入这个行业,那么有些概念可能不太理解,没关系,先接触一下。• 作为 De...

2020-03-22 08:52:49 621 2

原创 java多线程创建

文章目录简介创建多线程继承 Thread 类简介进程是资源分配的最小单位,线程时任务执行的最小单位。进程拥有资源,多个线程实现共享该进程资源。不同进程试运行还是死亡不影响其他进程,但是进程中某一线程“卡死”后,该进程也会出问题。一个进程至少包含一个主线程创建多线程继承 Thread 类继承 Thread 类,然后重写其中的 run 方法public class ThreadTest e...

2020-03-21 15:05:12 231

原创 Java反射机制以及类创建过程

文章目录类创建的过程反射的建议获取 Class 对象反射获取对象实例其他类创建的过程粗略描述反射是一种间接操作目标对象的机制,不需要提前在编译时期知道运行的对象是谁,它允许程序直接获取类的信息(因为 JVM 动态加载类,对于任意一个类都能够知道这个类所有的属性和方法)。使用 java 反射机制可以在运行期动态创建类并调用其属性。详细描述当我们 new 一个对象的时候,会发生什么呢?.ja...

2020-03-19 23:56:13 349

原创 java容器类常用基本操作

文章目录ArrayList 和 Vector 和 LinkedList 和 HashSet 和 LinkedHashSet// ArrayListArrayList a = new ArrayList();a.add(1);a.get(0);a.size();Stack// StackStack s = new Stack();s.push("1");s.search("1...

2020-03-19 15:48:13 533

原创 HashMap内部分析

文章目录put 方法原理get 方法原理扩容机制其他put 方法原理put 怎么存数据呢?当 HashMap 去调用 put 方法时候,我们会通过其中一个 hash 函数 Entry(键值对)插入的位置,具体是怎么做的呢?HashMap 会把他们通过某一个 hash 函数算法存进一个分散的数组中,这个数组就是 HashMap 主干,且这个数组中每个元素初始值都是 null,但是我们知道一个 ...

2020-03-18 22:21:31 270

原创 java线程安全的容器类使用

文章目录ArrayList非线程安全HashSet非线程安全HashMap非线程安全我们知道我们平常使用的 ArrayList,LinkedList,HashSet,HashMap 都不是线程安全的ArrayList非线程安全想使用线程安全的 ArrayList,我们可以用 Vector 或者如下方式List l=Collections.synchronizedList(new Array...

2020-03-18 12:35:33 469

原创 ArrayList 部分源码解析

文章目录写在前面类变量构造器add 方法ensureCapacityInternal 方法ensureExplicitCapacity 方法grow 方法calculateCapacity 方法写在前面这里取用的是 jdk 1.8 的源码类变量// 序列号private static final long serialVersionUID = 8683452581122892189L;...

2020-03-17 23:43:45 215

原创 leetcode奇技淫巧-位运算代替乘除法

文章目录我们知道 java 位移运算<<和>>可以代替乘除法,我今天在看容器类源码的时候又看到了,想写一写了位移运算的使用:// 相当于 a/2^1,结果是 5int a = 11;System.out.println(a >> 1);// 相当于 a/2^2,结果是 2System.out.println(a >> 2);// ...

2020-03-17 23:37:14 822 2

原创 设计模式-策略模式

文章目录简介代码实现优缺点应用场景简介和工厂模式比较像,理解起来也蛮简单,策略对象的改变会影响执行者对象的的执行结果,而工厂模式是使用者不用考虑如何实现实例化,只用考虑传参给工厂的解耦模式代码实现// 策略接口public interface Strategy { public int doOperation(int num1, int num2);}// 加法策略publ...

2020-03-16 21:31:44 277

原创 设计模式-单例模式

文章目录简介代码实现优缺点应用场景简介java 单例模式属于创建型模式,此模式可以确保一个类中只有一个对象被创建,单例除了饿汉单例,懒汉单例,还有其他多种方式饿汉单例模式天生是线程安全的,为什么呢,因为它提早在静态变量的时候第一次就给它初始化了,这样即使是多线程,以后每次用 instance 就肯定不会再被初始化一遍懒汉单例模式非线程安全,却可以延时加载,以为创建对象写在被调用的方法里头,...

2020-03-16 20:28:05 300

原创 设计模式-简单工厂模式

简介简单工厂模式又称静态工厂方法模式,简单工厂模式抽象的理解就是通过工厂类传不同参数达到初始出化想要的“产品”的模式,这种方式可以不直接拿到产品,而是给工厂传递不同参数来拿到产品。这样不管创建什么“产品”对象都可以通过“工厂”,即使那些产品更改了,同样可以使用工厂,从某种意义上来说实现解耦代码实现// 产品接口public interface ProductImpl { void ...

2020-03-16 18:27:35 226

原创 mysql一些问题

文章目录有一些大型项目数据库表中为什么往往没有设置主键和外键?在有外键的表中,我们进行数据的改操作,它会加上共享锁给父表,这样在高并发的大型系统里头,是很影响性能的,因此这也是很多系统不设主键外键的原因为什么 SELECT 中的别名不能在 WHERE 中识别?因为依据 mysql 语句的执行顺序,GROUP BY 之前别名不存在,GROUP BY 之前被执行的语句就是 WHERE...

2020-03-15 17:52:22 244

原创 drop truncate delete区别

文章目录droptruncatedeletedrop删除程度:最彻底drop 丢弃,既删表数据,又删表结构,立即释放磁盘空间DDL 语句(数据定义语言),一次性删除所有数据,并不会把删除操作记录在日志中,不可进行回滚针对于表,删表最彻底,结构数据磁盘全清理建议:没有备份时,慎用!DROP TABLE 表名;truncate删除程度:一般彻底truncate 删除表...

2020-03-15 16:56:58 328

原创 mysql视图简介与使用

文章目录简介视图基本语句简介mysql 5 之后的版本新增的功能。其实就是一种虚拟存在的表,注意视图里存的其实就是 sql 逻辑,表象视图是一个表,通过查询视图动态运行里头 sql 逻辑而已视图基本语句创建与使用视图:-- 创建视图,方式 1CREATE VIEW 视图名 AS (SELECT 语句1);-- 创建视图,方式 2CREATE OR REPLACE VIEW 视图名 ...

2020-03-14 23:59:15 298

原创 mysql中各种类型的锁

文章目录写在前面锁类别行级锁表级锁抽象概念的锁悲观锁乐观锁实际中的锁共享锁意向共享锁排他锁意向排他锁排他锁中的各种锁算法记录锁间隙锁邻键锁辅助索引锁住主键索引mysql 中事务有四大隔离级别,串行化最安全,但是开发中几乎是不用此隔离级别的,因为性能太差,一般用到读提交的隔离级别。与mysql 事务紧密联系的有 mysql 的锁机制写在前面mysql 采用 innoDB 作为数据库存储引擎,虽...

2020-03-13 22:26:06 1019

原创 sql查询编写规律技巧总结

文章目录这里做一个 sql 编写根据个人经验做的一个小总结需要能力:小学语文能力+小学逻辑思维能力+小学学习能力即可编写好 sql我们写好 sql 无非就是学好语法之后多练就可以很快能上手写好。我们创建好多张表之后,我们怎么分析编写 sql 呢?有如下这几步:题目:要求查询语文成绩大于平均成绩的学生学号(假如成绩表有学生号和课程号为联合主键,其中还有成绩列字段,课程表有课程号和课程名,课程...

2020-03-13 00:30:04 699

原创 使用中oracle和mysql的一些不同点

文章目录Oracle NUMBER 和 MySQL INT/DECIMALoracle 的 NUMBER 相当于 mysql 的 INT 或者 DECIMAL,mysql 的 DECIMAL 一般用于存储金钱哪些很精细的数据,oracle 的 NUMBER(5) 这样的数据相当于 mysql 中的 INT(5),oracle 中的 NUMBER(10, 5) 相当于 mysql 的 DECIM...

2020-03-12 13:44:46 446

原创 mysql中sql语句执行顺序

文章目录执行顺序一些问题解释执行顺序FROM 哪张表先去寻找表JOIN 连接方式连接ON 连接条件连接条件WHERE 分组前条件筛出条件GROUP BY 分组(开始允许使用 SELCT 中的别名)进行分组HAVING 对结果集做筛选分组后的筛出条件SELECT 选择列最终只显示选择的列DISTINCT 去重去重ORDER BY...

2020-03-11 19:57:02 321

原创 mysql各种类型的查询的使用和总结

文章目录常见关键字使用常用函数模糊匹配分组查询多表查询子查询连接查询联合查询常见关键字使用-- 简单查询SELECT 列字段2 FROM 表名 WHERE 列字段1 = '列值1';-- 别名 ASSELECT 列字段1 AS 别名1 FROM 表名1;-- 去重查询 DISTINCTSELECT DISTINCT 列字段2 FROM 表名 WHERE 列字段1 = '列值1';...

2020-03-10 23:44:00 799

原创 mysql基本命令

文章目录连接数据库mysql -u root -p 密码查看有哪些数据库show databases;使用该数据库use 数据库名;查看使用的数据库中有哪些表show tables;查看标详情describe 表名退出 mysqlexit;...

2020-03-10 23:41:48 227

原创 mysql基本数据类型

文章目录数值日期字符串mysql 整型默认都是有符号的,表示无符号需要在字段类型后加 UNSIGNED 关键字。下面常用的类型已经用粗体标识了数值TINYINT:1 字节SMALLINT:2 字节MEDIUMINT:3 字节INT 4 字节整型BITINT:8 字节FLOAT 4 字节浮点型DOUBLE 8 字节双精度浮点型DECIMAL日期DATE 3 字节,格式 ...

2020-03-10 23:40:06 289

原创 mysql的事务以及隔离级别

文章目录事务定义事务例子事务四大特征事务的使用事务隔离性事务定义事务是最小的不可分割的工作单元,事务能保证一个业务的完整性执行一个事务时,事务中只要有一个操作失败,整个事务就会失败事务例子银行转账系统,先扣费再转账,如果扣费成功了,但是转账失败了,假如扣费是一个事务,转账为一个事务,就会导致程序扣费成功了,但是没有转账成功,这样会造成要取钱的李明(客户)发现资产不翼而飞了。所以我们应该把...

2020-03-10 23:35:26 317

原创 mysql约束

文章目录主键约束自增约束外键约束唯一性约束非空约束默认约束主键约束不重复,不为空,一个表中只能有一个主键,用 primary key 表示,能够唯一确定一张表中一条记录的约束-- 单一主键CREATE TABLE 表名 ( id INT PRIMARY KEY, name VARCHAR(20));-- 联合主键,加起来才是主键,其中任何一个字段不为空CREATE TAB...

2020-03-09 20:02:31 284

原创 基本mysql语句,建表增删改查

文章目录建库建表修改表结构插入(增)删除(删)修改(改)查找(查)我们知道 sql 语句离不开 crud 也就是增查改删,有人喜欢说增删改查,c 表示 create 增加,r 表示 read 查询,u 表示update 修改,d 表示 delete 删除建库建表创建数据库CREATE DATABASE 数据库名字;创建表CREATE TABLE 表名 ( 列名1 VARCHA...

2020-03-09 19:57:40 460

原创 关系型数据库设计的三大范式

第一范式(1 NF)数据表中所有的字段都是不可分割的原子值不满足第一范式,一般通过拆列解决若字段值还可以继续拆分开,显然就不满足第一范式,如有一个列字段中存了“湖北省武汉市xxx地区”,这样不满足第一范式,我们需要拆开为几列,当然开发中我们不一定非要满足第一范式,有时候开发时会发现不拆比拆开更好第二范式(2 NF)在满足第一范式的前提下,要求除了主键外的每一列都完全依赖于主键,否则不满足...

2020-03-09 19:00:50 402

原创 数据结构与算法总结与易错分析

文章目录排序算法总结和易错点分析冒泡排序快速排序简单选择排序堆排序直接插入排序折半插入排序希尔排序数据结构总结和易错点分析链表栈队列二叉树排序算法总结和易错点分析冒泡排序冒泡排序有两层循环,外面的循环是记录循环次数而已,我建议用i=1来算次数,这样更容易理解,如果写成i=0当然也行容易加大思维负担还有一点,我有时候写算法时候,写着写着一不留神就把冒泡的交换int temp = a...

2020-03-08 21:50:16 952

原创 选择排序-堆排序

文章目录算法简介Java 实现时间复杂度空间复杂度算法稳定性算法简介二叉堆一棵完全二叉树,对于大顶堆来说,任何一个结点都要大于等于它左右孩子结点,对于小顶堆,任何一个结点都要小于等于它的左右孩子。二叉堆与数组的联系二叉堆一般存储在数组中,有这样的性质,如果我们把二叉堆按照从上到下,从左到右的顺序依次存进数组,如果 index 是某个结点的下标值,那么它左右孩子结点的下标值分别是2*ind...

2020-03-08 14:16:19 244

原创 插入排序算法-希尔排序

文章目录算法简介Java 实现时间复杂度空间复杂度算法稳定性算法简介希尔排序也是插入排序的一种,更准确的说是插入排序的升级版,在插入排序前加上了一些操作使得元素先基本有序之后再进行插入排序。希尔排序又称为缩小增量排序,字如其名,朴素的希尔排序算法是通过将增量 k 设为数组长度的一半,以后会每次缩小一半,最后以增量为 1 为结束,增量为 k 时,表示整个数组分为了 k 组,每隔 k-1 的元素...

2020-03-05 02:13:32 353

原创 插入排序算法-折半插入排序

文章目录算法简介Java 实现时间复杂度空间复杂度算法稳定性算法简介折半插入排序和直接插入排序很相似,都是先假定前面一段序列是有序,然后从整个序列无序的第一个元素起开始遍历,不断的往这个有序的序列中插入,直接插入是一个紧挨着一个找,找到过程中元素不断后移,而这般插入排序利用这半查找的方式来快速找到这个待插入元素再有序序列中那个位置,找到这个位置之后,把相应位置的元素不断后移即可时间复杂度 O...

2020-03-05 00:59:44 490

原创 插入排序算法-直接插入排序

文章目录算法简介Java 实现时间复杂度空间复杂度算法稳定性算法简介直接插入排序应该是插入排序中最简单的一种,前几篇博文已经写了冒泡排序(交换排序中最简单的一种),简单选择排序(选择排序中最简单的一种),今天我们来看看直接插入排序的思路和写法直接插入排序时间复杂度 O(n^2),空间复杂度 O(1),一般来说它是稳定的排序Java 实现思路思路很明确,就是我通过两轮循环,最外层循环是用...

2020-03-03 23:27:29 309 1

原创 算法-动态规划DP

文章目录一道算法题看懂动态规划动态规划简介递归算法解法备忘录算法解法动态规划解法递归和回溯排序算法算法应用一道算法题看懂动态规划动态规划简介动态规划(Dynamic Programming)即 DP 算法,把多个阶段过程转化为一系列阶段问题,并利用各阶段之间的关系,逐个求解一个楼梯有 n 层,你从楼底开始上到第 n 层,每次只能上 1 层或者上 2 层,你一共有多少种可能到达 n 层...

2020-03-02 23:14:05 506

原创 数据结构-散列表(基础知识)

文章目录散列表散列函数散列表与平衡二叉树比较动态规划递归和回溯排序算法算法应用散列表散列表散列表称为 Hash 表,哈希表,Hash Table给定关键字,计算出关键字在表中的地址的数据结构。散列表建立了关键字和存储地址之间的直接映射关系散列函数散列函数把散列表中关键字映射为对应地址的函数,addr = Hash(key)散列函数是可能把两个或以上个关键字映射到同一地址下,...

2020-03-01 22:37:19 654

原创 数据结构-B+树(简介)

文章目录B+ 树简介B+ 树规则B+ 树应用好文推荐B+ 树简介B+ 树是基于 B-树的变体,比 B-树查询性能更强什么是卫星数据卫星数据就是索引元素指向的数据记录,就是索引指向的是数据库表中哪一行,对于 B-树来说每个结点都有卫星数据,对于 B+ 树来说只有叶子结点有卫星数据聚集索引和非聚集索引数据库表行中是物理顺序和键值的逻辑顺序相同,非聚集索引反之。对于聚集索引,B+ 树的叶子结...

2020-03-01 20:59:58 1044

原创 数据结构-B树(简介)

文章目录简介为什么有 B 树B 树规则B 树操作推荐 B 树好文简介B-树即 B 树,这里的 - 可不是减号而是横杠的意思,就是“B 杠树”或者直接说“B 树”。B 树这种数据结构在解决文件系统以及部分数据库索引上起到关键作用(其他有部分数据库使用 B+ 树解决索引问题)为什么有 B 树为什么二叉排序树不适合做索引树?因为如果我们利用传统的二叉排序树来读取指定元素时候,效率是非常高的(...

2020-03-01 19:16:09 645

typora-cobalt-theme-master-v1.1.zip

typora 的 cobalt 黑色主题包,zip 压缩文件,随便下载到哪,下载后解压需要将里头的 css 文件和 cobalt 文件夹放置于 typora 的 theme 文件夹下,之后重启 typora 就可以选到该主题,theme 文件夹通过偏好设置->打开主题文件夹可以查找

2020-06-01

Xcode Midnight.jar.zip

intellij idea 的主题风格 xcode,intellij 的软件基本都是支持的,风格挺好看,望下载支持,不需要积分即可下载!

2020-05-30

Windows Update Blocker v1.1.zip

wub 软件,停止 win 10 自动更新,亲测有效,可以使用。 软件名:Windows Update Blocker v1.1.zip 上传者:abcnull

2020-04-19

mysql练习题-sql_practice.pdf

mysql用本博主前面的文件建表完成后,此文档为题目,博主本来想把这些文档一起上传,奈何csdn一次只能上传一个文档(╥╯^╰╥)

2020-03-12

mysql练习题-create_table.pdf

与建表.txt是一样的,文档是英文,不过英文不太复杂,不影响阅读。

2020-03-12

mysql练习题-sql建表文件.txt

mysql建表习题,对应着博主的另两篇pdf,此文件可以改成sql后缀,这样在navicat中可以直接导入,此文件中所用的是mysql语句

2020-03-12

template.html

用于java testng 做 WebUI 自动化时使用的 beautifulreport 测试报告的定制 html 模板

2020-01-26

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除