自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Happy Today

夏天的风

  • 博客(49)
  • 资源 (1)
  • 收藏
  • 关注

原创 在window下安装RabbitMQ

windows环境安装RabbitMQRabbitMQ简介下载并安装erlang下载并安装rabbitmq启动失败注意事项添加用户RabbitMQ简介RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现,由以高性能、健壮以及可伸缩性出名的Erlang写成,因此也是继承了这些优点。Github地址:https://github.com...

2019-10-23 13:46:24 1401 1

原创 Synchronized 和 Lock 区别

1、Synchronized 内置的Java关键字, Lock 是一个Java类2、Synchronized 无法判断获取锁的状态,Lock 可以判断是否获取到了锁3、Synchronized 会自动释放锁,lock 必须要手动释放锁!如果不释放锁,死锁4、Synchronized 线程 1(获得锁,阻塞)、线程2(等待,傻傻的等);Lock锁就不一定会等待下去;5、Synchronized 可重入锁,不可以中断的,非公平;Lock ,可重入锁,可以 判断锁,非公平(可以自己设置);6、Syn

2021-08-09 15:59:13 233

原创 MYSQL字符串函数,值得学习!

字符串函数1、CONCAT(S1,S2,…Sn)函数:把传入的参数连接成为一个字符串select concat('aaa', 'bbb', 'ccc') ,concat('aaa',null);注意: 任何字符串与NULL进行连接的结果都将是NULL。2、INSERT(str,x,y,instr)函数:将字符串str从第x位置开始,y个字符长的子串替换为字符串instrselect insert('smile',2,2,'me');3、LOWER(str)和UPPER(str)函数:把字符串

2021-05-27 11:11:21 247

原创 MYSQL中的 WITH ROLLUP

WITH ROLLUP是可选语法,表明是否对分类聚合后的结果进行再汇总表中数据有首先查看没有加 WITH ROLLUP 的结果select count(*),name from demo group by name;再查看加 WITH ROLLUP 的结果select count(*),name from demo group by name WITH ROLLUP;结果所知,对对分类聚合后的结果进行再汇总...

2021-05-27 10:35:46 567

原创 having和where的区别

having和where的区别在于having是对聚合后的结果进行条件的过滤,而where是在聚合前就对记录进行过滤。注意如果逻辑允许,我们尽可能用where先过滤记录,这样因为结果集减小,将对聚合的效率大大提高,最后再根据逻辑看是否用having进行再过滤...

2021-05-27 10:22:57 170

原创 文件下载空格变成加号 java

URLEncoder.encode(file.getName(), "UTF-8").replace("+", "%20"))

2021-03-09 15:03:37 576

原创 一辆小汽车的装饰器模式

装饰器模式装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能。我们通过下面的实例来演示装饰器模式的用法。一辆汽车的装饰器首先创建一个汽车/** * 汽车类 */public abstract class Car { abstract String getMsg();

2021-02-26 10:52:35 136

原创 Mysql修改表的字段为空

ALTER TABLE 表名称 MODIFY 字段名称 数据类型 DEFAULT NULL;

2021-02-22 16:55:41 2879

转载 合理使用nginx的hash策略做更有意义的负载均衡

前言:目前,许多的web应用,或者web接口,都会在服务器的入口处,使用一个服务器容器来监听端口,然后进行请求转发,例如nginx Apache等。服务器容器对应整个web服务有着至关重要的作用,包括:可以很好的管理服务进程,进行代理,对请求的预处理,以及负载均衡。今天要讨论的重点为在服务器集群中,合理使用nginx的hash策略做更有意义的负载均衡。概要:当我们的服务是由一台服务器支撑时,就丝毫不存在负载均衡的概念。只有当服务由多台服务器(也就是服务器集群)支撑时,才会使用到负载均衡。负载均

2020-09-15 14:03:05 141

原创 关于这个注解@RequiresPermissions与@RequiresRoles

关于这个注解@RequiresPermissions当你想要2个权限都存在时:@RequiresRoles({“student”,“teacher”})当你想多选一,满足一个即可时:@RequiresPermissions(value={“student:menu”,“teacher:menu”},logical=Logical.OR)...

2020-08-03 13:50:05 1479

原创 map下的getOrDefault()方法使用过嘛

当map.get()一个存在的key时,会得到bull当取key的值为空,值就会被替换成后面的值

2020-07-17 15:54:27 150

原创 9090年了!还不会主从复制(docker/redis)

9090年了!还不会主从复制简介简介主从复制就是将数据有效的及时的复制到其他子服务器特征:1个主服务器(master)对应多个子服务器(slave)1个子服务器 (slave)对应1个主服务器(master)职责:master:写数据执行写数据时,将出现变化的数据同步到slave读数据slave:读数据...

2020-06-11 18:10:52 317

原创 git命令自动补全功能(mac)

git命令自动补全功能(mac)复制代码(快捷)第二步 (复制代码进入.git-completion.bash)第三步 (vim ~/.bash_profile 加入 以下代码)第四步 (更新文件)一般在命令行中,输入前几个字母tabtab 就会有提示。 装了git 之后,发现tabtab没有效果,最后在网上找到资料进入git网页 补全代码复制上面的内容 或复制代码(快捷)# bash/zsh completion support for core Git.## Copyright

2020-06-03 10:07:05 1300 2

原创 Maven环境变量配置

Maven环境变量配置maven1. 下载Maven2.配置环境变量3. 打开新终端1. 下载Maven地址:maven下载tar.gz文件,并将其解压到你自己喜欢的目录下。2.配置环境变量打开终端vi ~/.bash_profile 按 i 键进入编辑模式,在末尾添加:# MAVENexport M2_HOME=maven地址export PATH=$PATH:$M2_HOME/bin# MAVEN END点击 esc 按钮退出编辑模式,输入 :wq 保存退出。

2020-06-01 14:00:14 150

原创 看一遍就会了的策略模式(java)

看一遍就会了的策略模式在阎宏博士的《JAVA与模式》一书中开头是这样描述策略(Strategy)模式的:策略模式属于对象的行为模式。其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。策略模式的优点:开闭原则;避免使用多重条件转移语句;提高了算法的保密性和安全性:可使用策略模式以避免暴露复杂的,与算法相关的数据结构。策略模式体现了面向对象程序设计中非常重要的两个原则:封装变化的概念。

2020-05-28 15:46:31 215

原创 map.put 和 map.putAll 的关系

map.put 和 map.putAll 的关系 public static void main(String[] args) { HashMap<String, String> map = new HashMap<>(); map.put("a","1"); map.put("b","2"); System.out.println(map); HashMap<String, String&g

2020-05-25 10:45:11 2168 2

原创 vue自定义指令,看着篇文章就行了

自定义指令,看着篇文章就行了自定义指令,看着篇文章就行了vue 自定义指令demo案例自定义指令,看着篇文章就行了在vue中最常用的指令估计就是v-model 绑定数据了吧内置指令:v-for 用于遍历v-if & v-show 用于隐藏和显示元素(区别在于后者是修改 display:block|none,前者是不创建把元素从dom中删除或者创建.v-bind: 属性绑定,把数据绑定在HTML元素的属性上.v-html & v-text 把数据绑定在HTML元素的属性上,作

2020-05-22 17:11:18 178

原创 关于height:100%和height:100vh的区别了解吗,进来看看

相对于视口的高度。视口被均分为100单位的vh

2020-05-21 17:19:09 1174

原创 spring基础知识

Spring简介Spring 是一个开源框架,是一个分层的 JavaEE 一站式框架。所谓一站式框架是指 Spring 有 JavaEE 开发的每一层解决方案。WEB层:SpringMVCService层:Spring的Bean管理,声明式事务DAO层:Spring的JDBC模板,ORM模板优点:IOC:方便解耦合AOP:对程序进行扩展轻量级框架方便与其他框架整合Spring使用Spring开发包解压后的目录介绍:docs: Spring 开发规范和A

2020-05-19 14:24:12 125

原创 ssh远程登录服务器出现Permission denied, please try again. 报错

ssh远程登录服务器Permission denied, please try again使用linux 链接linux的服务器 出现Permission denied, please try again.进入 sudo vi /etc/ssh/sshd_config将PermitRootLogin 改成 yes2. 退出 :wq!3. service ssh restart4. ssh远程连接命令:ssh root@xxxxxxx5. 就成功链接上了...

2020-05-17 15:19:11 25151 10

原创 npm太慢,一招解决它!

npm太慢,一招解决它!又是被标题吸引过来的吗?如图所示 :我的npm 现在是淘宝的源淘宝仓库源和npm仓库源每10分钟同步一次,基本满足你的需求npm config ls 查看你的 npm 配置 淘宝: npm config set registry https://registry.npm.taobao.org/官网: npm config set registry http://www.npmjs.org...

2020-05-16 22:04:25 8683

原创 深度系统安装node 环境和npm

最近由于工作需要换了新系统 deepin(长的好看)需要 安装node环境跑vue nuxt项目命令 :curl -sL https://deb.nodesource.com/setup_12.x | bash - apt-get install -y nodejs点进官网 node找到downloaddeepin系统是基于Debian 系统开发的,所以,我们在找资料的时候,以 Debian 系统为准。会跳转到 git下载...

2020-05-16 21:54:45 848

原创 GIT提交出现 git push --set-upstream

git提交推送到远程出现 报错 The current branch bugfix/xxxx has no upstream branch.原因 没有和远方的仓库关联 (找不到家)推送不上去解决办法git push --set-upstream origin 分支名origin 是指定仓库...

2020-05-08 15:08:40 13243

原创 搜索引擎用过没?没用过就来看看这篇文章

入门ElasticSearch一、 什么是Elasticsearch?Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。Elasticsearch用于云计算中,能够达到实时搜索,稳定...

2020-04-28 14:44:48 143

原创 全网最简单实现mini-tomcat

实现Tomcat定义请求对象将字节流转成String 切割获取请求 和 请求方法定义响应对象将响应协议输出出去写一个自定义注解 作用于类上面在类前面加上该注解 判断是否是 servlet该类上面有我们自己定义的注解 就可以吧他放到请求map中该类继承了AbstractServlet 抽象类该抽象类用于处理请求package com.smile...

2020-04-27 17:44:18 1574 1

原创 Spring注解的懒加载 @Lazy

首先了解下@Lazy默认是true,默认延迟加载@Lazy :ioc容器启动时候,默认是加载bean 若当前的bean上有@Lazy注解时,则会延迟加载 ,就是当你使用的时候才会取加载,被初始化,以后都使用这个对象...

2020-04-03 14:15:22 866

原创 好奇springmvc是单例的还是多例的?

好奇springmvc是单例的还是多例的?最近看见一个面试题,springmvc是单例的还是多例的?当时犹豫了好久,想着多例吧。错误!默认是单例的。有状态对象(Stateful Bean) :就是有实例变量的对象,可以保存数据,是非线程安全的。每个用户有自己特有的一个实例,在用户的生存期内,bean保持了用户的信息,即“有状态”;一旦用户灭亡(调用结束或实例结束),bean的生命期也告结束。...

2020-04-03 13:33:28 1696

原创 走进Vuex的世界~~

走进Vuex的世界1. 什么是vuexVuex是一个专为Vue.js应用程序开发的状态管理模式。2. vuex的5大核心state 基本数据getters 从基本数据中派生的数据mutations 提交更改数据的方法 同步actions 像一个装饰器,包裹mutations,使他异步modules 模块化vuex3. Vuex优缺点优点方便组件间传值减少ax...

2020-03-16 18:16:42 141

原创 走进Mock.js的大门

走进Mock.js的大门背景一个项目开始前后端开发的时候,若前端一直等待后端提供接口,才开始开发,这样效率比较低。所以Mock.js就被研发出来,为了防止出现意外,还可以使用easymock(在线)Mock.js是什么?Mock.js (官网http://mockjs.com/)是一款模拟数据生成器,旨在帮助前端攻城师独立于后端进行开发,帮助编写单元测试。提供了以下模拟功能:1. 模拟...

2020-03-10 10:42:59 574

原创 Java异常体系看这一篇就够啦

常见的RuntimeExceptionNullPointerException - 空指针引用异常ClassCastException - 类型强制转换异常IllegalArgumentException - 传递非法参数异常IndexOutOfBoundsException - 下标越界异常NumberFormatException - 数字格式异常常见的非RuntimeExce...

2020-02-19 21:49:32 113

原创 学了这么久,还不知道单例模式,还不过来看看

单例设计模式什么是单例设计模式只有一个实例对象 保证对象是唯一的饿汉式单例代码:public class EHan {//创建之后会存放在永久区中 垃圾回收机制不会回收 private static final EHan EHAN = new EHan(); //构造函数 private EHan() { } public static E...

2020-02-13 12:59:31 83

原创 面试官问你注解,不慌!快看这篇文章

自定义注解 @interface 使用 @interface 关键字定义注解 String value() default ""; 成员变量 只有一个必须是value 默认值:defaule "" 成员变量类型是受限的,合法的类型包括原始类型及String,Class,annotation,Enumeration。 可以没有成员变量 :称之为标识注解 @Tar...

2020-02-09 16:47:01 157

原创 你了解微服务吗? 速度过来看看

微服务知识点1、 什么是微服务/微服务的特点单一职责:微服务中每一个服务都对应唯一的业务能力,做到单一职责。微:微服务拆分粒度较小,例如一个用户管理就可以作为一个服务,每个服务虽小,但“但五脏俱全”。独立:服务间时相互独立的,互不干扰。团队独立:每个服务都是一个独立的开发团队,人数不能过多技术独立:因为时面向服务开发,只需要提供Rest接口。部署独立:服务间虽然有调用,...

2019-12-29 14:24:48 305

原创 java回收机制是啥,看了这篇文章恍然大悟!

垃圾回收算法标记-清楚算法(Mark and Sweep)???? 标记:从根集合进行扫描,对存活的对象进行标记。???? 清除:对堆内存从头到尾进行线性遍历,回收不可达对象内存-在Mark阶段 根对象可以访问b,b又可以访问e,故be都是可到达对象,同理f,g,j,k都是可达对象未被标记未可达对象的都会被清除????意:在垃圾回收阶段,应用程序的执行会暂停,等待回收执行完毕后,再恢复程序的执行...

2019-12-27 19:35:13 195

原创 你知道java对象什么时候被判断为垃圾嘛?

对象被判断为垃圾的标准没有被其他对象引用判断为垃圾的算法引用计数算法判断对象的引用数量⭐ 通过判断对象的引用数量来决定是否可以被回收⭐ 每个对象的实例都有一个引用计数器,引用则+1,完成引用则-1⭐ 任何引用技术为0的对象都会被当作垃圾收集优点 : ???? 执行效率较高,程序执行受影响较小缺点 : ???? 无法检测出循环引用的情况,导致内存泄漏 (父对象引用子对象,子对象又...

2019-12-27 16:19:05 603

原创 2099年了,你知道什么是Java的类加载器嘛?

Java的类加载器作用编译器先把java文件编译成class字节码文件ClassLoad会把字节码文件转换成jvm中的Class对象jvm再把class对象转成实例对象ClassLoad在java 中有着非常重要的作用,他主要工作是在Class装载的加载过程,他的主要作用是 从系统外部获取二进制数据流。它是java的核心组件,所有的class都是通过ClassLoad进行...

2019-12-26 16:28:29 338 1

原创 为什么Redis能这么快?

为什么Redis能这么快?官方:100000+QPS(QPS即query per second 每秒查询的次数)完全基于内存,绝大请求是纯粹的内存操作,执行效率高它是c语言编写 数据储存在内存中 读写时 不会受到硬盘io的限制 ,所以速度极快数据节后简答,对数据操作简答redis不使用表 他的数据库不会预定义不会强制用户存储的数据进行关联,因此 性能相比其他关系数据库 高出很多 他的...

2019-12-26 08:41:54 267

原创 事务的四种隔离级别

读未提交任何问题都没有解决读已提交解决了脏读问题可重复读解决了脏读和不可重复读串行化解决了脏读,不可重复读和幻读。

2019-12-10 11:38:33 137

原创 数据库四大特性

数据库四大特性原子性事务所包含的操作,要么全成功,要么全失败隔离性事物之间是相互隔离的,互不干扰。事务a 不能被事务b 之间是不干扰,并发事务的时候是要相互隔离的。持久性对于已提交的事务,对数据的改变是永久的。一致性数据的前后保持一致, 你花出去100 ,你就得减100 商家就要加100。...

2019-12-09 09:09:02 669

原创 事务并发访问会产生的问题

数据库的隔离级别为什么会有隔离级别?若没有隔离级别,事务之间不是相互隔离的话,会出现以下问题脏读一个事务读取到了另一个未提交的事务就好比你往我这提交了1分钱 我看到确实长了1分钱 !!!然后 你那也减了1分钱突然 事务未提交成功那数据就会回滚 我的一分钱也就没了不可重复读在一个事务内 多次查询数据 结果都不一样例如你给你老婆的工资卡打了 100块钱你很开心 ...

2019-12-09 09:02:30 1342

vue-springboot登录

vue-springboot登录 vue项目登录 后台使用jpa作为持久层 springboot的项目

2019-11-30

空空如也

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

TA关注的人

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