自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Mysql——InnoDB存储引擎索引

索引是程序设计和开发的一个重要方面。若索引太多,应用程序的性能可能会受到影响(插入和删除时会对表上的索引进行调整),而索引太少,对查询性能又会有影响。所以需要找到一个合适的平衡点。InnoDB存储引擎支持的集中常见索引:B+树索引全文索引哈希索引一、B+树索引B+树索引并不能找到一个给定键值的具体行,B+树索引能找到的只是被查找数据行所在的页。然后数据库通过把页读到内存,再在内存中进行...

2019-07-21 15:59:55 440

原创 Mysql——B-Tree、B+Tree基础

https://aotu.io/notes/2016/08/16/nginx-https/index.htmlhttps://blog.csdn.net/sinat_36722750/article/details/82946311

2019-07-18 22:08:32 134

原创 JVM——Synchronized

一、逃逸分析逃逸分析(Escape Analyis)是目前Java虚拟机中比较前言的优化技术,它与类型继承关系分析一样,并不是直接优化代码的手段,而是为其他优化手段提供依据的分析技术。逃逸分析的基本行为就是分析对象动态作用域:当一个对象在方法中被定义后,它可能被外部方法所引用,例如作为调用参数传递到其他方法中,称为方法逃逸。甚至还有可能被外部线程访问到,譬如赋值给类变量或可以在其他线程中访问的...

2019-07-18 20:46:40 268

原创 JVM——Java内存模型与线程

Java虚拟机规范中试图定义一种Java内存模型(JMM)来屏蔽掉各种硬件和操作系统的内存访问差异,以实现让Java程序在各种平台下都能达到一致的内存访问效果。1.1、主内存与工作内存Java内存模型的主要目标是定义程序中各个变量的访问规则,即在虚拟机中将变量存储到内存和从内存中取出变量这样的底层细节。此处的变量(Variables)与Java编程中所说的变量有所区别,它包括实例字段、静态字段...

2019-07-17 21:59:50 183

原创 JVM——类加载器

在java虚拟机中,任意一个类,都需要由加载它的类加载器和这个类本身一同确定其在Java虚拟机中的唯一性,每一个类加载器,都拥有一个独立的类名称空间。就是说,比较两个类是否”相等“,只有在这两个类是由同一个类加载器加载的前提下才有意义,否则,即使这两个类来源于同一个Class文件,被同一个虚拟机加载,只要加载它们的类加载器不同,那这两个类就必不相等。...

2019-07-15 20:31:35 143

原创 JVM——虚拟机类加载机制

虚拟机把类描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制一、类加载的时机类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载、验证、准备、解析、初始化、使用和卸载。其中验证、准备、解析三个部分统称为连接。加载、验证、准备、初始化和卸载这5个阶段的顺序是确定的,类的加载过程...

2019-07-14 22:05:52 125

原创 JVM——虚拟机性能监控(七)

打发士

2019-07-11 22:06:45 147

原创 JVM——对象分配(六)

一、内存分配与回收策略内存分配往大方向讲,就是在堆上分配,对象主要分配在新生代的Eden区上,如果启动了本地线程分配缓冲(TLAB),将按线程优先在TLAB上分配。少数情况下也可以直接分配在老年代中,分配的规整并不是百分百固定的,其细节取决于当前使用的是哪一种垃圾收集器组合,还有虚拟机与内存的相关参数。1.1、对象优先在Eden分配大多数情况下,对象在新生代Eden区中分配,当Eden区没有...

2019-07-11 22:05:18 142

原创 JVM——垃圾收集器(五)

todo

2019-07-11 21:06:57 99

原创 JVM——垃圾收集算法(四)

一、垃圾收集算法1.1、标记-清除该算法分为“标记”和“清除”两个阶段:首先标记出所有需要回收的对象,在标记完成后统一回收被标记的对象,标记过程在前一章节中已经介绍过。它是最基础的收集算法,后续的收集算法都是基于这种思路并对其不足进行改进。它的不足主要有两个:一个是效率问题,标记和清除两个过程的效率都不高,另一个是空间问题,标记清除后会产生大量连续的内存碎片,空间碎片太多可能会导致以后在运行过...

2019-07-10 21:33:50 116

原创 JVM——垃圾收集器与内存分配策略(三)

对于垃圾收回我们主要关注3件事情:1.哪些内存需要回收?2.什么时候回收?3.如何回收?在java内存运行时区域的各个部分,其中程序计数器、虚拟机栈、本地方法栈这3个区域随线程而生,随线程而灭。栈中的栈帧随着方法的进入和退出而有条不紊地执行这入栈和出栈,每一个栈帧中分配多少内存基本在类结构确定下来时就已知的,因此在这一个区域的内存分配和回收都具备确定性,不需要过多考虑回收的问题。而jav...

2019-07-09 22:28:55 111

原创 JVM——java对象的创建和访问(二)

一、对象的创建在Java程序运行的过程中无时无刻都有对象被创建出来。在虚拟机中单接受到创建对象(仅讨论普通对象的创建)命令时,虚拟机首先将检查这个指令的参数是否能在运行时常量池中定位到一个类的符号引用,并检查是否已经被加载、解析和初始化过。如果没有先要进行类的加载。在类加载通过后,虚拟机将为新生对象分配内存,对象所需的内存的大小在类加载完成后就可以完全确定。1.1、内存的分配方式内存分配有两...

2019-07-06 23:49:31 228

原创 JVM——虚拟机运行时数据区域(一)

关于虚拟机模块的文章都是基于JDK1.8来分析。一、虚拟机运行时数据区域1.2、程序计数器程序计数器是一块较小的内存空间,可以看作是当前线程所执行代码的行号指示器。在虚拟机的概念里,字节码解释器工作时就是通过改变...

2019-07-06 20:35:01 144

原创 CompletableFuture的使用

CompletableFuture类的源码描述:一个可以显式完成(设置其值和状态),可以用作CompletionStage,支持在其完成时触发依赖函数和操作的CompletableFuture。当两个或更多线程尝试去调用一个CompletableFuture实例的#complete,#completeExceptionally,#cancel方法时,只会有一个会成功。此外,除了这些和与直接操...

2019-07-04 20:32:08 184

原创 CyclicBarrier的使用

public class CyclicBarrierTest { public static void main(String[] args) { final CyclicBarrier barrier = new CyclicBarrier(3, () -> System.out.println("cyclicBarrier")); for (int...

2019-07-03 22:24:08 79

原创 CountDownLatch的使用

欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:全新的界面设计 ,将会带来全新的写作体...

2019-07-03 20:55:44 112

原创 springboot2.0+版本创建dataSource时报异常

今天使用springboot2.0.2版本的时候配置阿里的druid的数据库连接池时,出现下面的异常。以前使用springboot1.5的时候从没有出现过,折腾了一个多小时终于找到问题了在启动类中加上如下配置就可以使用了...

2018-08-15 18:27:22 1053

原创 CentOS7中安装mysql数据库

1.执行命令下载安装包:wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm2.升级包:rpm -ivh mysql-community-release-el7-5.noarch.rpmcd /etc/yum.repos.d/3.安装:yum -y install mysql-...

2018-05-24 19:44:39 457

原创 CentOS7中安装JDK的方法

1.下载前的准备,创建要存放安装包的文件并进入该文件: 2.通过wget下载JDK安装包:http后面为jdk的下载地址,可以在官网复制对应版本的下载地址。也可以通过其他方式获取(如FileZilla导入),我平时都是通过FileZilla软件传的。别问我这里为什么要用wget方式获取,哥只想说因为一个字——“逼格”。好像多了一个字!2.解压:3.配置环境变量编辑/etc/profile文件,在前...

2018-05-19 22:55:59 388 1

原创 Git客户端如何连接远程仓库

前面两篇Git服务器的安装和配置(一)和Git服务器的安装与配置(二)已经搭建和配置好Git远程仓库了!现在我们就可以向远程仓库拉取和推送我们的代码了!安装本地git程序,Git下载地址。选择合适自己的版本下载,一直点下一步就可以安装完成!现在有两种情况,一:远程仓库为空,我们需要将我们的项目放入远程仓库。二:远程仓库有项目,我们需要拉取到本地。先说第二种阿飞是否第一种情况我们可以看成远程仓库有项...

2018-05-19 20:09:38 23142

原创 Git服务在CentOS7上的安装与配置(二)

接上一篇,我们已经完成了Git的基本安装,接下来就是配置了!

2018-05-19 16:58:03 1475

原创 Git服务在CentOS7上的安装与配置(一)

Git是分布式版本控制系统,那么它就没有中央服务器的,每个人的电脑就是一个完整的版本库,这样,工作的时候就不需要联网了,因为版本都是在自己的电脑上。团队成员只需在联网状态下将修改推送到规定的远程仓库中,团队中的其他成员就可以看到其他人的修改了。远程仓库可以是GitHub,也可以自己在服务器上安装和配置一个。如果你的项目不需要保密的话,直接使用GitHub就可以了。但是公司的项目都是需要保密的,虽然...

2018-05-19 16:11:21 2617

原创 ORACLE的常用高级查询

子查询:单行子查询、多行子查询、多列子查询         子查询在WHERE子句中:                                     子查询在HAVING子句中:    子查询在FROM部分子查询在SELECT中:分页查询:            SELECT * FROM (                   S

2017-03-10 13:11:58 342

原创 Oracle的基本语法和操作

ORACLE中的几大基本操作指令及其含义   数据定义语言(DDL):用于建立、修改、删除数据库的对象(对列操作)      1.CREATE:创建表或其他对象的结构      2.ALTER:修改表或其他对象的结构      3.DROP:删除表或其他对象的结构      4.TRUNCATE:删除表数据,保留表结构  数据操作语言(DML):用于修改表中的数据(对行操作

2017-03-09 21:55:54 10445

转载 对Map的排序

只作为对知识的归纳!

2017-03-03 17:36:55 195

空空如也

空空如也

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

TA关注的人

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