自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 mysql优化学习

mysql优化学习1.执行流程2.表结构对性能的影响3.索引4.事务5.锁6.sql优化原则7.JOIN原理8.执行计划与执行明细1.执行流程查询缓存解析生成解析树预处理再次生成解析树查询优化器查询执行计划查询执行引擎查询数据返回结果2.表结构对性能的影响1.冗余的数据处理三大范式:1、每一列只能有一个值2、每一行可以被唯一的区分3、不包含其他表的已包含的非关键信息2...

2019-11-04 14:40:17 129

原创 Spring Boot 2.x 启动全过程源码分析

Spring Boot 2.x 启动全过程源码分析SpringApplication 实例 run 方法运行过程/** * Run the Spring application, creating and refreshing a new 运行Spring应用程序,创建并刷新新的 * {@link ApplicationContext}. 应用上下文 * @param args t...

2019-08-22 16:34:37 132

原创 Oracle常用查看表结构命令

获取表:select table_name from user_tables; //当前用户的表table_name -表名tablespace_name -表空间名cluster_name -群集名称iot_name -IOT(Index Organized Table)索引组织表的名称status -状态pct_free -为一个块保留的空间百分比pct_u...

2019-07-26 11:26:23 4465

原创 数据库架构

数据库的架构部分:这部分主要是考察大家对数据库有没有个整体的了解,此外呢最重点最常考的有两个,就是索引部分,还有锁部分以及一些实用的工作中用到的语法部分。最后还有数据库存理论部分,如范式一的列不可再分,范式二的要有主见,范式三的,就是去除传递依赖等等,这个理论范式部分呢就需要大家课下去了解,明确了考点之后,我们接下来要将其逐一攻克。咱们首先来看看一个容易让同学懵掉的题目,如何设...

2019-02-28 12:17:51 639

原创 Redis高可用和主从切换原理

当slave发现自己的master变为FAIL状态时,便尝试进行Failover,以期成为新的master。由于挂掉的master可能会有多个slave,从而存在多个slave竞争成为master节点的过程,其过程如下:slave发现自己的master变为FAIL将自己记录的集群currentEpoch加1,并广播FAILOVER_AUTH_REQUEST信息其他节点收到改信息,只有master响应,判断请求者的合法性,并发送FAILOVER_AUTH_ACK,对每一个epoch只发送一次ack尝

2021-01-21 15:39:39 435

原创 有关redis的方面的问题

SDS是什么?Redis中字符串的实现,Simple Dynamic String 简单动态字符串为什么Redis要用SDS实现字符串?我们知道,因为C语言本身没有字符串类型,只能用字符数组char[]实现。使用字符数组必须先给目标变量分配足够的空间,否则可能会溢出。如果要获取字符长度,必须遍历字符数组,时间复杂度是O(n)C字符串长度的变更会对字符数组做内存重分配通过字符串开始到结尾碰到的第一个’\0’来标记字符串的结束,因此不能保存图片、音频、视频压缩文件等二..

2021-01-19 16:00:50 118

原创 非关系型数据库的特点

存储非结构化的数据,比如文本、图片、音频、视频表与表之间没有关联,可扩展性强。保证数据的最终一致性。遵循BASE理论。支持海量数据的存储和高并发的高效读写。支持分布式,能够对数据进行分片存储,扩缩容简单...

2021-01-19 15:23:13 3815 1

转载 SpringBoot的参数配置加载顺序:

命令行参数;来自java:comp/env的JNDI属性;Java系统属性(System.getProperties());操作系统环境变量;RandomValuePropertySource配置的random.*属性值;jar包外部的application-{profile}.properties或application.yml(带spring.profile)配置文件;jar包内部的application-{profile}.properties或application.ym(带sprin.

2021-01-18 15:43:49 145

原创 ConfigurableApplicationContext#run方法之第二个方法configureHeadlessProperty

this.configureHeadlessProperty(); private void configureHeadlessProperty() { //将java.awt.headless设置为true,表示运行在服务器器端,在没有显示器器和鼠标键盘的模式下工作,模拟 输入输出设备功能。 System.setProperty("java.awt.headless", System.getProperty("java.awt.headless", B

2020-11-17 10:30:15 640

原创 ConfigurableApplicationContext#run方法之第一个方法StopWatch

StopWatch stopWatch = new StopWatch(); this("");public StopWatch(String id) { //报留任务清单设置为true this.keepTaskList = true; //初始化一个任务清单 this.taskList = new LinkedList(); //id设置为空 this.id = id;}我们再来看下start方法stopWatch.start(); public void s.

2020-11-17 10:27:52 618

原创 踩过的坑(1)----关于微信公众号二维码扫一扫推送url会请求两到三次

这个问题在于url里面的参数有中文,可以考虑将中文urlEncode一下请求就只有一次了而且速度也快起来了

2020-04-02 17:26:51 701 2

原创 Hikaricp为什么这么快

Hikaricp为什么这么快1.字节码级别优化(很多方法通过JavaAssist生成)2.大量小改进1.字节码级别优化(很多方法通过JavaAssist生成)2.大量小改进用fastStatementList替代ArrayList无锁集合ConcurrentBag代理的优化 (比如 用invokestatic替代invokevirtual)...

2019-12-17 12:54:52 503

原创 Eclipse中实现JS代码提示功能(图文教程)

用Eclipse写JS代码时没有提示很麻烦一不小心就写错了:找个各种方法以及插件,试了一下,个人感觉AngularJS Eclipse 插件很强,好用,不多说,先装上:然后重启Eclipse ,右键你的项目根据自己的需要变动,直接OK,接下来就是见证奇迹的时刻:如果要变动就右键项目...

2019-12-01 09:16:38 940

原创 如何将本地项目上传到Github

https://www.cnblogs.com/smfx1314/p/8426115.html如何将本地项目上传到Github前言:注册GitHub有一段时间了,之前有按照教程操作过,不过后来一段时间不用又不熟练了。以至于后期突然使用时出现一些错误,导致本地文件一直提交不了。今天又熟悉了一次,这里做个笔记,以至于后面在忘记可以回顾一下。一、使用git上传文件到GitHub需要git客户端以及...

2019-12-01 09:06:30 82

原创 微信公众号禁止浏览器打开

var ua = navigator.userAgent.toLowerCase();var isWeixin = ua.indexOf('micromessenger') != -1;if (!isWeixin) { window.location.href = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=88...

2019-09-26 10:39:33 4635

原创 java中lambada表达式中的BinaryOperator和UnaryOperator接口

BinaryOperator 二元操作符, 传入的两个参数的类型和返回类型相同, 继承BiFunctionBinaryOperator:两个T作为输入,返回一个T作为输出,对于“reduce”操作很有用我们来看一下BinaryOperator的源码:我们首先来看minBy /** * 返回{@link BinaryOperator},它根据指定的{@code Comp...

2019-08-29 17:02:21 537

原创 java中lambada表达式中的supplier和consumer接口

我们首先来看一下supplier接口 /** * 代表结果的Supplier。 * * <p>每次调用Supplier时都不要求返回新的或不同的结果。 * * <p>这是一个<a href="package-summary.html">功能界面</a>,其功能方法是{@link #get()}。 * * @param...

2019-08-29 16:34:35 679

原创 java中lambada表达式中的Predicate

Predicate 翻译成中文是谓语的意思,那么谓语是对主语动作或状态的陈述或说明,指出“做什么”do what,“是什么”what is this或是“怎么样”how ‘’它代表只有一个变量的函数,返回 boolean 类型。​有时候我们需要进行各种判断,从而得到一个 boolean 值的结果。首先我们来看一下Predicate中的方法:我们首先来看一下test方法: /**...

2019-08-29 15:46:13 854

原创 java中lambada表达式中的Funtion

**java中lambada表达式中的Funtion**我们来看Function里面的方法首先我们来看Apply的方法:给定一个参数返回一个结果 /** * Applies this function to the given argument. * * @param t the function argument * @return t...

2019-08-29 14:49:34 337

原创 关于Mysql的日志

MySQL中有六种五种日志文件,分别是:重做日志(redo log)、回滚日志(undo log)、二进制日志(binlog)、错误日志(errorlog)、慢查询日志(slow query log)、一般查询日志(general log),中继日志(relay log)。其中重做日志和回滚日志与事务操作息息相关,二进制日志也与事务操作有一定的关系,这三种日志,对理解MySQL中的事务操作有着重...

2019-08-26 15:20:01 90

原创 IDEA如何安装lombok

步骤:打开idea的settings对话框,安装lombok插件如果安装失败了,会弹出一个提示框,里面有下载地址 例如:https://plugins.jetbrains.com/files/6317/44602/lombok-plugin-0.17.zip?updateId=44602&pluginId=6317&uuid=91ebdc60-e7fa-4526-89...

2019-08-16 10:33:17 115

原创 IntelliJ Idea 常用快捷键

1. -----------自动代码--------常用的有fori/sout/psvm+Tab即可生成循环、System.out、main方法等boilerplate样板代码例如要输入for(User user : users)只需输入user.for+Tab再比如,要输入String name = user.getName();只需输入user.getName().var+Tab即...

2019-08-15 10:40:45 92

原创 MySQL 查看表结构简单命令

一、简单描述表结构,字段类型desc tabl_name;显示表结构,字段类型,主键,是否为空等属性,但不显示外键。例如:desc table_name二、查询表中列的注释信息select * from information_schema.columnswhere table_schema = 'db' #表所在数据库and table_name = 'tablename...

2019-07-29 16:40:35 581

原创 JDK8新增的原子操作类LongAdder

1.LongAdder简单介绍AtomicLong通过CAS提供了非阻塞的原子性操作,相比使用阻塞算法的同步器来说它的性能己经很好了,但是JDK开发组并不满足于此。使用AtomicLong时,在高并发下大量线程会同时去竞争更新同一个原子变量,但是由于同时只有一个线程的CAS操作会成功,这就造成了大量程竞争失败后,会通过无限循环不断进行自旋尝试CAS的操作,而这会白白浪费CPU资源。因此JK...

2019-06-24 17:04:08 345

原创 Java并发包中原子操作类原理剖析

JUC包提供了一系列的原子性操作类,这些类都是使用非阻塞算法CAS实现的,相比使用锁实现原子性操作这在性能上有很大提高。由于原子性操作类的原理都大致相同,所以本章只讲解最简单的AtomicLong类的实现原理以及JDK8中新增的LongAdder和LongAccumulator类的理。有了这些基础,再去理解其他原子性操作类的实现就不会感到困难了。1.原子变量操作类JUC并发包中包含有Ato...

2019-06-24 14:54:13 268

原创 并发包------ThreadLocalRandom类原理剖析

ThreadLocalRandom类是JDK7JUC包下新增的随机数生成器,它弥补了Random类在多线程下的缺陷本章讲解为何要在下新增该类,以及该类的实现原理。1.1 Random类及其局限性在JDK7前包括现在,java.util.Random都是使用比较广泛的随机数生成工具类,而且java.Iang.Math中的随机数生成也使用的是java.util.Random的实例。下面先看看j...

2019-06-24 10:20:38 249

原创 并发编程基础四

锁的概述1.1 乐观锁与悲观锁悲观锁指对数据被外界修改持保守态度,认为数据很容易就会被其他线程修改,所以在数据被处理前先对数据进行加锁,并在整个数据处理过程中,使数据处于锁定状态。悲观锁的实现往往依靠数据库提供的锁机制,即在数据库中,在对数据记录操作前给记录加排它锁。如果获取锁失败,则说明数据正在被其线程修改,当前线程则等待或者抛出异常。如果获取锁成功,则对记录进行操作,然后提交事务后释放...

2019-06-20 17:27:12 91

原创 并发编程基础三

1.并行与并发区别并发指同一时间段多个任务同时都在进行,并且都没有执行结束,而并行是说在单位时间内多个任务在同时运行。并发任务强调在一个时间段内同时进行,而一个时间段有多个单位i时间构成,所以说并发的多个任务在单位时间内不一定同时在执行。一个CPU同时只能执行一个任务,所以单CPU时代多个任务都是并发执行的。注:在多线程时间中,线程的个数往往多于CPU个数,所以即使存在并行...

2019-06-20 16:28:56 130

原创 并发编程基础二

多钱程访问同一个共享变量时特别容易出现并发问题,特别是在多个线程需要对个共享变量进行写入时为了保证线程安全,一般使用者在访问共享变量时需要进行适当的同步,如下图所示。同步的措施一般是加锁,这就需要使用者对锁有一定的了解,这显然加重了使用者的负担。那么有没有一种方式可以做到,当创建一个变量后,每个线程对其进行访问的时候访问的是自己线程的变量呢?其实ThreadLocal就可以做这件事情,虽然...

2019-06-20 11:06:35 119

原创 并发编程基础一

1.什么是线程?什么是进程?进程是代码在数据集合上的一次运行活动,是系统资源调用和分配的基本单位。线程则是进程的一个执行路径,一个进程中至少有一个线程,进程中多线程共享进程中的资源。线程是CPU分配的基本单位。2.程序计数器程序计数器是块内存区域,用来记录线程当前要执行的指令地址。那么为何要将程序计数器设计线程私有的呢?前面说了线程是占用CPU执行的基本单位,而CPU一般...

2019-06-19 17:30:08 141

原创 Python数据挖掘与分析-------多因子探索分析

一、假设检验与方差检验①假设检验1.建立原假设Ho(包含等号),Ho的反命题为H1备择假设 2.选择检验统计量假设检验量:3.根据显著水平,确定拒绝域(一般为0.05)与之相反的是接受域4.计算P值或样本值做出判断根据检验量,查【标准正态分布表】得到P值 ,得到的P值跟拒绝域做比较,判断假设条件是否成立。②卡方检验是实际的值,是预测值根据公式计算出卡方值。...

2018-12-20 17:47:56 2457

空空如也

空空如也

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

TA关注的人

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