自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 如何使用maven和tomcat完成项目的热部署

热部署实际上就是在项目运行的过程中完成代码的更新 在使用maven热部署时需要配置tomcat的权限Tomcat的配置我们需要实现热部署,自然就需要通过maven操作tomcat,所以就需要maven取得操作tomcat的权限,现在这一步就是配置tomcat的可操作权限.在tomcat的安装目录下,修改conf / tomcat-user.xml文件,在 节点下面增加如下配置:<ro...

2019-10-16 22:39:31 405 1

原创 垃圾回收器中finalize方法的执行过程

大致描述一下finalize流程当对象变成(GC Roots)不可达时,GC会判断该对象是否覆盖了finalize方法,若未覆盖,则直接将其回收。否则,若对象未执行过finalize方法,将其放入F-Queue队列,由一低优先级线程执行该队列中对象的finalize方法。执行finalize方法完毕后,GC会再次判断该对象是否可达,若不可达,则进行回收,否则,对象“复活”。具体的finaliz...

2019-10-12 19:11:39 696

原创 红黑树 B树 和B+树各自的特点及联系

一、红黑树二叉树具有搜索速度快的特点,但是在极端情况下(比如二叉树的最小或最大值在根节点)那么这种二叉树的查询速度就接近于线性结构的查询速度,为了避免这种问题,发明了平衡二叉树(AVL),平衡二叉树的特点是根节点的左边和右边的子树的高度差不可能大于一,但是每次插入或删除时就需要对整棵树进行旋转,大大影响了效率,在这种情况下,红黑树应运而生,红黑树的特点是弱平衡,但在插入或删除节点的效率上面大大超...

2019-10-12 19:04:16 1591

原创 synchronized与volatile关键字的区别

一、synchronized关键字1.1 synchronized如何实现内存可见性线程加锁时,将清空工作内存中共享变量的值,从而使用共享变量时需要从主内存中重新读取最新的值线程解锁时,必须把共享变量的最新值刷新到主内存中。1.2 synchronized线程执行互斥代码的六个过程获得互斥锁清空工作内存从主内存中拷贝变量的最新值到工作内存执行代码将更改后的共享变量的值刷新到主内存...

2020-03-02 17:49:09 681

原创 布隆过滤器的原理及实现

一、布隆过滤器的工作原理布隆过滤器本身是一个很长的二进制向量,既然是二进制的向量,那么显而易见的,存放的不是0,就是1。新建一个16位的布隆过滤器,如图有一个对象,我们通过方式一计算他的hash值,得到hash = 2方式二计算他的hash值,得到hash = 9方式三计算他的hash值,得到hash = 5通过三个方法计算得到三个数值,我们把这三个数值对应的布隆过滤器向量值改为1...

2020-03-02 17:39:42 1104

原创 算法专栏--递归实现“岛问题”

一、问题描述二、解决方案遍历整个二维表,当发现二维表中某个节点的值为1时,开始感染,执行 infect(int[][] m, int i, int j, int N, int M),i,j表示坐标,N,M表示二维表的边界排除掉不满足条件的节点,再次递归,直到感染了所有相邻的节点,此时感染掉的节点数值置为2,所以infect被触发了几次就说明有几个“岛”三、实现public class P...

2020-02-20 18:00:02 305

原创 linux系统中,硬连接与软连接的区别

一、基本概念ext4 文件系统会把分区主要分为两大部分:小部分用于保存文件的 inode (i 节点)信息;剩余的大部分用于保存 block 信息。inode 的默认大小为 128 Byte,用来记录文件的权限(r、w、x)、文件的所有者和属组、文件的大小、文件的状态改变时间(ctime)、文件的最近一次读取时间(atime)、文件的最近一次修改时间(mtime)、文件的数据真正保存的 blo...

2020-01-03 21:54:56 362

原创 MongoDB整合NODEJS

一、使用NODEJS连接到MongoDB前置条件 开启数据库 (CMD中输入 mongod)/* 1.下载安装Mongoose npm i mongoose --save 2.在项目中引入mongoose var mongoose = require("mongoose"); 3.连接MongoDB数据库 mongoose.connect('mongodb://数据库的i...

2019-12-01 22:54:43 173

原创 ORACLE存储过程解锁方法

第一步查看目标用户拥有的锁以管理员身份执行以下SQLselect * FROM dba_ddl_locks where owner ='XXX’第二步根据SESSION_ID获取sid和serial#以管理员身份执行以下SQLselect t.sid,t.serial# from v$session t where t.sid=XXX第三步进入SQLPLUSsqlplus ...

2019-11-26 19:44:26 702

原创 几个IO复用模型

一、各个IO模型的概述AIO 是彻底的异步通信。NIO 是同步非阻塞通信。有一个经典的举例。烧开水。假设有这么一个场景,有一排水壶(客户)在烧水。AIO的做法是,每个水壶上装一个开关,当水开了以后会提醒对应的线程去处理。NIO的做法是,叫一个线程不停的循环观察每一个水壶,根据每个水壶当前的状态去处理。BIO的做法是,叫一个线程停留在一个水壶那,直到这个水壶烧开,才去处理下一个水壶。...

2019-11-23 11:43:21 231

原创 TCP与UDP的本质区别以及TCP的诸多特性

一、UDP的特点1.UDP是一个简单的面向数据报的运输层协议。2.UDP无需建立连接(无时延)。3.UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地。4.数据的传递方式是IP数据报。面向报文面向报文的传输方式是应用层交给UDP多长的报文,UDP发送多长的报文,即一次发送一个报文。因此,应用程序必须选择合适大小的报文。二、TCP的特点1....

2019-11-23 10:53:13 671

原创 springboot自定义MVC以及@EnableMvc注解的作用

一、关于thymeleaf由于springboot采用jar的打包方式,且采用嵌入式Tomcat服务器,因此不支持JSP模板引擎,springboot默认的是thymeleaf模板引擎。springboot自动配置类也包括了对thymeleaf的自动配置二、SpringMVC的定制化SpringMVC的诸多组件都被springboot在启动时自动配置,比如:Converter:转换器:...

2019-10-19 14:12:37 1963

原创 springboot定制WEB三大组件

一、servlet的定制public class Myservlet extends HttpServlet { protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doPost(req,resp); ...

2019-10-19 12:41:26 201

原创 在springboot中使用拦截器

一、定义拦截器public class loginInterceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Except...

2019-10-19 12:34:43 142

原创 springboot整合JPA使用实例

一、引入jpa的依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId></dependency>二、定制POJO类,并指定映射到的数据...

2019-10-18 22:27:35 231

原创 springboot如何配置和使用durid连接池的图形界面

一、在POM文件中加入依赖<dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.0.9</version></dependency>二、在主配置文件中配置...

2019-10-18 22:11:41 521

原创 利用redis来管理springboot的缓存

一、springboot导入redis的依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId></dependency>修改app...

2019-10-18 22:02:03 114

原创 springboot如何在application.xml文件中自定义日志级别

1.log4j的使用需要导入log4j、Slf4j的jar包。2.配置日志文件log4j.rootLogger=DEBUG, stdout, R --?在这里配置日志级别log4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.layout=org.apache.log4j.PatternLay...

2019-10-16 22:47:54 697

原创 数据库分区、分表、分片的区别

一.分区的概念分区并不是生成新的数据表,而是将表的数据均衡分摊到不同的硬盘,系统或是不同服务器存储介子中,实际上还是一张表。另外,分区可以做到将表的数据均衡到不同的地方,提高数据检索的效率,降低数据库的频繁IO压力值1.1分区的两种方式1、水平分区这种形式分区是对表的行进行分区,通过这样的方式不同分组里面的物理列分割的数据集得以组合,从而进行个体分割(单分区)或集体分割(1个或多个分区)。...

2019-10-16 22:42:08 2627

原创 反射及代理原理

1.运行时获取对象想在运行时使用类型信息,必须获取对象(比如类Base对象)的Class对象的引用,使用功能Class.forName(“Base”)可以实现该目的,或者使用base.class。注意,有一点很有趣,使用功能”.class”来创建Class对象的引用时,不会自动初始化该Class对象,使用forName()会自动初始化该Class对象。class Base { stat...

2019-10-15 22:39:21 135

原创 关于REDIS数据存取可能会出现的一些问题

当我们把json数据作为value存入redis时,redis会自动的在每个”符号前加上/,起到转译的作用,并且会对所有的中文字符重新编码,我们通过工程调用redis中的数据,将其取出来,redis会自动将中文字符转换为原来的编码方式,同时也会去掉”符号前的/,我们在工程中加入一行代码,在控制台打印出了取出的redis的value部分的内容如上所以,”数据是怎么进去的就会怎么出来” 。...

2019-10-15 22:33:49 928 1

原创 JSP的执行过程

Jsp也是一种servlet,它只不过是对servlet的一种扩展(1)JSP引擎先把该JSP文件转换成一个Java源文件(Servlet),在转换时如果发现JSP文件有任何语法错误,转换过程将中断,并向服务端和客户端输出出错信息。(2)如果转换成功,JSP引擎用jdk把该Java源文件编译成相应的class文件。(3)创建一个该Servlet(JSP页面的转换结果)的实例,该Servlet...

2019-10-15 22:31:23 728

原创 新生代的复制-清除算法实现原理

在新生代的复制算法中将除新生代的Eden区域以外的内存空间一分为二,分别称为S0区和S2区S0和s1将可用内存按容量分成大小相等的两块,每次只使用其中一块,当这块内存使用完了,就将还存活的对象复制到另一块内存上去,然后把使用过的内存空间一次清理掉。这样使得每次都是对其中一块内存进行回收,内存分配时不用考虑内存碎片等复杂情况,只需要移动堆顶指针,按顺序分配内存即可,实现简单,运行高效。复制算法的...

2019-10-14 09:32:56 723

原创 什么是JVM中的本地方法栈

本地方法栈的功能和特点类似于虚拟机栈,均具有线程隔离的特点以及都能抛出StackOverflowError和OutOfMemoryError异常。本地方法栈服务的对象是JVM执行的native方法,其就是一个java调用非java代码的接口,作用是与操作系统和外部环境交互如果某个虚拟机实现的本地方法接口是使用C连接模型的话,那么它的本地方法栈就是C栈。当C程序调用一个C函数时,其栈操作都是确定的...

2019-10-14 08:56:57 2109

原创 在linux下搭建私有的git服务器

搭建私有Git服务器1.服务器搭建远程仓库实际上和本地仓库没啥不同,纯粹为了7x24小时开机并交换大家的修改。GitHub就是一个免费托管开源代码的远程仓库。但是对于某些视源代码如生命的商业公司来说,既不想公开源代码,又舍不得给GitHub交保护费,那就只能自己搭建一台Git服务器作为私有仓库使用。搭建Git服务器需要准备一台运行Linux的机器,在此我们使用CentOS。以下为安装步骤:...

2019-10-13 11:38:17 621

原创 关于springboot如何整合rabbitmq

一、RabbitMQ的几个概念Message消息,消息是不具名的,它由消息头和消息体组成。消息体是不透明的,而消息头则由一系列的可选属性组成,这些属性包括routing-key(路由键)、priority(相对于其他消息的优先权)、delivery-mode(指出该消息可能需要持久性存储)等。Publisher消息的生产者,也是一个向交换器发布消息的客户端应用程序。Exchange交换...

2019-10-13 11:18:39 316 1

原创 Linux下/bin和/sbin的区别

bin:bin为binary的简写主要放置一些系统的必备执行档例如:cat、cp、chmod df、dmesg、gzip、kill、ls、mkdir、more、mount、rm、su、tar等。/usr/bin:主 要放置一些应用软体工具的必备执行档例如c++、g++、gcc、chdrv、diff、dig、du、eject、elm、free、gnome*、 gzip、htpasswd、kfm...

2019-04-14 20:21:14 333

原创 堆的内存空间

堆:堆内存用于存放由new创建的对象和数组。在堆中分配的内存,由java虚拟机自动垃圾回收器来管理。在堆中产生了一个数组或者对象后,还可以在栈中定义一个特殊的变量,这个变量的取值等于数组或者对象在堆内存中的首地址,在栈中的这个特殊的变量就变成了数组或者对象的引用变量,以后就可以在程序中使用栈内存中的引用变量来访问堆中的数组或者对象,引用变量相当于为数组或者对象起的一个别名,或者代号。根据垃圾...

2019-04-14 20:18:24 577

原创 springboot配置文件的加载顺序

一、自动加载1.1自动加载配置(jar包内)springboot 启动会扫描以下位置的application.properties或者application.yml文件作为Spring boot的默认配置文件–file:./config/(当前项目的根目录)–file:./–classpath:/config/–classpath:/优先级由高到底,高优先级的配置会覆盖低优先级的配置...

2019-04-14 20:15:27 437

原创 thymeleaf模板引擎的公共部分抽取

模板名::片段名1、抽取公共片段<div th:fragment="copy">&copy; 2011 The Good Thymes Virtual Grocery</div>2、引入公共片段<div th:insert="~{footer :: copy}"></div>被引用页面<nav class="col-...

2019-04-14 20:13:04 718

原创 关于spring的事务管理的具体对象

Spring的声明式事务管理配置如下&lt;bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"&gt; &lt;!-- 数据源 --&gt; &lt;property name="dataSource" ref="dataSource&qu

2019-01-21 16:46:22 334

原创 关于Nginx的几个划分虚拟主机的方法以及实现

关于Nginx的几个划分虚拟主机的方法以及实现1Nginx1.1什么是nginx1.2Nginx的应用场景1.3Nginx的安装步骤1.4Nginx实现虚拟机1.4.1Ip区分虚拟主机1.4.2配置nginx基于ip地址的虚拟主机1.4.2.1Nginx的配置文件1.4.2.2基于ip的虚拟主机配置1.4.3基于端口的虚拟主机1.4.4基于域名的虚拟主机1.4.4.1设置域名和ip的映射关系1.4...

2019-01-21 16:39:21 413

空空如也

空空如也

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

TA关注的人

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