摘要: 本目录将不断更新记录leetcode的刷题日记。 阅读全文
posted @ 2020-06-18 16:19 云天 阅读(196) 评论(0) 推荐(0) 编辑
摘要: Spring Boot的核心思想就是约定大于配置,一切自动完成。采用Spring Boot可以大大的简化你的开发模式,所有你想集成的常用框架,它都有对应的组件支持。 阅读全文
posted @ 2019-08-10 15:23 云天 阅读(455) 评论(0) 推荐(0) 编辑
摘要: jPublic 是一个 JavaScript 工具库,它提供了一整套函数式编程的实用功能,但是不依赖任何第三方插件。它弥补了 jQuery、Underscore等没有实现的功能,希望能成为我们项目必不可少的部分。 阅读全文
posted @ 2019-03-25 10:41 云天 阅读(295) 评论(0) 推荐(0) 编辑
摘要: MQTT 是ISO标准(ISO/IEC PRF 20922)下基于发布/订阅范式的消息协议。它工作在 TCP/IP协议族上,是为硬件性能低下的远程设备以及网络状况糟糕的情况下而设计的发布/订阅型消息协议 阅读全文
posted @ 2021-03-30 13:40 云天 阅读(8270) 评论(1) 推荐(1) 编辑
摘要: Spring Boot 2.4.0 正式版本不再添加 RELEASE 后缀声明,在这个版本中增加了大量的新特性和改进,切记,不要轻易升级 除了刚发布的Spring Boot 2.4.0,Spring Boot 2.3.x/2.2.x仍旧是活跃的维护的版本。Spring Boot遵循的是Pivotal 阅读全文
posted @ 2020-12-07 16:20 云天 阅读(811) 评论(0) 推荐(0) 编辑
摘要: Docker 介绍 Docker 属于 Linux 容器的一种封装,提供简单易用的容器使用接口。它是目前最流行的 Linux 容器解决方案。 Docker 将应用程序与该程序的依赖,打包在一个文件里面。运行这个文件,就会生成一个虚拟容器。程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样。有了 阅读全文
posted @ 2020-03-25 10:43 云天 阅读(4892) 评论(0) 推荐(1) 编辑
摘要: 第4题 中位数定义 将一个集合划分为两个长度相等的子集,其中一个子集中的元素总是大于另一个子集中的元素。 解题思路 将数组进行切。 长度为 m 的数组,有 0 到 m 总共 m + 1 个位置可以切。 把数组 A 和数组 B 分别在 i 和 j 进行切割。 将 i 的左边和 j 的左边组合成「左半部 阅读全文
posted @ 2020-01-14 15:20 云天 阅读(1049) 评论(0) 推荐(0) 编辑
摘要: 对于普通的Java对象,当new的时候创建对象,当它没有任何引用的时候被垃圾回收机制回收。而由Spring IoC容器托管的对象,它们的生命周期完全由容器控制。 Bean生命周期流程 1.实例化Bean 实例化Bean对于BeanFactory容器,当客户向容器请求一个尚未初始化的bean时,或初始 阅读全文
posted @ 2020-01-09 18:58 云天 阅读(266) 评论(0) 推荐(0) 编辑
摘要: 协议介绍 协议是两个网络实体进行通信的基础,数据在网络上从一个实体传输到另一个实体,以字节流的形式传递到对端。在这个字节流的世界里,如果没有协议,就无法将这个一维的字节流重塑成为二维或者多维的数据结构以及领域对象。 在通信过程中,不同的服务等级一般对应着不同的服务质量,那么选择合适的协议便是一件非常 阅读全文
posted @ 2019-12-31 17:24 云天 阅读(1743) 评论(0) 推荐(0) 编辑
摘要: (1)MySQL向外提供的交互接口(Connectors) (2)管理服务组件和工具组件(Management Service & Utilities) (3)连接池组件(Connection Pool) (4)SQL接口组件(SQL Interface) (5)查询分析器组件(Parser) (6 阅读全文
posted @ 2019-12-27 15:24 云天 阅读(834) 评论(0) 推荐(0) 编辑
摘要: 本示例首选介绍Java原生API实现BIO通信,然后进阶实现NIO通信,最后利用Netty实现NIO通信及Netty主要模块组件介绍。 Netty 是一个异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。 BIO(Blocking I/O) 方案 BIO通信(一请求一应答 阅读全文
posted @ 2019-12-13 23:29 云天 阅读(10251) 评论(1) 推荐(2) 编辑
摘要: 如果你想在一个 Java 程序中使用 Git ,有一个功能齐全的 Git 库,那就是 JGit 。 JGit 是一个用 Java 写成的功能相对健全的 Git 的实现,它在 Java 社区中被广泛使用。 JGit 项目由 Eclipse 维护, "它的主页" 。 依赖添加 有很多种方式可以将 JGi 阅读全文
posted @ 2019-12-11 15:11 云天 阅读(6145) 评论(0) 推荐(1) 编辑
摘要: 本示例实现某电影网站最新片源名称列表及详情页下载地址的抓取。 webmagic是一个开源的Java垂直爬虫框架,目标是简化爬虫的开发流程,让开发者专注于逻辑功能的开发。 WebMagic 特点: 完全模块化的设计,强大的可扩展性。 核心简单但是涵盖爬虫的全部流程,灵活而强大,也是学习爬虫入门的好材料 阅读全文
posted @ 2019-12-09 14:39 云天 阅读(6848) 评论(1) 推荐(1) 编辑
摘要: 本文探讨如何使用 RocketMQ Binder 完成 Spring Cloud 应用消息的订阅和发布。 介绍 "RocketMQ" 是一款开源的分布式消息系统,基于高可用分布式集群技术,提供低延时的、高可靠的消息发布与订阅服务,广泛应用于多个领域,包括异步通信解耦、企业解决方案、金融支付、电信、电 阅读全文
posted @ 2019-12-04 16:28 云天 阅读(4983) 评论(3) 推荐(2) 编辑
摘要: 索引的优点 1.加快数据的检索速度,这是创建索引的最主要的原因; 2.通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性; 3.加速表和表之间的连接; 4.在使用分组和排序子句进行数据检索时,可以显著减少查询中分组和排序的时间。 索引的缺点 1.创建索引和维护索引要耗费时间,这种时间随着数据量 阅读全文
posted @ 2019-12-02 20:27 云天 阅读(1722) 评论(0) 推荐(0) 编辑
摘要: 本项目演示如何使用 Spring Cloud Alibaba 完成 Dubbo 的RPC调用。 Spring Cloud与Dubbo Spring Cloud是一套完整的微服务架构方案 Dubbo是国内目前非常流行的服务治理与RPC实现方案 由于Dubbo在国内有着非常大的用户群体,但是其周边设施与 阅读全文
posted @ 2019-11-27 14:23 云天 阅读(3294) 评论(0) 推荐(0) 编辑
摘要: 为了更好的利用内存,使Redis存储的都是缓存的热点数据,Redis设计了相应的内存淘汰机制(也叫做缓存淘汰机制) 阅读全文
posted @ 2019-11-15 10:12 云天 阅读(2575) 评论(0) 推荐(0) 编辑
摘要: MySQL InnoDB支持三种行锁定 行锁(Record Lock):锁直接加在索引记录上面,锁住的是key。 间隙锁(Gap Lock):锁定索引记录间隙,确保索引记录的间隙不变。间隙锁是针对事务隔离级别为可重复读或以上级别而设计的。 后码锁(Next Key Lock):行锁和间隙锁组合起来就 阅读全文
posted @ 2019-11-14 16:33 云天 阅读(1731) 评论(0) 推荐(2) 编辑
摘要: 第103题 解题思路 基于二叉树层序遍历改一点代码即可. "二叉树层序遍历" 双端队列(deque,全名double ended queue)是一种具有队列和栈性质的抽象数据类型。双端队列中的元素可以从两端弹出,插入和删除操作限定在队列的两边进行。 本题和普通的层序遍历区别在于如何正确的选取加入子节 阅读全文
posted @ 2019-11-11 19:27 云天 阅读(195) 评论(0) 推荐(0) 编辑
摘要: 安装mysql yum install mysql mysql server 会出现以下错误: 出现这个问题的原因是,CentOS 7 版本将MySQL数据库软件从默认的程序列表中移除,用mariadb代替。 解决办法1:安装mariadb MariaDB数据库管理系统是MySQL的一个分支,主要由 阅读全文
posted @ 2019-11-06 15:56 云天 阅读(2595) 评论(0) 推荐(0) 编辑
摘要: 第102题 如何遍历一棵树 有两种通用的遍历树的策略: 深度优先搜索(DFS) 在这个策略中,我们采用深度作为优先级,以便从跟开始一直到达某个确定的叶子,然后再返回根到达另一个分支。 深度优先搜索策略又可以根据根节点、左孩子和右孩子的相对顺序被细分为先序遍历,中序遍历和后序遍历。 宽度优先搜索(BF 阅读全文
posted @ 2019-11-05 19:51 云天 阅读(428) 评论(0) 推荐(0) 编辑
摘要: 第1114题 解题思路 1.定义一个flag信号量及对象锁lock 2.定义三个方法first,second,third用来分别执行A,B,C三个线程,并且在run()前增加限制,执行后更新flag值。比如:first执行条件为flag=0(即C线程执行完),A线程执行完后,flag设置为1表示可以 阅读全文
posted @ 2019-11-01 11:25 云天 阅读(504) 评论(0) 推荐(0) 编辑
摘要: 邮件服务在开发中非常常见,比如用邮件注册账号、邮件作为找回密码的途径、用于订阅内容定期邮件推送等等,下面就简单的介绍下邮件实现方式。 阅读全文
posted @ 2019-11-01 10:28 云天 阅读(1925) 评论(0) 推荐(0) 编辑
摘要: Spring Cloud Alibaba(三)Sentinel之熔断降级 本项目演示如何使用 Sentinel 完成 Spring Cloud 应用的熔断降级调用。 Sentinel 是阿里巴巴开源的分布式系统的流量防卫组件,Sentinel 把流量作为切入点,从流量控制,熔断降级,系统负载保护等多 阅读全文
posted @ 2019-10-31 10:41 云天 阅读(6826) 评论(1) 推荐(0) 编辑
摘要: Spring Cloud Alibaba(二) 配置中心多项目、多配置文件、分目录实现 介绍 之前 "Spring Cloud Config基础篇" 这篇文章介绍了Spring Cloud Config 配置中心基础的实现,今天继续聊下Spring Cloud Config 并结合nacos做服务注 阅读全文
posted @ 2019-10-23 11:52 云天 阅读(2999) 评论(0) 推荐(0) 编辑
摘要: Nacos介绍 Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。 Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原 阅读全文
posted @ 2019-10-18 12:28 云天 阅读(4619) 评论(0) 推荐(0) 编辑
摘要: Spring Boot 常用注解汇总 一、启动注解 @SpringBootApplication 查看源码可发现,@SpringBootApplication是一个复合注解,包含了@SpringBootConfiguration,@EnableAutoConfiguration,@Component 阅读全文
posted @ 2019-10-16 19:35 云天 阅读(37218) 评论(3) 推荐(13) 编辑
摘要: Zuul是Netflix开发的一款提供动态路由、监控、弹性、安全的网关服务,他可以和Eureka,Ribbon,Hystrix等组件配合使用。还可以通过创建过滤器对校验过滤提供支持,使微服务应用更专注于业务逻辑的开发。 阅读全文
posted @ 2019-10-14 12:26 云天 阅读(643) 评论(0) 推荐(1) 编辑
摘要: 在微服务架构中,系统被拆分成很多个服务单元,各个服务单元的应用通过 HTTP 相互调用、依赖,在某个服务由于网络或其他原因自身出现故障、延迟时,调用方也会出现延迟。若调用方请求不断增加,可能会形成任务积压,最终导致调用方服务瘫痪,服务不可用现象逐渐放大。 阅读全文
posted @ 2019-10-11 11:37 云天 阅读(665) 评论(0) 推荐(1) 编辑
摘要: 第1117题 解题思路 1.设定一个h信息号 2.每生成一个h,当h等于2的时候则进入等待o。否则生成氢气并且h自加1。 3.每生成一个o,当h小于2的时候则进入等侍h。否则生成o并且h清0,重新开始生成一个水份子 4.注意Runnable和Thread的区别,实现了Runnable接口,无法启动线 阅读全文
posted @ 2019-10-09 20:26 云天 阅读(331) 评论(0) 推荐(0) 编辑
摘要: 开发传统Java WEB工程时,我们可以使用JSP页面模板语言,但是在SpringBoot中已经不推荐使用了。SpringBoot支持如下页面模板语言 Thymeleaf FreeMarker Velocity Groovy JSP 上面并没有列举所有SpringBoot支持的页面模板技术。其中Th 阅读全文
posted @ 2019-09-30 14:17 云天 阅读(4701) 评论(0) 推荐(0) 编辑
摘要: 下载安装包 最新版本可以在 "MySQL 下载" 中下载。 下载完后,我们将 zip 包解压到相应的目录,这里我将解压后的文件夹放在 D:\Program Files\Java\mysql 8.0.16 winx64下 配置 MySQL 的配置文件 打开刚刚解压的文件夹 D:\Program Fil 阅读全文
posted @ 2019-09-28 11:17 云天 阅读(2173) 评论(0) 推荐(0) 编辑
摘要: 第108题 解题思路 从定义我们知道,BST的中序遍历为一个递增序列,给定的数组其实就是中序遍历结果 取有序数组的中间值做根,左边部分做左树,右边部分做右树如此循环迭代去二分就可还原这棵BST树 代码实现 1.二分+递归实现 每次取数组的中间值,作为二分搜索树的中间节点,依次递归下去即可 2.利用堆 阅读全文
posted @ 2019-09-26 19:52 云天 阅读(931) 评论(0) 推荐(0) 编辑
摘要: 给定一个二叉搜索树(Binary Search Tree),把它转换成为累加树(Greater Tree),使得每个节点的值是原来的节点值加上所有大于它的节点值之和。 阅读全文
posted @ 2019-09-21 22:50 云天 阅读(572) 评论(0) 推荐(0) 编辑
摘要: 本示例主要介绍 Spring Cloud 系列中的 Eureka,使你能快速上手负载均衡、声明式服务、服务注册中心等 阅读全文
posted @ 2019-09-17 11:36 云天 阅读(1818) 评论(2) 推荐(2) 编辑
摘要: MySQL 事务主要用于处理操作量大,复杂度高的数据。比如开单,需要添加给订单表增加记录,还需要增加订单的各种相关明细,操作复杂度高,这些操作语句需要构成一个事务。在 MySQL 命令行的默认设置下,事务都是自动提交的,即执行 SQL 语句后就会马上执行 COMMIT 操作。因此要显式地开启一个事务务须使用命令 BEGIN 或 START TRANSACTION,或者执行命令 SET AUTOCOMMIT=0,用来禁止使用当前会话的自动提交。 阅读全文
posted @ 2019-09-11 17:25 云天 阅读(954) 评论(0) 推荐(1) 编辑
摘要: 本文讨论的是JDK 1.8中的ThreadLocal ThreadLocal概念 ThreadLocal多线程间并发访问变量的解决方案,为每个线程提供变量的副本,用空间换时间。 ThreadLocal在每个线程中对该变量会创建一个副本,即每个线程内部都会有一个该变量,且在线程内部任何地方都可以使用, 阅读全文
posted @ 2019-09-10 17:48 云天 阅读(431) 评论(0) 推荐(0) 编辑
摘要: Redis不仅可作为缓存服务器,还可用作消息队列,本示例演示如何使用redis实现发布/订阅消息队列。 阅读全文
posted @ 2019-09-05 17:03 云天 阅读(5430) 评论(3) 推荐(2) 编辑
摘要: Leader在集群中是一个非常重要的角色,负责了整个事务的处理和调度,保证分布式数据一致性的关键所在。既然Leader在ZooKeeper集群中这么重要所以一定要保证集群在任何时候都有且仅有一个Leader存在。 阅读全文
posted @ 2019-09-04 15:44 云天 阅读(1297) 评论(0) 推荐(1) 编辑
摘要: 本示例主要介绍了Spring Boot程序方式实现数据库集群访问,读库轮询方式实现负载均衡。阅读本示例前,建议你有AOP编程基础、mybatis基本功能会使用、数据库集群基本概念,这样你可以更快的理解和实现它 阅读全文
posted @ 2019-08-29 17:01 云天 阅读(7358) 评论(0) 推荐(1) 编辑
摘要: spring cloud config 配置中心实现 Spring Cloud Config 用于为分布式系统中的基础设施和微服务应用提供集中化的外部配置支持,分为server端和client端。 server端为分布式配置中心,是一个独立的微服务应用;client端为分布式系统中的基础设置或微服务 阅读全文
posted @ 2019-08-23 18:15 云天 阅读(3775) 评论(0) 推荐(1) 编辑
摘要: API 主流网关有NGINX、ZUUL、Spring Cloud Gateway、Linkerd等;Spring Cloud Gateway构建于 Spring 5+,基于 Spring Boot 2.x 响应式的、非阻塞式的 API。同时,它支持 websockets,和 Spring 框架紧密集成,用来代替服务网关Zuul,开发体验相对来说十分不错。 阅读全文
posted @ 2019-08-19 16:24 云天 阅读(1981) 评论(0) 推荐(1) 编辑