摘要: 文章目录 count(可空字段) count(非空字段)与count(主键 id) count(1) count(*) 性能对比结论 注:下面的讨论和结论是基于 InnoDB 引擎的。 首先要弄清楚 count() 的语义。count() 是一个聚合函数,对于返回的结果集,一行行地判断,如果 cou 阅读全文
posted @ 2021-01-07 20:19 -小马 阅读(263) 评论(0) 推荐(0) 编辑
摘要: 解释器 shell脚本一般选择bash作为解释器,脚本开头应为 #!/bin/bash 或 #!/bin/sh 添加脚本版本和注释功能 在脚本的开头加注释,说明脚本作者、编写时间、脚本功能,最好可以加上脚本的版本号。shell中脚本注释用#,注释语句和#号之间有一个空格 #!/bin/bash # 阅读全文
posted @ 2021-01-07 20:17 -小马 阅读(293) 评论(0) 推荐(0) 编辑
摘要: 工厂模式(Factory Design Pattern)可细分为三种,分别是简单工厂,工厂方法和抽象工厂,它们都是为了更好的创建对象。 所谓的“工厂”,就是用来将创建对象的代码封装起来,因为这部分代码将来变动的几率很大,所以这里的“工厂”的实质作用就是“封装变化”,以便于维护。 其中用到了“针对接口 阅读全文
posted @ 2021-01-07 20:15 -小马 阅读(239) 评论(0) 推荐(0) 编辑
摘要: swagger2 1、引入依赖 <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version> </dependency> <depen 阅读全文
posted @ 2021-01-07 20:14 -小马 阅读(72) 评论(0) 推荐(0) 编辑
摘要: HashMap是现在用的最多的map,HashMap的源码可以说是面试必备技能,今天我们试着分析一下jdk1.7下的源码。 先说结论:数组加链表 一、先看整体的数据结构 首先我们注意到数据是存放在一个Entry<K,V>数组里面,默认大小16. public class HashMap<K,V> e 阅读全文
posted @ 2021-01-07 20:13 -小马 阅读(77) 评论(0) 推荐(0) 编辑
摘要: 1、什么是斐波那契数? 斐波那契数,又称黄金分割数列、因数学家莱昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、…… 斐波那契数,通常用 F(n) 表示,形成的序列称为斐波那契 阅读全文
posted @ 2021-01-07 20:12 -小马 阅读(113) 评论(0) 推荐(0) 编辑
摘要: 1.原型和原型链的概念 js在创建一个对象时,比如叫 obj,都会给他偷偷的加上一个引用,这个引用指向的是一个对象,比如叫 yuanxing,这个对象可以给引用它的对象提供属性共享,比如:yuanxing上有个属性name,可以被 obj.name访问到,这个可以提供属性共享的对象,就称为前面对象的 阅读全文
posted @ 2021-01-07 20:11 -小马 阅读(69) 评论(0) 推荐(0) 编辑
摘要: 1,使用继承 首先你可能想到用继承的方式来实现,所以我们编写了下面这个 Animal 类: abstract class Animal { public void run() { System.out.println("I can run."); } public void drinkWater() 阅读全文
posted @ 2021-01-07 17:07 -小马 阅读(72) 评论(0) 推荐(0) 编辑
摘要: 1,一次购物流程 相信大家都在网上买过东西,我们以淘宝为例来介绍命令模式。 我们假设这样一个简单的场景: 淘宝网有很多商店,商店售卖各种各样的商品,顾客购买商品需要先在淘宝下订单。 一位顾客想在淘宝购买一部华为手机,他下了一个订单:“一部华为手机”。 淘宝网将该订单发送到华为商店。 华为商店将华为手 阅读全文
posted @ 2021-01-07 17:06 -小马 阅读(309) 评论(0) 推荐(0) 编辑
摘要: 今天来介绍装饰者模式(Decorator Design Pattern)。 假设我们需要给一家火锅店设计一套结账系统,也就是统计顾客消费的总价格。怎样才能设计出一个好的系统呢? 1,结账系统需求分析 既然要设计一个结账系统,当然需要知道火锅店都有哪些食品及食品的价格,假如我们从火锅店老板那里得到以下 阅读全文
posted @ 2021-01-07 17:04 -小马 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 1,遍历集合元素 现在的高级语言(比如 C++,Java,Python 等)都支持很多种集合(比如 List,Map,Set 等),用于存储对象。 同时这些高级语言也都原生支持了迭代器,这使得遍历集合变得非常简单。 下面我们来看下,如果不使用迭代器,如何遍历集合。 以 Java ArrayList  阅读全文
posted @ 2021-01-07 17:02 -小马 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 一、简介 Springboot源码解析是一件大工程,逐行逐句的去研究代码,会很枯燥,也不容易坚持下去。 我们不追求大而全,而是试着每次去研究一个小知识点,最终聚沙成塔,这就是我们的springboot源码管中窥豹系列。 二、框架 我们先把springboot源码的框架了解清楚。 1、新建一个spri 阅读全文
posted @ 2021-01-07 16:59 -小马 阅读(102) 评论(0) 推荐(0) 编辑
摘要: 启动项目tomcat报错 SEVERE: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListeneror 阅读全文
posted @ 2021-01-07 16:58 -小马 阅读(218) 评论(0) 推荐(0) 编辑
摘要: #### 在项目中部署redis的读写分离架构(包含节点间认证口令) ##### 1、配置过程 1、此前就是已经将redis在系统中已经安装好了,redis utils目录下,有个redis_init_script脚本,将redis_init_script脚本拷贝到linux的/etc/init.d 阅读全文
posted @ 2021-01-07 16:55 -小马 阅读(69) 评论(0) 推荐(0) 编辑
摘要: #### 1、S_DOWN和O_DOWN ###### S_DOWN和O_DOWN两种宕机状态 (1)、S_DOWN是主观宕机,就一个哨兵如果自己觉得一个master宕机了,那么就是主观宕机sdown达成的条件很简单,如果一个哨兵ping一个master,超过了is-master-down-afte 阅读全文
posted @ 2021-01-07 16:54 -小马 阅读(320) 评论(0) 推荐(0) 编辑
摘要: 1.JAVA 的并发模型 共享内存模型 在共享内存的并发模型里面,线程之间共享程序的公共状态,线程之间通过读写内存中公共状态来进行隐式通信 该内存指的是主内存,实际上是物理内存的一小部分 2.JAVA 内存模型的抽象 2.1 java内存中哪些数据是线程安全的,哪些是非安全的 非线程安全 : 在 j 阅读全文
posted @ 2021-01-07 16:53 -小马 阅读(59) 评论(0) 推荐(0) 编辑
摘要: 原子组件的实现原理CAS cas的底层实现可以看下之前写的一篇文章:详解锁原理,synchronized、volatile+cas底层实现 应用场景 可用来实现变量、状态在多线程下的原子性操作 可用于实现同步锁(ReentrantLock) 原子组件 原子组件的原子性操作是靠使用cas来自旋操作vo 阅读全文
posted @ 2021-01-07 16:51 -小马 阅读(198) 评论(0) 推荐(0) 编辑
摘要: SQL注入,是发生于应用程序与数据库层的安全漏洞。简而言之,是在输入的字符串之中注入SQL指令,在设计不良的程序当中忽略了字符检查,那么这些注入进去的恶意指令就会被数据库服务器误认为是正常的SQL指令而运行,因此遭到破坏或是入侵。 SQL 注入一般发生在用户交互场景中,比如需要用户自已输入信息的输入 阅读全文
posted @ 2021-01-07 16:47 -小马 阅读(361) 评论(0) 推荐(0) 编辑
摘要: 图注:思维导图 主从常见架构 随着日益增长的访问量,单台数据库的应接能力已经捉襟见肘。因此采用主库写数据,从库读数据这种将读写分离开的主从架构便随之衍生了出来。 在生产环境中,常见的主从架构有很多种,在这里给大家介绍几种比较常见的架构模式。 主从复制原理 了解了主从的基本架构及相关配置后,下面就要进 阅读全文
posted @ 2021-01-07 16:44 -小马 阅读(73) 评论(0) 推荐(0) 编辑
摘要: MySQL的逻辑架构大致可以分为三层: 第一层:处理客户端连接、授权认证,安全校验等。 第二层:服务器server层,负责对SQL解释、分析、优化、执行操作引擎等。 第三层:存储引擎,负责MySQL中数据的存储和提取。 我们要知道MySQL的服务器层是不管理事务的,事务是由存储引擎实现的,而MySQ 阅读全文
posted @ 2021-01-07 16:41 -小马 阅读(187) 评论(0) 推荐(0) 编辑