自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

昨夜凛雨

技术的道路上十年如一日!

  • 博客(57)
  • 收藏
  • 关注

原创 SpringBoot 启动慢?那是因为你不知道它

前言在 2021 年这个小学作文中的未来年份,没有想象中的汽车满天飞,也没有实现机器人满地跑。但牛逼的是我们都有一个共识: 知乎达到了人均 “谢邀~ 人在美国刚下飞机”的生活水平,虎扑的人均收入也在 30W+ ,还有就是程序员都人均精通 SpringBoot ,哪怕和算法聊技术一言不合就满嘴 SpringCould 分布式、微服务,然而实际操作可能是 分步试 、伪服务 ... 你一个小小系统开这么多应用启动不难受?(不难受因为可以装 13) SpringBoot 这启动速度也确实令人捉急,每个应用.

2021-04-26 13:27:49 1355 2

原创 引用二方包导致应用无法启动,启动抛出SpringAware NotFound

描述引用二方包导致应用无法启动,启动抛出SpringAware NotFound问题定位发现加了 pom 文件更新了二方包的版本号就导致当前应用起不来,发现应该是pom文件的问题。当前的 pom 除了这个二方包有变动其他都没修改,只能是间接依赖除了问题。在二方包中添加了一个 jpa 的包<dependency> <groupId>javax.p...

2019-10-11 20:14:38 339

原创 CSS2 从入门到精通

1. 常用的选择器1. 元素选择器作用:通过元素选择器可以选择指定的元素语法:tag{}p{ color: red;}h1{ color: red;}2. id 选择器作用:通过元素的id属性值选中唯一的一个元素用法: #id{}#p1{ font-size: 20px;}3.类选择器通过元素的class属性值选中一组元素语法:.class{}...

2019-01-08 11:31:43 339

原创 Apache配置详解

1. 虚拟主机概念我们要想实现一个web站点,而且能够在互联网上被访问,首先它再能运行在操作系统,而且这个操作系统还要运行在物理主机上(第一它是一个主机)。在互联网上能够被访问,那我们需要一个主机,需要一个IP地址,需要一个时时在线的服务器,这需要多少资源?对众多小型站点来讲或者说对某种需求来讲,有可能都用不到服务器,也就是每天就10个人左右访问,只是需要我们在线而已,如果我们就为这一点点的需求...

2019-01-03 20:37:52 964

原创 七牛云关联Windows图床

1. 注册七牛云七牛云 地址,需要在这里进行注册2.完成实名认证需要上传身份证的正反面以及支付宝做一下认证即可。首先进入个人中心然后进行实名认证由于我已经认证过了,所以显示认证完成,未认证的用户需要按照提示认证,一般来说 5分钟就能完成认证。3. 创建对象存储只需要填一下名字,然后因为是图床所以肯定是公开的访问权限。4. 绑定域名配置完空间以后就是需要关联域名,配置 C...

2019-01-03 16:58:45 203

原创 SpringData 完全入门指南

SpringData 笔记1. 配置项目1.pom.xml&lt;?xml version="1.0" encoding="UTF-8"?&gt;&lt;project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ...

2018-12-18 09:55:53 927

原创 SpringCloud:基础

SpringCloud:基础SpringCloud 是微服务架构的一个实现框架,说他是一个框架更不如说他是一个生态,他包含了很多个技术,将这些技术组合起来形成我们的微服务架构应用。1.SpringCloud vs Dubbo最大区别:SpringCloud抛弃了Dubbo的RPC通信,采用的是基于HTTP的REST方式。 严格来说,这两种方式各有优劣。虽然从一定程...

2018-05-29 14:40:59 267

原创 netty : NioEventLoopGroup 源码分析

NioEventLoopGroup 源码分析 1. 在阅读源码时做了一定的注释,并且做了一些测试分析源码内的执行流程,由于博客篇幅有限。为了方便 IDE 查看、跟踪、调试 代码,所以在 github 上提供 netty 的源码、详细的注释及测试用例。欢迎大家 star、fork ! 2. 由于个人水平有限,对源码的分析理解可能存在偏差或不透彻的地方还请大家在评论区指出,谢谢!...

2018-04-08 11:07:30 261

原创 Semaphore 源码分析

Semaphore 源码分析 1. 在阅读源码时做了大量的注释,并且做了一些测试分析源码内的执行流程,由于博客篇幅有限,并且代码阅读起来没有 IDE 方便,所以在 github 上提供JDK1.8 的源码、详细的注释及测试用例。欢迎大家 star、fork ! 2. 由于个人水平有限,对源码的分析理解可能存在偏差或不透彻的地方还请大家在评论区指出,谢谢!1. Semep...

2018-04-01 20:07:12 700 2

原创 ReentrantLock 与 AQS 源码分析

ReentrantLock 与 AQS 源码分析1. 基本结构   重入锁 ReetrantLock,JDK 1.5新增的类,作用与synchronized关键字相当,但比synchronized更加灵活。ReetrantLock本身也是一种支持重进入的锁,即该锁可以支持一个线程对资源重复加锁,但是加锁多少次,就必须解锁多少次,这样才可以成功释放锁。1. 继承没有继承任何类,...

2018-03-31 21:28:00 1057

原创 synchronized 原理分析

synchronized 原理分析1. synchronized 介绍   在并发程序中,这个关键字可能是出现频率最高的一个字段,他可以避免多线程中的安全问题,对代码进行同步。同步的方式其实就是隐式的加锁,加锁过程是有 jvm 帮我们完成的,再生成的字节码中会有体现,如果反编译带有不可消除的 synchronized 关键字的代码块的 class 文件我们会发现有两个特殊的指令 mo...

2018-03-30 19:35:42 244

原创 ConcurrentHashMap 源码分析

ConcurrentHashMap 源码分析1. 前言   终于到这个类了,其实在前面很过很多次这个类,因为这个类代码量比较大,并且涉及到并发的问题,还有一点就是这个代码有些真的晦涩,不好懂。前前后后大概花了三天的时间看完的一些重要操作,接着今天来整理一下。    好了首先介绍一个个人的感受:首先这个类很多操作和 HashMap 是类似的,但是麻烦就麻烦在 锁分离技术 ...

2018-03-29 17:34:04 292

原创 LinkedHashMap 源码分析

LinkedHashMap 源码分析1. 基本结构1. 实现实现的接口是 Map 2. 继承   继承的是 HashMap 这个就比较熟悉了,事实上我们会看到 LinkedHashMap 代码量非常的少,主要就是因为他继承的 HashMap ,继承了大多数的操作。 仔细一点的都会发现 HashMap 里面有非常多的空白方法,这些方法其实是模板方法,为了让继承 Ha...

2018-03-26 22:40:05 188

原创 LinkedList 源码分析

LinkedList 源码分析1.结构1. 继承  该类继承自 AbstractSequentialList 这个是由于他是一个顺序的列表,所以说继承的是一个顺序的 List2. 实现这个类实现的接口比较多,具体如下:首先这个类是一个 List 自然有 List 接口然后由于这个类是实现了 Deque 这个接口是双端队列的接口,所以说它是具有双端队列的特性的...

2018-03-26 22:39:24 172

原创 ArrayList 源码分析

ArrayList 源码分析1. 结构  首先我们需要对 ArrayList 有一个大致的了解就从结构来看看吧.1. 继承  该类继承自 AbstractList 这个比较好说2. 实现这个类实现的接口比较多,具体如下:首先这个类是一个 List 自然有 List 接口然后由于这个类需要进行随机访问,所谓随机访问就是用下标任一访问,所以实现了Random...

2018-03-26 22:38:47 208

原创 HashMap 源码分析

HashMap 源码分析1.结构1. 继承  该类继承自 AbstractMap 这个类似于 ArrayList2. 实现具体如下:首先这个类是一个 Map 自然有 Map 接口然后就是两个集合框架肯定会实现的两个接口 Cloneable, Serializable 。 3. 主要字段1. 属性字段 // 默认大小 16 ...

2018-03-26 22:38:10 184

原创 TCP 总结

TCP 总结 计算机网络中比较中要的无非就是 TCP/IP 协议栈,以及应用层的 HTTP 和 HTTPS 。 前几天一直炒的的比较火的就是 HTTP/2.0 了,但是其实 HTTP/2.0 早在2015年的时候就已经出来了,并且这个版本是基于 Google 公司的 SPDY 协议发布的,其实说白了就是用的 SPDY 做了一点修改。 好了今天的主题是 TCP 就不过多的介绍 H...

2018-03-25 18:08:05 535

原创 LeetCode-Palindromic Substrings

package Classify.DP.Medium;import org.junit.jupiter.api.Test;public class PalindromicSubstrings {/** * 基本思路:这里的 dp 方程的每一个元素就代表我要以当前元素作为回文子串的结尾时候的回文子串的数量 * 那么递推公式就是以上一个元素结尾时候的子串数量加上本次的结尾的子串的数量就能获得总数量了

2017-10-12 19:54:57 280

原创 LeetCode-2 Keys Keyboard

package Classify.DP.Medium;import org.junit.jupiter.api.Test;/** * Initially on a notepad only one character ‘A’ is present. You can perform two operations on this notepad for each step: Copy A

2017-10-12 18:02:13 305

原创 Java多线程JUC

1. volatile 关键字多线程访问的时候,一个比较严重的问题就是内存不可见,其实在内存访问的时候每一个线程都有一个自己的缓冲区,每次在做修改的时候都是从主存取到数据,然后放到自己的缓冲区中,在做完修改之后放回主存。这样每一个线程之间的变量是不可见的。造成读到的数据可能始终就是错误的,因此有一个关键字可以使得这个共享变量称为透明的。就好像所有的操作就直接是在内存中操作一样,因为他一直不停的去同步

2017-08-20 10:13:03 427

原创 Java8新特性

1.HashMap首先就是对 java 的 HashMap 进行了修改,以前是通过 hashCode 方法来判断他们的地址值是否一样 ,如果相同的话再使用 equals 方法比对他们的 equals 返回的结果是否一样,是则不存入否则的话就形成一个链表 直接挂在原有元素的后面。这个地方就有一个比较大的问题就是使用 hashCode 方法的时候组字坏的情况时需要和每一个元素 比对 hashCod

2017-08-20 10:12:48 312

原创 JavaIO

1.字节流和字符流在IO有两种数据传输格式一个是字符流还一个是字节流,但是字符流就会涉及到编码的问题。 1. 一开始美国使用的自己的编码表就是ASCII表 2. 中国的字符需要被识别也需要编码表于是就有了GB2312 3. 但是由于中国的子很多,还有少数名族等等后来又进行了优化扩容就出现了GBK 4. 最后国际标准组织制定了一个包含所有国家所有地区的码表就是Unicode 5. 之后对Un

2017-08-09 19:01:33 374

原创 Java范型

1.java泛型及就是在jdk1.5之后出现的一个新的安全机制 我们发现在集合框架中我们可以放入任何的元素,然而这样做并没有任何意义,绝大多时候我们是默认我们 知道这个容器需要存放什么样的内容,但是用户的输入是不安全的如果他们输入了各种类型然后我们只对某些类型 进行了处理显然到时候运行时必然报错 所以为了解决这个问题,类似于数组的解决方式给集合限定了类型使用尖括号来限定,当然

2017-08-09 19:01:08 340 1

原创 Java多线程

1.复写run方法的目的在于,把要运行的代码放到run方法里面,也就是新的线程要跑什么内容 这也就是第一种多线程的方法,其主要的步骤如下: 1. 继承Thread类 2. 复写run方法 3. 创建对象 4. start 2.任何一个程序至少有一个线程就是主线程,主线程也是main方法的线程,这个线程是由jvm启动的,当我们自己创建新的线程的时候实际上是在主线程之外另开的新的线程和主线程

2017-08-09 19:00:20 236

原创 Java集合框架Map

map集合是一对一对的存放,而且要保证键名的唯一性。map的共性方法: 1.添加: put(K key,V value) putAll(K key,V value) 2.删除: clear() remove(Object key) 3.判断: isEmpty() constrainKey(object key) const

2017-08-09 15:35:35 408

原创 Java集合框架Collections

集合就是存放对象的,他比数组好的一点就是他一开始不清楚自己长度 容器一般是分为很多种的,很多的容器在一起然后进过断的抽象和抽取就成了一个体系,我们称之为集合框架 我们看体系首先是看顶层的容器,他是底层的容器都有的特性,然后在逐步求精 最顶层的我们称之为collection 在util包中的在collection中分为两个比较常用的子接口分别是list和set。 list是类似于数组的那种,

2017-08-09 14:56:28 366

原创 Java面向对象基础(二)

### 1.构造器:1. 构造函数在一个类没有写任何的构造函数的时候,系统会生成一个默认的空参数构造函数,这个构造函数的修饰符就是类的修饰符,当我们定义了一个构造函数,默认的构造函数就不存在了而不会出现重载 2. 构造函数是没有返回值的,他没有返回值不是指他就是void,因为void指的是函数的返回值为void类型,他是有返回值的。而没有返回值则是说明根本不用写,这两个有很大区别。 3. 没有

2017-08-09 14:30:59 247

原创 Java基本包装类型

基本类型的对象包装,也就是将常用的基本数据类型包装成对象 * byte Byte * short Short * int Integer * long Long * boolean Boolean * float Float * double Double * char Character 最常用的作用就是基本数据类型与字符串的转换1. 基本数据类型转字符串:基本数据类型+”

2017-08-09 11:50:07 245

原创 Java面向对象基础

面向对象一直是一种很流行的思想,他的精髓也就在于他的三大特性:封装,继承和多态。本文就在这三个方面简单的谈一谈Java的面向对象基础。1.封装:    封装顾名思义,就是将一些对象的属性和方法隐藏于本类之中,其他的类无法访问本类的这些被封装的属性和方法。也就是这些方法和属性仅仅是为了本类服务的。 除了为本类服务之外封装还可以只暴露自己想给别人提供的服务,而对于一些特殊的底层的服务不希望别人能看到,

2017-08-09 11:49:36 293

原创 Java位操作

无论说是在哪一门计算机语言,位操作运算对于计算机来说肯定是最高效的,因为计算机的底层是按就是二进制,而位操作就是为了节省开销,加快程序的执行速度,以及真正的实现对数的二进制操作。      使用位操作,很多代码看起来会很简洁,并且执行速度也会随之提高。在大多数编程语言中都会有 << 和 >> 这两个符号向左的就是左移,反之则是右移这个符号的左边就是需要操作的数,而右边就代表了对这个数移动多少位。

2017-08-09 11:48:54 568 2

原创 Highcharts(七)之版权信息

credits:{ // enabled:true, // 默认值,如果想去掉版权信息,设置为false即可 text:'www.hcharts.cn', // 显示的文字 href:'http://www.hcharts.cn', // 链接地址 position:{ // 位置设置 align:

2016-07-24 17:14:12 685

原创 Highcharts(六)之提示框

1.提示框的背景,边框宽度,边框颜色tooltip: { backgroundColor:'#ff0000', borderWidth: 1, borderColor: '#AAA' },2.格式化提示框:formatter: 数据提示框格式化函数,功能最强大也是最灵活的方法,函

2016-07-24 17:13:50 2791

原创 Highcharts(五)之颜色

1.统一设置颜色:数据列调用颜色的方式是第 n 个数据列使用第 n 个颜色数组里的值,当序列的数量超过颜色数组的长度,后续的序列将会从头调用。$(function () { $('#container').highcharts({ chart: { type: 'pie' }, colors: ['#058DC7', '

2016-07-24 17:13:28 588

原创 Highcharts(四)之数据列

1.数据列中的数据填充:方法一:一维数组如果有categories属性的话就是使用一维数组data : [1, 4, 6, 9, 10] 方法二:二维数组如果没有categories属性的话就是使用二维数组data : [ [5, 2], [6,3], [8,2] ] 方法三:集合series:[{ data : [{ name : "point 1", color : "#

2016-07-24 17:12:42 1232

原创 Highcharts(三)之标题

1.静态设定标题属性:title: { text: '标题'},subtitle: { text: '副标题'}2.动态设定标题属性:1.获取标题:var chart = new Highcharts.Chart(options); // 创建Highcharts对象var title = chart.title.textStr; // 对象获

2016-07-24 17:11:55 1200

原创 Highcharts(二)之基本属性

一.基本组成:Highcharts包含标题(Title):主标题是必须的但是subTTitle不是必须坐标轴(Axis):有x坐标(xAxis)和y坐标(yAxis)数据列(Series):每个曲线,每个柱形条组,每个饼图的部分数据提示框(Tooltip):鼠标放上去的提示框图例(Legend):通过点击标示可以显示或隐藏该数据列版权信息(Credits):一般是highcharts的官网

2016-07-24 17:11:12 517

原创 Highcharts(一)之第一个Dome

一个简单的实例:1.在highcharts中属性以逗号隔开 2.一个大的属性中使用{},在{}中填写具体的属性 3.除了数据其他的属性一般使用””包含首先创建一个html文件在head中包含: <script type="text/javascript" src="http://cdn.hcharts.cn/jquery/jquery-1.8.3.min.js"></script> <sc

2016-07-24 17:08:54 319

原创 Bash通配符及特殊符号

1.*是任意多个任意字符(任意可以是0)ls *abc会显示所有以abc结尾的或者就是abc的文件2.[]匹配括号中的任意一个,必须是一个。ls [abc]df 匹配以abc其中一个开始,以df结尾的,文件名是三个字符3.?这个是匹配任意一个字符ls ?asc四个字符,以asc结尾4.[^]与2同只是取反5.”单引号中所有的特殊符号都没有特殊的含义6.”“双引号特殊符号都有特殊意义7.“反引号

2016-05-14 14:59:56 531

原创 Bash历史命令

1.清空历史命令:history -c 2.强制保存到历史命令文件(~/.bash_history)中:history -w3.更改历史命令保存文件存的条数vim /etc/profile (profile是环境变量的配置文件)HISTZISE=10004.历史命令的调用:!n //重复执行第n条命令!! //重复执行上一条命令!字符串 //重复执行最后一条的含有字符串的命令

2016-05-14 14:59:34 393

原创 Bash别名与快捷键

1.定义别名:alias vi='vim'2.查看别名:alias 3.让某个用户永久生效vim ~/.bashrc4.删除别名ualias vi5.快捷键:ctrl+u 删除或剪切光标左侧的所有字符ctrl+y 粘贴ctrl+r 搜索历史命令ctrl+d 推出登陆ctrl+z 暂停放入后台ctrl+l 清屏ctrl+a 光标移到开头ctrl+e 光标移到结尾

2016-05-14 14:59:08 349

空空如也

空空如也

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

TA关注的人

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