Java
六甲横宝
这个作者很懒,什么都没留下…
展开
-
Java集合框架及其源码分析
文章目录1. 容器概述1.1. Java容器的引入及容器中的接口1.2. `Collection`接口中的抽象方法1.3. `Iterable`接口和`Iterator`接口1.4. `List` 接口1.5. `Set` 接口1.5. `Queue` 与 `Deque`接口1.7. `Map` 接口2. 主要的具体集合及其源码分析2.1. `ArrayList`2.1.1. jdk 7 情况下:2.1.2. jdk 8 情况下:2.2. `LinkedList`2.4. `ArrayDeque`2.4.原创 2020-11-03 13:07:09 · 360 阅读 · 0 评论 -
SpringBoot起步依赖和自动配置原理解析
SpringBoot起步依赖和自动配置起步依赖我们知道一个SpringBoot项目都要以 spring-boot-starter-parent 作为父工程,也就是要在工程的 pom 文件中引入如下依赖(以 2.2.6版本为例):<!-- in pom.xml of our project --><parent> <groupId>org.springframework.boot</groupId> <artifactId>s原创 2020-10-28 16:37:39 · 619 阅读 · 0 评论 -
Java源码问题剖析——Arrays.asList()
单线程中出现的并发修改异常在学习Java并发编程的过程中,可以了解到,在对用迭代器对容器进行迭代时,即使是单线程代码中也可能抛出 ConcurrentModificationException 异常,即对象直接从容器中删除而不是通过 Iterator.remove 来删除时,就会抛出这个异常,如下代码:@Test // java.util.ConcurrentModificationExceptionpublic void test1() { List<Integer> list原创 2020-10-10 16:22:14 · 171 阅读 · 0 评论 -
MySQL模糊查询无法查询中文
使用MySQL的模糊查询的过程中,LIKE后面加中文条件总是输出null , 发现没有将中文转码,解决方法如下:spring.datasource.url=jdbc:mysql://localhost:3306/database?serverTimezone=GMT%2B8&characterEncoding=UTF-8即在数据库的后面加上一段转码字符即可characterEncoding=UTF-8...原创 2020-06-24 11:26:47 · 748 阅读 · 0 评论 -
力扣[837]新21点
题目爱丽丝参与一个大致基于纸牌游戏 “21点” 规则的游戏,描述如下:爱丽丝以 0 分开始,并在她的得分少于 K 分时抽取数字。 抽取时,她从 [1, W] 的范围中随机获得一个整数作为分数进行累计,其中 W 是整数。 每次抽取都是独立的,其结果具有相同的概率。当爱丽丝获得不少于 K 分时,她就停止抽取数字。 爱丽丝的分数不超过 N 的概率是多少?示例 1:输入:N = 10, K = 1, W = 10输出:1.00000说明:爱丽丝得到一张卡,然后停止。示例 2:输入:N = 6,原创 2020-06-03 21:12:25 · 331 阅读 · 2 评论 -
Linux上安装JDK环境
在CentOS上安装JDK环境首先我们需要知道的是,在CentOS上有系统自带的JDK环境,而要安装新的JDK环境的话,我测试了如果不卸载掉系统自带JDK环境的话,则即使配置了环境变量也不会使新的JDK环境生效,所以我们应该先卸载掉系统自带的JDK环境。输入以下命令查看系统自带的JDK环境rpm -qa | grep jdk如图所示可以发现自带了两个JDK环境,分别进行卸载,用以下命令进行JDK环境的卸载yum -y remove + 具体的JDK环境如图所示在卸载掉系统自带的JD原创 2020-05-29 23:56:04 · 117 阅读 · 0 评论 -
SpringCloud-08 Spring Cloud Config分布式配置中心
SpringCloud Config 分布式配置中心1. 概述微服务意味着要将单体应用中的业务拆分成一个一个子服务,每个服务的粒度相对较小,因此系统中会出现大量的 服务。由于每个服务都需要必要的配置才能运行,所以一套集中式的、动态的配置管理设施是必不可少的。SpringCloud提供了Config Server来解决这个问题,SpringCloud Config为微服务架构中的微服务提供集中化的外部配置支持,配置服务器为各个不同微服务应用的所有环境提供了一个中心化的外部配置。SpringCloud Co原创 2020-05-24 15:04:32 · 592 阅读 · 1 评论 -
SpringCloud-07-新一代路由网关Spring Cloud Gateway
服务网关Gateway1. 概述简介1. SpringCloud Gateway是什么?服务网关还可以用Zuul网关,但是Zuul网关由于一些维护问题,所以这里我们学习Gateway网关,SpringCloud全家桶里有个很重要的组件就是网关, 在1.x的版本中都是采用Zuul网关;但在2.x版本中,Zuul的升级一直跳票,SpringCloud最后自己研发了一个网关代替Zuul,也就是说SpringCloud Gateway是原Zuul1.x版的替代品。SpringCloud Gateway是在Sp原创 2020-05-22 22:21:05 · 1019 阅读 · 0 评论 -
SpringCloud-06-Hystrix断路器
Hystrix断路器1. 概述1. 分布式系统面临的问题复杂分布式体系结构中的应用程序有数十个依赖关系,每个依赖关系在某些时候将不可避免地失败。这就造成有可能会发生服务雪崩。那么什么是服务雪崩呢?多个微服务之间调用的时候,假设微服务A调用微服务B和微服务C,微服务B和微服务C又调用其他的微服务,这就是所谓的“扇出”(向一把打开的折扇)。如果扇出的链路上某个微服务的调用响应时间过长或者不可用,对微服务A的调用就会占用越来越多的系统资源,进而引起系统崩溃,这就是所谓的”雪崩效应“。也就是系统的 高可用原创 2020-05-22 00:15:53 · 941 阅读 · 3 评论 -
SpringCloud-05-OpenFeign服务接口调用
OpenFeign服务接口调用1. 概述1. OpenFeign是什么?Feign是一个声名式WebService客户端,使用Feign能让编写WebService客户端更加简单。它的使用方法是定义一个服务接口然后在上面添加注解。Feign也支持可拔插式的编码器和解码器。SpringCloud对Feign进行了封装,使其支持了Spring MVC标准注解和HttpMessageConverters。Feign可以与Eureka和Ribbon组合使用以支持负载均衡。2. Feign能做什么?Fei原创 2020-05-21 12:44:21 · 796 阅读 · 0 评论 -
SpringCloud[04]Ribbon负载均衡服务调用
Ribbon负载均衡服务调用1. 概述1. Ribbon是什么SpringCloud Ribbon是基于Netflix Ribbon实现的一套客户端,是负载均衡的工具。简单的说,Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件复杂均衡算法和服务调用。Ribbon客户端组件提供一系列完事的配置项如连接超时、重试等。简单的说,就是在配置文件中列出Load Balancer(负载均衡简称LB)后面所有的及其,Ribbon会自动的帮助你基于某种规则(如简单轮询,随机连接等)去连接这些机原创 2020-05-20 23:12:53 · 704 阅读 · 0 评论 -
SpringCloud-03-Consul服务注册与发现
Consul服务注册与发现1. Consul简介1. 什么是ConsulConsul是一套开源的分布式服务发现和配置管理系统,有HashiCorp公司用Go语言开发。提供了微服务系统中的 服务治理 、配置中心 、控制总线 等功能。这些功能中的每一个都可以根据单独需要使用,也可以一起使用以构建全方位的服务网络,总之Consul提供了一种完整的服务网络解决方案。其官方介绍见Consul官网。它具有很多优点。包括:基于raft协议,比较简洁;支持健康检查,同时支持HTTP和DNS协议,支持跨数据中心的W原创 2020-05-20 19:00:28 · 599 阅读 · 0 评论 -
SpringCloud[01]Eureka服务注册与发现
Eureka服务注册与发现1. Eureka基础知识1. 什么是服务治理SpringCloud封装了Netflix公司开发的Eureka模块来实现服务治理在传统的RPC远程调用框架中,管理每个服务与服务之间依赖关系比较复杂,管理比较复杂,所以需要使用服务治理,管理服务与服务之间依赖关系,可以实现服务调用、负载均衡、容错等,实现服务发现与注册2. 什么是服务注册与发现Eureka采用了CS的设计架构,Eureka Server作为服务注册功能的服务器,它是服务注册中心,而系统中的其他微服务,使用原创 2020-05-20 13:21:04 · 3066 阅读 · 3 评论