自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(71)
  • 收藏
  • 关注

原创 在线OJ项目

项目概述在线OJ系统模仿的是 牛客 leetcode 等在线编程的功能 用户可以根据首页的题目列表 选中一道题进行在线编写代码 由后台代入多组测试用例进行编译运行 再将结果反馈给用户的一套"答题系统"主要功能在首页展示题目列表 (包含题目id 题目名称 难易程度)点击某道题目后展示该题的详情页 (包含题目名称 难易程度 题目描述 示例 代码模板 代码编辑框)在线编辑 提交后由后台服务器运行 并返回结果...

2021-08-14 18:07:51 319

原创 多线程必须掌握的知识点

程序: 程序就是一段(静态的)可执行文件双击出来的文件不算程序 必须右键选择打开方式 使用选定的方式打开文件才算一个程序进程: 把静态的可执行文件运行起来 就是一个进程 (运行态) 进程是系统分配资源的最小单位操作系统先把代码加载到内存 调用cpu执行程序的代码 形成一个进程 操作系统再把该进程管理起来线程: 线程是系统调度的最小单位...

2021-06-04 21:35:23 312 1

原创 单例模式的四种实现方法

单例模式都是基于多线程实现的有以下几种实现方法:饿汉式(线程安全 效率较低)public class Single { //new对象是在类加载的时候就执行了 private static Single instance = new Single(); private Single(){} public static Single getInstance(){ return instance; }}缺点:(1) 类加载时就创建了对象 有

2021-06-04 21:11:26 214

原创 每日一题错题合集(七)

1.2.3.4.5.

2021-06-01 19:45:47 97

原创 浏览器中输入url后, 发生的事情

1

2021-05-26 20:15:30 84

原创 发送数据 MAC 的工作

1. 已知端口号查询进程–命令netstat -ano|findstr 80802.tomcat 和 servlet 的关系tomcat 属于 servlet的一个容器servlet 的三个生命周期方法(init 方法, service方法, destroy销毁方法) 和 实例化对象 都是由 tomcat 进行管理的...

2021-05-26 16:09:42 525

原创 IP地址和MAC地址的区别

IP地址指的是人可以看懂的逻辑地址 硬件无法看懂 它包含的是数据传输的起点和终点好比我现在有一份数据要发送到 A 的电脑上 那么我就是IP地址的起点 A 就是IP地址的终点MAC地址指的是人无法看懂的 给硬件看的物理地址 就是硬件出厂时设置的地址 无法被修改 出厂即唯一 它包含的是 数据传输过程中 经过的每一跳的起点和终点这里引入了"每一跳"这样的类比方式 就是 数据在进行传输时 往往不是直达目的地的 而是会通过路由器 经过无数个路由器 由这些路由器指路 一路走向终点好比我现在有一份数.

2021-05-26 15:51:24 183

原创 每日一题错题合集(六)

1.2.3.4.5.6.

2021-05-26 13:58:13 64

原创 TCP/IP协议 + UDP协议

UDP协议1. UDP的特点无连接(无需和目的主机建立连接 知道目的主机ip和端口号即可)不可靠(中途如果数据丢失udp也不会给应用层提示)面向数据报 (发送多长的数据 就一次接收多长数据 再大的数据都不会拆分)有接收缓冲区 无发送缓冲区发送数据最大长度为 64k2. UDP和TCP的区别UDP传输效率比TCP高(因为TCP比较安全)TCP协议1. TCP协议数据格式源端口号目的端口号序号确认序号4 位TCP报头6 位标志位(ACK(确认号是否有效), SYN(开

2021-05-22 12:34:55 331

原创 每日一题错题合集(五)

1.2.3.4.5.6.

2021-05-20 22:18:49 73

原创 每日一题错题合集(四)

1.2.3.4.

2021-05-14 20:07:55 59

原创 如何在Linux上运行一个web项目

tomcat准备工作先上传tomcat压缩包到服务器解压压缩包启动tomcat在linux上先跳转到bin目录下再执行./startup.sh验证tomcat是否启动成功(先验证本机再验证远程)本机验证:输入curl + url 查看响应体是否正确 或输入wget + url查看 wget 是把响应体另存为一个文件来查看远程验证:在浏览器中输入 公网ip : 8080 查看是不是tomcat主页(如下图):2.开发web项目先在服务器上通过客户端连接数据库再初始

2021-05-12 18:01:08 939

原创 在Linux上安装软件的三种方式

1.使用 yum 指令安装用法安装: yum install -y + 软件名搜索: yum list | grep + 软件名卸载: yum remove + 软件名2.通过离线安装包安装 :使用 rpm 指令用法:安装: rpm -ivh + 文件名3.解压版安装根据压缩包不同解压的方式也不同如果是.zip的压缩文件 : unzip + 文件名如果是.tar / .tar.gz 压缩文件 : tar vxf + 文件名...

2021-05-12 17:38:28 75

原创 华为机试--字符串通配符 ( 循环解法 )

题目描述问题描述:在计算机中,通配符一种特殊语法,广泛应用于文件搜索、数据库、正则表达式等领域。现要求各位实现字符串通配符的算法。要求:实现如下2个通配符:*:匹配0个或以上的字符(字符由英文字母和数字0-9组成,不区分大小写。下同)?:匹配1个字符输入:通配符表达式;一组字符串。输出:返回匹配的结果,正确输出true,错误输出false本题含有多组样例输入!代码思想取出字符串 a, b 的每一位分别比较1.如果判断出 a 中当前字符是通配符 ? 那么就跳过一个字符2.如果

2021-05-10 22:28:56 397 2

原创 Linux基本指令

1. ls指令用法:ls + 选项 + 目录/文件功能:对于目录: 可以列出该目录下所有子目录和文件 对于文件: 可以列出该文件的文件名和其他信息例子:-a 列出目录下的所有文件,包括以 . 开头的隐含文件。-l 列出文件的详细信息-r 列出所有子目录下的文件。(递归)2. pwd指令用法:pwd功能:用来复制路径例子3. cd指令绝对路径:/开头的相对路径:不是/开头的用法:cd + 目录名

2021-05-09 17:42:03 78

原创 每日一题错题合集(三)

1.2.3.4.

2021-05-07 13:44:52 64

原创 每日一题错题合集(二)

1.2.

2021-04-23 20:10:11 79

原创 已知端口号查询进程--命令

以tomcat端口号为例netstat -ano|findstr 8080

2021-04-21 15:07:19 117

原创 数据库--事务

什么是事务比如我现在要进行一个操作 转账如果在执行完步骤1后, 服务器突然断电, 或者断网, 那么就会出现A账户的钱被扣了, 但B账户并没有收到, 这种情况是我们不想看到的而解决这种情况的解决方案就是事务, 我们通过事务把这一系列操作打包成一个整体, 要么全部执行成功, 要么全部失败, 这样就解决了因为机器故障导致的错误事务的四大特性1. 原子性原子性就是操作这些指令时,要么全部执行成功,要么全部不执行。只要其中一个指令执行失败,所有的指令都执行失败,数据会自动进行回滚,回到执行指令前的

2021-04-17 23:07:48 113

原创 数据库--索引

什么是索引索引可以想象成一本书的目录我们为了能够快速定位到某一篇文章 可以通过查看目录, 定位到该文章所在的页数, 从而从一本厚厚的书中精准的找到某一页索引的内部数据结构(重点)索引的内部结构依托于B+树谈到B+树我们要先看看B树是什么-B树B树是一种N叉搜索树形如下图(画的不好看 见谅哈~~)B树的根节点中不只有一个数据, 而是可以存放多个数据, 这多个数据被分为多段数据范围好比上图的根节点 50 100 200被分为 x < 50 , 50

2021-04-17 22:41:27 115

原创 每日一题错题合集(一)

1.2.3.4.5.6.7.8.

2021-04-17 20:41:55 100

原创 数据库面试题

1. 有员工表、部门表和薪资表,根据查询条件写出对应的sql【同程艺龙2020届校招笔试题】现在有员工表、部门表和薪资表。部门表depart的字段有depart_id, name;员工表 staff 的字段有 staff_id, name, age, depart_id;薪资表salary 的字段有 salary_id,staff_id,salary,month。(问题a):求每个部门’2016-09’月份的部门薪水总额(问题b):求每个部门的部门人数,要求输出部门名称和人数(问题c):求公司每个部

2021-04-17 20:23:48 467

原创 如何定位url路径资源

什么是URL我们俗称的网址其实就是URLURL格式:协议:http协议 : 超文本传输协议https协议: 安全的超文本传输协议端口号:htpp端口号默认是 80HTTPS端口号默认是 443

2021-04-17 12:08:14 115

原创 算数右移和逻辑右移的区别

算数右移 >>算数右移相当于 除 25>>2 相当于 5除2再除2所以 5 >> 2 = 1逻辑右移 >>>逻辑右移相当于不考虑符号位, 右移一位, 左边补0即可比如 1 >>> 2 = 0

2021-04-16 19:00:15 766

原创 完成整个web项目的流程:开发,打包,部署,运行,验证

开发1.创建一个maven项目2.在pom.xml文件中加上红框中的内容3.把webapp文件夹复制一份到main目录下4.把前端资源复制到webapp目录下(最好新建文件夹)5.记得刷新maven面板打包6.双击package打包部署7.将打包成功的.war文件复制到tomcat的webapps目录下8.启动tomcat9.打开谷歌浏览器 输入 本机域名:8080端口号(就是tomcat的进程号)10.选择webapps中的.war文件的目录(.war文

2021-04-16 17:38:53 378

原创 数据库--子查询+合并查询

子查询单行子查询单行子查询表示返回的结果是单行的1.查询与“不想毕业” 同学的同班同学先查询 ‘不想毕业’ 该同学的 classes_Id 是多少再查询 class_Id 和上面 classes_Id相等的同学的名字select name, classes_Id from student where classes_Id = (select classes_id from studentwhere name = '不想毕业');多行子查询多行子查询表示返回的结果是多行的1.查

2021-04-13 23:05:29 180

原创 数据库--内外链接+自连接

1. 多表查询内连接(取两表的交集)多表查询实际上就是计算笛卡尔积多表查询就是通过把两个表排列组合, 把所有的可能性都列出来, 再通过筛选选出所需的记录比如现在有两个表 学生表和班级表如下我们要找出所有 42 班的学生的名字select student.student_name from student, class where class.class_name = 'java42' and student.class_Id = class.class_Id;

2021-04-13 22:23:55 1281

原创 二叉树常见面试题

一. 基础面试题1. 检查两颗树是否相同public static boolean isSameTree(TreeNode p, TreeNode q) { // 0. 判断两棵树都为空的情况 if(p == null && q == null){ return true; } //判断一棵树为空的情况 if(p == null || q == null){ return

2021-04-09 15:33:56 203

原创 数据库--聚合查询

1. 聚合查询注意: 聚合查询指的是行和行之间的聚合, 不是列和列之间的聚合1.1 聚合函数1). count函数count是用来统计结果有多少行的select count(*) from exam;这行代码相当于 先执行 select * from exam, 再计算结果有多少行.count不包含null我在新增的数据中把Chinese设置成了null, 再次查询 count(*) 和 count(chinese) 就不同了2). sum函数sum是用来

2021-04-07 16:46:58 2141

原创 数据库--表的设计

一对多一对多的关系需要通过添加外键来建立假设现在要表示学生的考试成绩这里就涉及三个名词 学生 课程 成绩学生和班级之间是一对多的关系外键必须添加在多的那一方 (学生对于班级来说是多的那一方)多对一参考一对多多对多多对多的关系需要通过临时表建立起来假设现在要表示学生的考试成绩这里就涉及三个名词 学生 课程 成绩学生和课程之间是多对多的关系这样就通过建立临时表 (成绩表) 把学生和课程这样多对多的关系连接起来了...

2021-04-07 15:42:31 57

原创 数据库--约束

数据库约束1. NULL约束可以针对指定列进行非空约束, 这样在插入数据的时候就不能设为nullcreate table student(id int not null, name varchar(50) not null);2. UNIQUE约束unique约束是为了防止该列的元素被重复定义create table student(id int unique, name varchar(50) not null);重复定义会报错default约束default

2021-04-07 15:19:32 271

原创 数据库--基础操作

数据库是什么数据库是一类软件, 用来组织管理存储(磁盘上的)数据.我们使用的 mySQL 软件是一个 C / S 结构的软件, 就是客户端和服务器分离的, 我们只在客户端操作数据库, 但实际上真正操作数据库的是服务器mySQL 是典型的关系型数据的代表, 所谓关系型数据库, 就以数据表的形式组织数据的.基本操作一. 数据库的基本操作创建数据库 create database class;查看数据库show databases;删除数据库 drop

2021-04-05 22:25:35 159

原创 网易2017校招真题 一个数变为斐波那契数列数

题目描述Fibonacci数列是这样定义的:F[0] = 0F[1] = 1for each i ≥ 2: F[i] = F[i-1] + F[i-2]因此,Fibonacci数列就形如:0, 1, 1, 2, 3, 5, 8, 13, …,在Fibonacci数列中的数我们称为Fibonacci数。给你一个N,你想让其变为一个Fibonacci数,每一步你可以把当前数字X变为X-1或者X+1,现在给你一个数N求最少需要多少步可以变为Fibonacci数。输入描述:输入为一个正整数N(1 ≤

2021-04-04 21:51:35 234

原创 哈希表

哈希表是基于数组衍生出来的, 它拥有数组的随机访问能力, 所以哈希表非常高效假设我们现在要在下面这样一个数组中查找 5 这个元素, 哈希表就能以O(1)的时间复杂度实现具体实现方式如下:首先创建一个boolean[]类型的数组, 先遍历原来的数组, 第一个元素为7 我们就把新数组下标为 7 的内容标记为true, 第二个元素是 2 我们就在新数组下标为 2 的内容里填上true 如此一来新数组就变成了这样这时我们再要查找 5 这个元素只需要访问新数组 下标为 5 的元素, 看内容是tr.

2021-04-02 16:30:26 105

原创 二叉搜索树

二叉搜索树的查找-原理 public static Integer get(int key){ BinarySearchNode cur = root; while(cur != null){ if(key < cur.key){ cur = cur.left; } else if(key > cur.key){ cur =

2021-04-01 18:07:36 51

原创 归并排序

归并排序-归并排序的特点具有稳定性时间复杂度 ( O(N log(N)) )空间复杂度 ( O(N) )-归并排序的原理此处以升序为例-归并排序的代码public static void mergeSort(int[] arr){ mergeSort2(arr, 0, arr.length); } private static void mergeSort2(int[] arr, int left, int right) { if(r

2021-03-26 21:40:25 72

原创 快速排序

快速排序-快速排序的特点不稳定时间复杂度 ( O(N * log(N)) ~ O(N^2) 最好 ~ 最坏 )空间复杂度 ( O( log(N)) ~ O(N) 最好 ~ 最坏 )-快速排序的优化方法基准值选取数组第一个元素, 中间元素, 末尾元素的中间数当待排序区间较小的时候, 直接使用插入排序当递归深度达到一定深度, 但待排序区间还是很大时, 直接使用堆排序-快速排序的原理此处以升序为例-快速排序的代码 public static void quickSo

2021-03-25 21:07:09 136

原创 堆排序

堆排序-堆排序的特点不稳定时间复杂度 O(n * log(n))空间复杂度 ( O(1) )- 堆排序的原理此处以升序为例-堆排序的代码 public static void heapSort(int[] arr){ // 先创建一个堆 creatHeap(arr); int heapSize = arr.length; for(int i = 0; i < arr.length; i++){

2021-03-25 18:53:08 60

原创 选择排序

选择排序-选择排序的特点不稳定时间复杂度 O(N^2)空间复杂度 ( O(1) )- 选择排序的原理此处以升序为例-选择排序的代码public static void selsctSort(int[] arr){ int bound = 0; for(; bound < arr.length; bound++){ for(int cur = bound + 1; cur < arr.length; cur++){

2021-03-25 18:52:38 62

原创 希尔排序

希尔排序-希尔排序的特点不稳定时间复杂度 ( O(N) ~ O(N^2) 最好 ~ 最坏)空间复杂度 ( O(1) )希尔排序是针对插入排序优点的优化- 希尔排序的原理此处以升序为例-希尔排序的代码public static void shellSort(int[] arr){ //希尔排序有专门的希尔序列: //如果数组长度为size //那么gap的序列为 size/2 size/4 size/8... size/size

2021-03-25 18:52:06 188

空空如也

空空如也

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

TA关注的人

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