摘要:
一、概述 LinkedList是一个继承于AbstractSequentialList的双向链表。它也可以被当作堆栈、队列或双端队列进行操作。双向链表结构,有一个头结点和一个尾结点,意味着我们可以从头开始正向遍历,或者是从尾开始逆向遍历,并且可以针对头部和尾部进行相应的操作。 LinkedList的 阅读全文
摘要:
一、概述 ShardingSphere-Jdbc定位为轻量级Java框架,在Java的Jdbc层提供的额外服务。它使用客户端直连数据库,以jar包形式提供服务,可理解为增强版的Jdbc驱动,完全兼容Jdbc和各种ORM框架。 二、MySQL主从复制 2.1 docker配置mysql主从复制 创建主 阅读全文
摘要:
定义以下Person JavaBean: ```java @Data public class Person { @JSONField(name="age", serialize=false) private int age; @JSONField(name="lastName", ordinal 阅读全文
摘要:
一、动态SQL MyBatis的强大特性之一便是它的动态SQL。如果有使用JDBC或其他类似框架的经验,就能体会到根据不同条件拼接SQL语句有多么痛苦。拼接的时候要确保不能忘了必要的空格,还要注意省掉列名列表最后的逗号。利用动态SQL这一特性可以彻底摆脱这种痛苦。 通常使用动态SQL不可能是独立的一 阅读全文
摘要:
问题 假设这有一个各种字母组成的字符串,假设这还有另外一个字符串,而且这个字符串里的字母数相对少一些。从算法是讲,什么方法能最快的查出所有小字符串里的字母在大字符串里都有? 比如,如果是下面两个字符串: String 1: ABCDEFGHLMNOPQRS String 2: DCGSRQPO 答案 阅读全文
摘要:
基因遗传算法是一种灵感源于达尔文自然进化理论的启发式搜索算法。该算法反映了自然选择的过程,即最适者被选定繁殖,并产生下一代。本文简要地介绍了遗传算法的基本概念和实现,希望能为读者展示启发式搜索的魅力。 如上图(左)所示,遗传算法的个体由多条染色体组成,每条染色体由多个基因组成。上图(右)展示了染色体 阅读全文
摘要:
一、题目 10亿int整型数,以及一台可用内存为1GB的机器,时间复杂度要求O(n),统计只出现一次的数。 二、分析 首先分析多大的内存能够表示10亿的数呢?一个int型占4字节,10亿就是40亿字节(很明显就是4GB),也就是如果完全读入内存需要占用4GB,而题目只给1GB内存,显然不可能将所有数 阅读全文
摘要:
一、题目 编写两个任意位数的大数相乘的程序,给出计算结果。比如: 题目描述:输出两个不超过100位的大整数的乘积。 输入:输入两个大整数,如1234567和123 输出:输出乘积,如:151851741 或者 求1234567891011121314151617181920 * 2019181716 阅读全文
摘要:
一、如何判断单链表是否存在环 有一个单向链表,链表当中有可能出现“环”,就像题图这样。如何用程序判断出这个链表是有环链表? 不允许修改链表结构。 时间复杂度O(n),空间复杂度O(1)。 1.1 方法一、穷举遍历 首先从头节点开始,依次遍历单链表的每一个节点。每遍历到一个新节点,就从头节点重新遍历新 阅读全文
摘要:
一、概述 在使用spring框架的项目中,@Value是经常使用的注解之一。其功能是将与配置文件中的键对应的值分配给其带注解的属性。在日常使用中,我们常用的功能相对简单。 @Value注解可以用来将外部的值动态注入到Bean中,在@Value注解中,可以使用${}或#{}。 ${}与#{}的区别如下 阅读全文
摘要:
简介:应用架构,指软件系统中固定不变的代码结构、设计模式、规范和组件间的通信方式。在应用开发中架构之所以是最重要的第一步,因为一个好的架构能让系统安全、稳定、快速迭代。但是今天我们在做业务研发时,更多会关注一些宏观的架构,而忽略了应用内部的架构设计,希望能通过案例分析和重构,推演出一套高质量的DDD 阅读全文
摘要:
一、基本原理和示例 在计算机程序中描述重复的一种方法是使用循环,如Java的while循环和for循环结构。实现重复的完全不同的方法是通过一个称为递归的过程。 递归是一种方法对自身进行一次或多次调用的技术,在执行期间,或数据结构依赖于同一类型的结构。有很多例子艺术与自然中的递归。例如,分形图案是自然 阅读全文
摘要:
一 、环境概述: cat >> /etc/hosts <<EOF 10.0.0.202 master 10.0.0.197 node1 10.0.0.163 node2 EOF 挂载数据盘: mkdir /data mkfs.xfs -f /dev/vdb mount /dev/vdb /data 阅读全文
摘要:
一、背景 随着业务增长每天的订单量很快从30万单增长到了100万单,订单总量也突破了一亿。当时用的Mysql数据库。根据监控,每秒最高订单量已经达到了2000笔(不包括秒杀)。不过,直到此时,订单系统还是单库单表,幸好当时数据库服务器配置不错,我们的系统才能撑住这么大的压力。 业务量还在快速增长,再 阅读全文
摘要:
# 一、简介 `Spring WebFlux`作为一个响应式(`reactive-stack`)`web`框架补充,在`5.0`的版本开始加入到`Spring`全家桶。这是一个完全非阻塞的,支持`Reactive Streams`,运行在诸如`Netty`,`Undertow`, 以及`Servle 阅读全文
摘要:
spring常用注解 容器 @Controller:控制层,里面有多个连接 @RestController:注解是@Controller和@ResponseBody的合集,表示这是个控制器bean,并且是将函数的返回值直接填入HTTP响应体中,返回json字符串的数据,是REST风格的控制器。 @S 阅读全文
摘要:
一、启用Spring缓存注解 引入spring-boot-starter-data-redis依赖,配置redis的连接属性 spring: redis: password: host: localhost port: 6379 cache: redis: ## Entry expiration i 阅读全文
摘要:
用数据库的时候,偶尔会出现死锁,针对我们的业务系统,出现死锁的直接结果就是系统卡顿,所以我们也在想尽全力的消除掉数据库的死锁。 出现死锁的时候,如果只是想解锁,用show full processlist看下kill掉就好了,如果想查找到详细的问题,一个办法是用show engine innodb 阅读全文
摘要:
一、Spring的bean作用域 | 作用域 | 描述 | | | | | 单例(singleton) | (默认)每一个Spring IoC容器都拥有唯一的一个实例对象。 | | 原型(prototype) | 一个Bean定义,每次创建一个新的实例对象。 | | 请求(request) | 一个 阅读全文
摘要:
一、锁分类 MySQL的锁主要分为3大类: 表级锁:存储引擎为Myisam。锁住整个表,特点是开销小,加锁快,锁定力度大,发生锁冲突的概率最高,并发度最低。 页级锁:存储引擎为BDB。锁住某一页的数据(16kb左右),特点:开销和枷锁时间介于表级和行级之间;会出现死锁,锁定力度介于表锁和行锁之间,并 阅读全文