自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 3种排序算法

对于一个排序算法,一般从3个方面衡量算法的优劣:时间复杂度:主要分析关键字的比较次数和记录的移动次数。空间复杂度:分析排序算法中需要多少辅助内存。稳定性:若两个记录A和B的关键字值相等,但排序后A,B的先后次序保持不变,则称这种算法是稳定的;反之,就是不稳定的。O(n^2)表示输入数据量增大n倍,耗时就会增大n的平方倍。O(1)就是最低的时空复杂度了,也就是耗时/耗空间与输入数据大小无关,无论输入数据增大多少倍,耗时/耗空间都不变。1.冒泡排序 比较相邻的元素,如果..

2021-03-12 16:33:02 288

原创 红黑树的变色与旋转

红黑树是自平衡的二叉查找树,所以了解红黑树之前我们需要先了解什么是二叉查找树。二叉查找树 1.某节点的左子树节点值仅包含小于该节点的值 2.某节点的右子树节点值仅包含大于该节点的值 3.左右子树也必须是二叉查找树 这样的数据结构的好处就在于,当我查询10这个节点时,10>9,查看右孩子13,10<13,查看左孩子11,10<11,查看左孩子10,发现10正是要查找的节点,大大提交查询效率,...

2021-03-12 16:30:04 599

原创 JDK1.8 stream().filter()的用法

在jdk1.8以后,我们可以使用stream.filter过滤list中的数据,主要作用就是模拟sql查询,从集合中查询想要的数据,不用像之前一样遍历list再筛选。实例:public class Test { public static void main(String[] args) { List<Program> list = new ArrayList<Program>(); Program p1 = new Pr..

2021-03-10 10:08:29 7997

原创 一次完整的http请求过程和常见的状态码

1.域名解析 服务器是以ip的形式存在的,发送http请求时需要把域名解析为ip地址。一般系统会先查询DNS缓存和hosts文件的信息,看是否存在对应的ip解析记录,没有会发送给DNS服务器,直到得到ip地址;2.建立TCP连接 http协议是基于TCP协议来实现的,首先就是要通过TCP三次握手与服务器建立连接,一般HTTP默认的端口号为80;3.浏览器发送请求命令 一旦建立TCP连接,客户端会向服务器发送请求命令,例如GET/SAMPLE...

2021-03-08 16:56:09 232

原创 一文搞懂过滤器,拦截器和监听器的区别和使用

一.过滤器 1.什么是过滤器 过滤器(Filter)依赖于servlet容器,是实现了javax.servlet.Filter接口的程序,基于函数回调,主要可以过滤字符编码,做一些业务逻辑判断,比如token验证,用户是否登录等等。当在web.xml中配置好要拦截的客户端请求,就会对拦截的请求进行处理。它是随着web应用的启动而启动的,只初始化一次,当应用停止或重新部署才会销毁。 2.过滤器中的方法 void init(...

2021-03-05 17:16:13 306

原创 cookie,session,token看完你就懂了!!!

一.三者的由来 HTTP协议是一个无状态的协议。一旦数据交换完毕,客户端和服务器的连接就会关闭,再次交换数据需要建立新的连接。这就意味着服务器无法从连接上跟踪会话,自然无法识别用户,但为了服务器能够使用某种机制来识别具体的用户,所以就诞生了cookie,session和token.二.Cookie 1.cookie简介 cookie是一门客户端技术,一般由服务器生成返回给浏览器客户端来保存(js也可以生成),以键值对的形式存储,可以设置过...

2021-03-03 17:25:42 210 3

原创 Java 包含File文件的参数以form-data形式发送post请求

urlStr为你要请求的接口地址,textMap是正常的文本参数,fileMap是以文件File类型参数,contentType是文件资源的类型,可以通过查看接口请求头的contentType属性获得。​ private String formUpload(String urlStr, Map<String, String> textMap, Map<String, String> fileMap,...

2021-01-12 16:58:11 3747

原创 Java 网络资源url转化为File文件

将互联网上的http开头的url资源,保存到本地。 private File getNetUrlHttp(String path){ //对本地文件命名,path是http的完整路径,主要得到资源的名字 String newUrl = path; newUrl = newUrl.split("[?]")[0]; String[] bb = newUrl.split("/"); //得到最后一个分隔符后的名字...

2021-01-12 16:52:01 5300 3

原创 MYSQL中id为char类型时,max()取值不是最大值

在mysql数据库中,当查询一个char类型列的最大值时,用max()函数来取值时,发现取到的值不是最大值。 比如:9和10,用max(id)来取值,结果为9,这显然是不对的。 因为在char类型列中,字段是按照首字符来比较排序的,因为1<9,所以会出现这个错误。 解决方法:max(id+0) 将id改为id+0即可。...

2020-09-10 09:57:29 1020

原创 SpringBoot中@Pattern注解对时间格式校验

1.需求背景 有一个需求,在前端传过来的时间格式的字符串进行校验,是否符合"yyyy-MM-dd HH:mm:ss",在SpringBoot中当然可以用@Datetimeformat注解来进行验证,但字段的属性得用Date类型,由于我的项目中该字段用了String类型,需要对类型进行转换不太符合要求,所有用到了@Pattern注解。 在实体类的字段名上添加@Pattern注解,有个属性regexp,该属性的值就是正则表达式。 "yyyy-MM...

2020-08-26 16:00:13 18289 3

原创 Docker容器技术的学习和运用

1.Docker是什么? Docker是一个开源的应用容器引擎,实现虚拟机的资源隔离,是一个轻量级容器技术 Docker是将一个软件编译成镜像,对镜像中的软件进行各种配置,方便其他使用者导入使用,运行中的镜像就称为容器,容器的启动速度比虚拟机快的多。2.Docker的核心概念? Host(主机):安装了Docker的机器 Client(客户端):连接Docker主机,并用命令行或图形化界面实...

2020-07-13 17:31:01 209

原创 xShell操作Linux的常用命令

我们需要在本地连接Linux服务器,可以用winscp来进行连接,优点是图形化界面,文件的层级关系类似于Windows,更容易操作;也可以使用xShell来进行连接,查看和操作文件就需要使用Linux命令,文件的层级关系没有前者直观,但作为一名程序猿,还是推荐大家使用xShell,可以巩固我们的Linux基础命令。一.xShell连接Linux 下载安装好xShell之后,打开应用,点击新建(ALT+N),在新建会话框中输入连接的名称和主机地址,点击连接。 输入用户名和密...

2020-05-09 11:18:37 2396 3

原创 两个List集合对象去重和取重

在实际开发中,需要对比两个json文件,两个文件中可能有相同的数据,也可能有不同的数据,去掉两个文件中相同的数据,将第一个文件的数据标记为del,第二个文件的数据标记为add,并用csv文件进行保存。1.removeAll() List<RdsSO> beginRdsList = jsonToList(InJsonPath + File.separator ...

2020-04-30 09:14:54 3372

原创 Oracle ORA-01033: ORACLE initialization or shutdown in progress ;ora-01113,ora-01110

在oracle运行sql语句时,突然断电了,再次用PL/SQL连接数据库时,出现Oracle ORA-01033: ORACLE initialization or shutdown in progress ;无法登录。 1.检查服务 打开资源管理器,看看Oracle相对应的服务是否处于开启状态,可以尝试重启几次。如果还是没有作用的话,可以试一下第二种方法。...

2020-03-26 20:42:01 138

原创 BIO,NIO,AIO的区别与选择

Java 中的 BIO、NIO和 AIO 理解为是 Java 语言对操作系统的各种 IO 模型的封装。程序员在使用这些 API 的时候,不需要关心操作系统层面的知识,也不需要根据不同操作系统编写不同的代码。只需要使用Java的API就可以了。 在讲 BIO,NIO,AIO 之前先来回顾一下这样几个概念:同步与异步,阻塞与非阻塞。同步与异步 同步:同步就是发...

2020-03-23 22:21:33 242 1

转载 浅谈消息队列以及面试题

1.为什么要使用消息队列分析:一个用消息队列的人,不知道为啥用,这就有点尴尬、没有复习这点,很容易被问蒙,然后就开始胡扯了。回答:这个问题,咱只答三个最主要的应用场景(不可否认还有掐的,但是只答三个主要的),即以下六个字:解耦、异步、削峰(1)解耦传统模式:传统模式的缺点:系统间耦合性太强,如上图所示,系统A在代码中直接调用系统B和系统C的代码,如果将来D系统接入,...

2020-03-23 20:53:55 298

原创 Redis面试必备---零基础去面试

一.Redis是什么 Redis是一个开源的底层使用C语言编写的key-value存储数据库。可用于缓存、事件发布订阅、高速队列等场景。而且支持丰富的数据类型:string(字符串)、hash(哈希)、list(列表)、set(无序集合)、zset(sorted set:有序集合)。它与MySql,oracle等传统的数据库不同的是redis的数据是存在内存中的,所以读写速度非常快,因...

2020-03-22 19:35:32 191

原创 浅谈nginx反向代理和负载均衡

一.什么是nginx? Nginx是一个http服务器。是一个使用c语言开发的高性能的http服务器及反向代理服务器。Nginx是一款高性能的http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。由俄罗斯的程序设计师Igor Sysoev所开发,官方测试nginx能够支支撑5万并发链接,并且cpu、内存等资源消耗却非常低,运行非常稳定。二.为什么使用ngi...

2020-03-22 12:09:55 180

原创 AOP(面向切面)原理及使用

一.AOP是什么? 面向切面编程,就是将交叉业务逻辑封装成切面,利用AOP功能将切面织入到主业务逻辑中。交叉业务逻辑就是通用的,与主业务逻辑无关的代码。比如日志记录,事务管理,异常处理,安全控制。二.AOP优点 1.降低了代码的耦合度 2.提高了代码的重用性,减轻了程序员的工作量 3.系统更加容易扩展三.AOP关键字 1.切面:泛...

2020-03-01 18:11:37 2009

原创 JAVA代理模式:静态代理,动态代理(JDK方式,CGLIB方式)

一.什么是代理模式 1.代理(proxy)是一种设计模式,提供了可通过代理对象访问目标对象的功能,这样做的好处在于:可以在目标对象功能实现的基础上,增加额外的功能补充,扩展目标对象的功能。二.静态代理 在静态代理中,代理对象和目标对象都必须实现同一个接口或继承同一个父类,因此要定义一个接口或抽象类。package Test.Proxy;public int...

2020-03-01 17:08:46 295

原创 Java中的反射,应用场景以及与new的区别

一. 反射是什么? 反射是在运行状态中,对于任意一个类,都能获取该类的所有属性和方法;对于任意一个对象,都能调用它的任意一个方法和属性,这种动态获取类信息以及动态调用对象内容就称为Java的反射机制。二.反射的实现 当使用一个类,我们要先把它加载到虚拟机中,生成class文件,此时类的信息就存储在class文件中。反射就是我们可以通过获取这个class对象,去访问类...

2020-03-01 14:49:42 694

原创 Java读取.xml配置文件

想实现一个读取配置文件来得到想要的数据,写了一个demo. package Test;import org.w3c.dom.Document;import org.w3c.dom.NodeList;import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilde...

2019-11-19 22:26:51 160

原创 Java检测进程列表,进程是否运行,开启和关闭指定进程

Boss提了个想法,客户通过系统页面可以直接操作服务器的某些进程,包括检测运行的进程有哪些,指定的进程是否运行,开启关闭重启相关的进程,就先写了个demo功能基本上都实现了,废话不多说直接贴代码。package Test;import java.awt.*;import java.io.*;import java.util.ArrayList;import java.u...

2019-11-17 19:17:56 1486

原创 Tomcat配置图片资源的虚拟路径

   之前写的一个小项目,用到了图片上传到服务器,然后就开始尝试着去实现这个功能,最初的做法是把图片上传到项目的WEB-INF文件夹的image文件夹中,可以实现图片上传到服务器,可是之后却发现了一个问题,就是重启tomcat服务器,之前上传到服务器的图片都不见了,这就让我郁闷了很久。      经过研究发现:  &nb...

2019-07-21 21:57:33 1233 1

转载 java web 上传图片到其他磁盘并将文件路径放到数据库

最近在学习java web,在练习DVD信息管理系统时一直对照片上传问题的处理感到非常棘手,在我的仔细研究和钻研下,终于完美解决了这个难题,下面我讲述一下具体的步骤: 思路阐述:将图片放到项目的/webTest/imgs/文件夹下,为了避免图片名重复,将图片名改为获取当前秒数+ .jpg的格式。然后将图片的项目路径储存到数据库中,以便后面展示图片进行读取图片信息。需要导入两个j...

2019-07-21 21:46:33 933

原创 Linux下定时任务删除或移动日志文件

在公司的linux服务器上,将生成的日志文件移动到特定的文件夹下,或者进行删除操作。1.创建shell脚本 在home的目录下,创建一个backup.sh的脚本,用来执行特定日志的移动操作。 命令:touch /home/backup.sh2.在脚本中写入命令 用vi编译器来写入具体命令,vi /home/backup.sh,然后再输入i,将脚本变为可编辑...

2019-07-18 21:56:11 1097

原创 layui的表单验证支持ajax判断用户名是否重复

在一个表单中,在提交前我们想判断该用户名是否存在,在layui中不支持。onblur()失去焦点事件,用按钮来手动触发,表单又不太美观,可以使用form表单的verify来进行验证。html:<div class="layui-form-item"> <label class="layui-form-label">用户名</label> &l...

2019-04-15 19:17:16 4793

转载 码云 使用 svn 管理项目

一、 注册帐号 在码云网站上注册一个帐号或已有帐号登录 网址:https://gitee.com/ 二、 创建一个需要管理的项目 1、在用户登录的界面的右上方有一个+号, 点击》新建项目2、 然后填写项目的信息 》选择创建3、 创建完成后网页会跳转到下面:三、 设置项目用svn管理1、点击》项目导航栏的管理...

2019-03-27 11:30:18 644

原创 idea 搭建ssm框架(Maven项目)

一.ssm框架原理         ssm框架是springMVC,spring,mybatis三个框架的集合,是标准的MVC模式,将整个系统划分为表现层,controller层,service层,Dao层。其中springmvc负责请求的转发和视图的管理,spring是对业务对象管理,mybatis负责数据的持久化。原理:客户端发送请求到DispacherServlet(分发器)...

2018-12-19 15:40:54 649 5

原创 win10 IDEA企业版下载及破解

第一步:下载企业版IDEA     下载网址:https://www.jetbrains.com/idea/download/previous.htmlwindow10选择第4个进行下载安装,安装好后不要急着运行,需要一些配置。第二步:下载破解的jar包下载地址:http://idea.lanyus.com/选择以下图片的链接:将下载好的jar包放到你安装好...

2018-12-10 11:12:23 13047 1

原创 ES6中Promise的用法

众所周知的,Javascript是一种单线程的语言,所有的代码必须按照所谓的“自上而下”的顺序来执行。本特性带来的问题就是,一些将来的、未知的操作,必须异步实现,本文将讨论一个比较常见的异步解决方案——Promise,时至本文最后更新的日子,Promise的应用已经极其广泛。promise解决的问题    当一个异步执行的任务需要依赖另一个异步执行任务的结果时,我们一般都会将两个异...

2018-11-21 16:39:11 118

原创 java创建JSONObjecty以及JSONArray,java对象与json对象互转

JSONObject与JSONArray的区别就是前者是对象形式,后者是数组形式。一.创建JSONObject1.使用JSONObject直接创建 JSONObject js1=new JSONObject(); js1.put("ID","test"); js1.put("name","fruit"); js1.put("status...

2018-11-16 11:34:14 3042

原创 HashMap的底层原理

一,HashMap概述简单来说,HashMap的实现是"数组+链表",数组是HashMap的主体,链表则是主要为了解决哈希冲突而设立的。数组的优缺点:采用一段连续的存储单元来存储数据的,对于下标查找,它的时间复杂度为O(1);而对于删除,修改操作,涉及到数组元素的移动,其平均的时间复杂度为O(N) 链表的优缺点:在链表中查找一个元素的话,需要以遍历链表的方式去查找,时间复杂度为O(n...

2018-11-14 14:52:37 87

原创 Java基础全盘复习

1.标识符命名规则    包名:域名反过来写,全部字母小写。    类或接口:每个单词都首字母大写,其余字母小写。(大驼峰)    方法和变量:第一个单词首字母小写,后续单词首字母大写。(小驼峰)     常量:所有字母都大写。2.进制转换    二进制:0b开头   八进制:0开头    十进制:就是整数    十六进制:0~9,a,b,c,d,e,f以0x开头   ...

2018-11-14 14:49:54 171

原创 ajax的两种写法总结以及ajax中jsonp跨域

   ajax不是一种新的编程语言,而是使用JavaScript向服务器提出请求并处理而不阻塞用户,核心对象时XMLHTTPRequest,可以在不刷新页面的前提下进行局部刷新(使用异步数据刷新),使用户的体验更好,服务器的压力更小。一.原生的ajax&lt;%@ page language="java" import="java.util.*" pageEncoding="UTF-...

2018-11-14 13:27:52 504

原创 java读取excel中的数据

 在工作中,遇到需要将excel表中的特定数据提取出来,并将数据以键值对的形式存储到map集合中。因为我用的是maven管理的jar包,所以需要导入的依赖:&lt;dependency&gt; &lt;groupId&gt;org.apache.poi&lt;/groupId&gt; &lt;artifactId&gt;poi&lt;/artifactId&gt; ...

2018-11-08 13:40:02 734

原创 Java请求http并获得返回的json数据中的特定值

   在一次工作中,需要用Java去请求一个接口,并提取返回来的json数据中自己想要的值。   在maven项目中,项目的依赖:1.http依赖 &lt;dependency&gt; &lt;groupId&gt;org.apache.httpcomponents&lt;/groupId&gt; &lt;artifa...

2018-11-06 22:50:37 5224

原创 knockoutjs入门要点

Knockout是一个JavaScript库,可帮助您使用干净的底层数据模型创建丰富的响应式显示和编辑器用户界面。只要您有动态更新的UI部分(例如,根据用户的操作或外部数据源更改而更改),KO可以帮助您更简单,更可维护地实施。参考Knockout官方文档:https://knockoutjs.com/documentation/introduction.htmlKnockout围绕三个核心...

2018-11-05 22:23:00 407

转载 解决win10家庭版系统无法远程连接

 近期,公司配的开发本的系统是win10家庭版的,而win10家庭版本不能远程连接,然后网上大多数教程是叫你修改组策略,然后试过坑的我发现自己的家庭版没有组策略,此时参考了rainmaple20186的博文。博文地址:https://blog.csdn.net/rainmaple20186/article/details/80913191,完美的解决了这个问题。 解决方案 在运行中输...

2018-10-29 12:30:33 5968 3

原创 TypeScript基本语法小结

TypeScript是微软开发的JavaScript的超集,TypeScript兼容JavaScript,可以载入到JavaScript代码。其实两者的关系也就相当于.java文件与.class文件的关系。TypeScript中加入了注释,让编译器理解所支持的对象和函数,但编译过程中会移除,不会增加开销。1.基本数据类型(1)Boolean//Booleanvar isDone:...

2018-10-28 20:28:30 403

空空如也

空空如也

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

TA关注的人

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