自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小白鼠丶

只要抱着良好的愿望演奏,演员的演技可以不予苛求。

  • 博客(218)
  • 资源 (4)
  • 问答 (6)
  • 收藏
  • 关注

原创 SpringBoot 内置Tomcat优化

参考博客:SpringBoot项目优化和Jvm调优(楼主亲测,真实有效)Tomcat-connector的微调(2): maxConnections, maxThreads什么是IO,BIO,NIO,AIOTomcat的BIO、NIO、APR模式对比与性能测试结果spring boot 设置tomcat post参数限制Java BIO、NIO、AIO同步 : 自己亲自...

2019-11-06 23:24:30 8407

原创 Map总结

Map常用实现类总结Map是一种(key/value)的映射结构,其它语言里可能称作字典(Dictionary),包括java早期也是叫做字典,Map中的元素是一个key只能对应一个value,不能存在重复的key。java中提供的Map的实现主要有HashMap、LinkedHashMap、WeakHashMap、TreeMap、ConcurrentHashMap、Con...

2019-11-06 22:06:22 233

原创 Nginx 配置文件解析

1.Nginx的配置文件结构 nginx.conf由多个块组成,最外面的块是main,main包含Events和HTTP,HTTP包含upstream和多个Server,Server又包含多个locationmain(全局设置)、server(主机设置)、upstream(负载均衡服务器设置)和 location(URL匹配特定位置的设置)。main块设置的指令将影响其他所有设...

2019-11-05 15:16:15 192

原创 阿里云服务器 Docker安装Nginx,RabbitMQ

1 搜索nginx镜像.docker search nginx 2 拉取nginx最新的镜像 docker pull ngnix 3 启动一个容器docker run --name nginx -p 8081:80 -d nginxnginx 容器名称。 -d设置容器在在后台一直运行。 -p端口进行映射,将本地 8081 端口映射到...

2019-10-31 22:55:23 936

原创 阿里云服务器 Docker安装MYSQL Redis

Mysql1.查找mysql镜像 docker search mysql2 拉取mysql5.6版本镜像 docker pull mysql:5.63. 使用mysql镜像 1. 运行容器(运行时在一行 多分几行好分析)docker run -p 3306:3306 --name mymysql -v $PWD/conf:/etc/mysql/c...

2019-10-29 23:15:42 435

转载 J.U.C之并发工具类:CountDownLatch

实例/** * Tips: * * @author Liuq * @version 2019年10月24日 */public class CountDownLatchDemo { public static void main(String [] args) throws Exception{ CountDownLatch countDownLa...

2019-10-28 22:17:25 151

原创 Java 公平锁/非公平锁/可重入锁/递归锁/自旋锁/独占锁(写锁)/共享锁(读锁)/互斥锁 代码实现

目录公平锁/非公平锁两者区别可重入锁(也叫递归锁)理论知识实例(synchronized)实例(ReentrantLock)自旋锁实例独占锁(写锁)/共享锁(读锁)/互斥锁公平锁/非公平锁公平锁:是指多个线程按照申请锁的顺序来获取锁,类似于排队打饭,先来后到非公平锁:是指多个线程获取锁的顺序并不是按照申请锁的顺序,有可能后申请的线程比先申请的线程优...

2019-10-24 08:38:09 347

原创 Nginx 简介以及常用概念

1.1 Nginx 概述Nginx ("engine x") 是一个高性能的 HTTP 和反向代理服务器,特点是占有内存少,并发能 力强,事实上 nginx 的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用 nginx 网站用户有:百度、京东、新浪、网易、腾讯、淘宝等1.2 Nginx 作为 web 服务器Nginx 可以作为静态页面的 web 服务器,同时还支持 CG...

2019-10-23 23:08:10 389 1

原创 值传递练习-String的特殊性

IDEA 高亮显示变量作用域String的特殊性在这一步两个指针都是指向的常量池里面abc,当str=xxx时,由于常量池中没有就新建或者存在时复用所以changevalue3方法的str指向了xxx但是main方法的str还是指向abc ,打印出来的时main方法的str的值 所以是abc。...

2019-10-17 16:42:23 130

原创 集合类线程不安全问题重现以及解决方案

目录导致原因List不安全Demo解决方案Set不安全Demo解决方案Map不安全Demo解决方案:导致原因 并发修改争抢导致的List不安全Demo public static void main(String [] args){ ArrayList<String> list = new Ar...

2019-10-17 16:22:05 180

原创 ABA问题模拟以及解决方案

【Java并发编程】AtomicReference 原子引用AtomicReference和AtomicInteger非常类似,不同之处就在于AtomicInteger是对整数的封装,底层采用的是compareAndSwapInt实现CAS,比较的是数值是否相等,而AtomicReference则对应普通的对象引用,底层使用的是compareAndSwapObject实现CAS,比较的是两个对...

2019-10-17 15:09:21 1220

转载 happen-before规则

【死磕Java并发】—–Java内存模型之happens-before

2019-10-17 12:24:33 203

原创 volatile关键字

目录volatile是什么可见性不保证原子性禁止指令重排序volatile是什么 volatile是java虚拟机提供的轻量级同步机制保证可见性 禁止指令重排序 不保证原子性可见性不保证原子性/** * Tips: * * @author Liuq * @version 2019年10月16日 */publi...

2019-10-17 09:56:57 117

原创 Apollo SpringBoot 客户端使用

1.简介Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。服务端基于Spring Boot和Spring Cloud开发,打包后可以直接运行,不需要额外安装Tomcat等应用容器。Java客户端不依赖任何框架,能够运行于所有Java运行时环境...

2019-10-16 08:40:31 1075

原创 CAS底层原理分析

目录CAS底层原理getAndIncrement()unsafe类AtomicInteger类CAS是什么CAS底层具体实现第一步第二步第三步第四步CAS总结:CAS 优缺点CAS是什么?:英文解释:比较并交换public static void main(String[] args) { AtomicInteger ...

2019-10-11 22:56:54 913

原创 Think In Java 第四章 控制执行流程

?普通for循环在遍历集合时使用下标来定位集合中的元素,java在jdk1.5中开始支持foreach循环,foreach在一定程度上简化了对集合的遍历,在遍历数组、集合的时候,foreach拥有不错的性能。但是foreach不能完全代替for循环。foreach限制场景有以下4点:(1)使用foreach来遍历集合时,集合必须实现Iterator接口,foreach就是使用Iterator接口来实

2019-10-11 11:52:00 216

原创 智能输入框提示

"java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>html>head>title>Insert title heretitle>style type="text/css"> #mydiv{ position:absolute; left:50%;

2019-10-11 11:51:41 362

原创 获取文件字节数,获取文件换行符,追加字符串到文件指定行

public static int getBytePosition(int rowNumber,String filePath){ BufferedReader bufReader = null; String lineStr = ""; StringBuffer nContent = null; in...

2019-10-11 11:51:19 452

原创 Spring Data Jpa >>JpaSpecificationExecutor 查询语句

Repository 必须继承@Repositorypublic interface GeReRepository extends JpaRepository&lt;Ge,Long&gt;, JpaSpecificationExecutor&lt;Ge&gt; {}1.两张表 一对一关系 进行查询 @Query("select bu from Ge bu where bu....

2019-10-11 11:50:57 1663

原创 Spring In Action 第一章

参考博客:http://tantanit.com/springinaction-di-si-ban-di-yi-zhang-jiang-spring-fu-zhu-shi-jian-du-shu-bi-ji-yi/ 《Spring in Action》第四版第一章《将 Spring 付诸实践》读书笔记(一) Spring 做了很多事,但是 Spring 最重要的是以下两个特性: 1...

2019-10-11 11:50:19 231

转载 TreeMap 总结

简介TreeMap使用红黑树存储元素,可以保证元素按key值的大小进行遍历。SortedMap规定了元素可以按key的大小来遍历,它定义了一些返回部分map的方法。public interface SortedMap<K,V> extends Map<K,V> { // key的比较器 Comparator<? super K>...

2019-10-11 10:40:47 711

转载 自增变量(从 i++ 和 ++i 说起局部变量表和操作数栈)

import static java.lang.System.*;public class Test01 { public static void main(String[] args){ int i=1; i=i++; int j=i++; int k=i+ ++i * i++; out.prin...

2019-10-10 22:36:59 545

原创 秒杀 如何解决超卖

记录一下方法在订单表加上 orderID和userID 为唯一索引 在生成订单表之前会有一个减少库存的操作,在这一步加上数量大于0的操作@Update("update miaosha_goods set stock_count = stock_count - 1 where goods_id = #{goodsId} and stock_count > 0")...

2019-10-10 21:12:51 304

原创 Set 总结

目录HashSet总结:彩蛋LinkedHashSet总结彩蛋TreeSet总结彩蛋问题java里面的Set对应于数学概念上的集合,里面的元素是不可重复的,通常使用Map或者List来实现。HashSet参考博客:【死磕 Java 集合】— HashSet源码分析HashSet是Set的一种实现方式,底层主要使用Hash...

2019-10-09 15:44:10 137

原创 Spring 框架常用的接口和类

InitializingBean 在Bean的属性都被设置完毕之后,才会调用在我们将一个Bean交给Spring管理的时候,有时候我们的Bean中有某个属性需要注入,但是又不能通过一般的方式注入,什么意思呢?举个栗子:首先我们有个Service,在该Service中有一个属性,但是该属性不支持Spring注入,只能通过Build或者new的方式创建(比如StringBuffe...

2019-10-09 09:24:33 647

原创 JVM 运行时内存总结以及常见问题

JDK1.8运行时内存图片来自https://www.cnblogs.com/lijiasnong/p/9963841.html参考博客:方法区:https://www.jianshu.com/p/10584345b10a元空间:http://www.234plus.com/?p=203堆内存:https://blog.csdn.net/lingbo229/art...

2019-10-09 09:05:48 349

原创 原码,反码,补码,左移,右移,无符号右移,与,异或,取反运算

原码、反码和补码1、所谓原码就是二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。2、反码表示法规定:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。原码10010= 反码11101 (10010,1为符号码,故为负)(11101) 二进制= -13 十进制3、补码表示法规定:正数的补码与其原码相同;负数的补码是在其反码的...

2019-09-20 17:04:56 3429

原创 List总结

目录List常用实现类总结实现类有ArrayList、LinkedList、Vector、Stack等使用场景ArrayList读取速度快于LinkedList,而插入和删除速度又慢于LinkedList原因ArrayListSystem.arraycopy(Object src, int srcPos, Object dest, int destPos, int...

2019-09-19 17:04:46 301

原创 程序执行顺序 总结

1/** * Tips: 在 Java 语言中,变量不能被重写 * * @author Liuq * @version 2019年09月19日 */class A { public int x = 0; public static int y = 0; public void m() { System.out.print("A"); ...

2019-09-19 15:10:28 1865

原创 Spring将bean初始化完毕后执行一些事情

1.定义一个接口(具体的逻辑实现)public interface SpringFrameLoaded { void postSpringLoaded(); /** * 这个操作是否必须正常完成 * * @return 是否必须 */ default boolean required() { retu...

2019-09-17 16:12:39 3793

原创 SpringBoot2.x @EnableAutoConfiguration 以及自定义Starter

参考博客SpringBoot2.x @EnableAutoConfiguration解析@EnableAutoConfiguration 当项目启动时如果某个类存在就自动配置这个Bean@EnableAutoConfiguration 是自定义Starter 的基础自定义starter 就是把许多项目共用的抽出来放到一个项目里 打成jar包 放到maven远程仓库供所有...

2019-09-17 15:45:57 433

原创 SpringBoot2.x ApplicationLIsteners

目录ApplicationLIsteners应用ApplicationLIstenersIn addition to the usual Spring Framework events, such asContextRefreshedEvent, aSpringApplicationsends some additional application events....

2019-09-17 15:28:28 557

原创 Java守护线程和main线程整理

Java中有两类线程: User Thread(用户线程)、Daemon Thread(守护线程) 用个比较通俗的比如,任何一个守护线程都是整个JVM中所有非守护线程的保姆:只要当前JVM实例中尚存在任何一个非守护线程没有结束,守护线程就全部工作; 只有当最后一个非守护线程结束时,守护线程随着JVM一同结束工作。 Daemon的作用是为其他线程的运行提供便利服务,守护线程最典...

2019-09-12 16:46:05 1786

原创 Mysql 为什么选择B/B+Tree 以及这两者的差别

为什么用B/B+树这种结构来实现索引呢?? 红黑树等结构也可以用来实现索引,但是文件系统及数据库系统普遍使用B/B+树结构来实现索引。mysql是基于磁盘的数据库,索引是以索引文件的形式存在于磁盘中的,索引的查找过程就会涉及到磁盘IO(为什么涉及到磁盘IO请看文章后面的附加理解部分)消耗,磁盘IO的消耗相比较于内存IO的消耗要高好几个数量级,所以索引的组织结构要设计得在查找关键字时...

2019-09-04 16:41:47 1236

原创 Mysql 笛卡尔积

首先,先简单解释一下笛卡尔积。现在,我们有两个集合A和B。A = {0,1} B = {2,3,4}集合 A×B 和 B×A的结果集就可以分别表示为以下这种形式:A×B = {(0,2),(1,2),(0,3),(1,3),(0,4),(1,4)};B×A = {(2,0),(2,1),(3,0),(3,1),(4,0),(4,1)};以上A×B和B×A的结果就可以...

2019-09-02 16:05:53 4287

原创 归并排序(Java)

归并排序介绍:归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-conquer)策略(分治法将问题分(divide)成一些小的问题然后递归求解,而治(conquer)的阶段则将分的阶段得到的各答案"修补"在一起,即分而治之)。归并排序思想示意图1-基本思想:可以看到这种结构很像一棵完全二叉树归并排序思想示意图2-合并相邻...

2019-08-30 16:59:14 549

原创 快速排序(Java)

快速排序法介绍:快速排序(Quicksort)是对冒泡排序的一种改进。基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列快速排序法示意图代码实现public class QuickSort { public sta...

2019-08-30 15:47:14 395 1

原创 希尔排序(Java)

希尔排序法介绍希尔排序是希尔(Donald Shell)于1959年提出的一种排序算法。希尔排序也是一种插入排序,它是简单插入排序经过改进之后的一个更高效的版本,也称为缩小增量排序。希尔排序法基本思想希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法便终止.示意图希...

2019-08-30 15:09:01 590

原创 算法的时间复杂度介绍

目录度量一个程序(算法)执行时间的两种方法事后统计的方法事前估算的方法时间频度计算时间复杂度的方法:常见的时间复杂度平均时间复杂度和最坏时间复杂度度量一个程序(算法)执行时间的两种方法事后统计的方法这种方法可行, 但是有两个问题:一是要想对设计的算法的运行性能进行评测,需要实际运行该程序;二是所得时间的统计量依赖于计算机的硬件、软件等环境因素,...

2019-08-29 18:00:41 1064 1

原创 排序算法介绍

排序也称排序算法 (Sort Algorithm),排序是将一 组数据,依指定的顺序进行排列 的过程。排序的分类:1) 内部排序: 指将需要处理的所有数据都加载 到内部存储器中进行排序。 2) 外部排序法: 数据量过大,无法全部加载到内 存中,需要借助外部存储进行 排序。 3) 常见的排序算法分类(见右图): ...

2019-08-29 17:46:11 468

尚硅谷 Spring Boot 文档 不包含代码

尚硅谷 Spring B oot上篇 文档 不包含代码以及视频,

2018-09-12

Maven学习笔记

学习Maven的笔记,在学习尚硅谷的视屏中所得,简单明了

2018-05-13

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

TA关注的人

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