- 博客(15)
- 收藏
- 关注
原创 volatile关键字
volatile关键字 先来分享一篇写的非常好的关于 volatile 博客《Java并发编程:volatile关键字解析》,里面也详细的介绍了原子性、可见性和有序性,再来谈一谈自己的一些理解: 并发编程中又是那个概念:原子性、可见性、有序性;并发程序如果想要正确地执行,必须要保证原子性、可见性以及有序性。volatile 能够保证有序性和可见性,但是不能够保证原子性,所以是无法替代 synchr...
2019-11-16 14:54:42
286
原创 zookeeper 和 eureka 有什么区别,哪个更适合作为注册中心?
zookeeper 和 eureka 有什么区别,哪个更适合作为注册中心? 最近接触到一个问题,Zookeeper 和 Eureka 有什么区别,为什么注册中心一定要用 Eureka ,今天又看到一篇文章说京东面试好像有问到这个问题,所以来记录一下自己的理解: CAP 原则 谈到这个问题,最主要的是明白什么事 CAP 原则: C(Consistency):数据一致性。分布式系统中,数据会有副本,无......
2019-01-29 15:15:48
6510
原创 Java中的锁
公平锁 多个线程按照申请锁的顺序来获取锁,先来后到。 在并发环境中,每个线程在获取锁时会先查看此锁维护的等待队列,如果为空,或者当前线程是等待队列的第一个,就占有锁;如果不是,就会加入到等待队列中,以后会按照 FIFO 的规则从队列中取到自己。 非公平锁 上来就尝试占有锁,如果尝试失败,就再采用类似公平锁的方式。吞吐量比公平锁大。Synchronized 是一种非公平锁。 多个线程获取锁的顺序并不...
2019-11-25 00:44:03
191
原创 Java 之 JUC
JUC JUC 是指 Java 中的三个包: (1)并发:package java.util.concurrent; 并发和并行:并发是多个线程同时访问一个数据;并行是多个线程同时在做不同的事情。 (2)原子:package java.util.concurrent.atomic; (3)锁:package java.util.concurrent.locks; CountDownLatch 类 ...
2019-11-25 00:43:39
359
原创 HashMap 源码深度解析
HashMap 剖析 (1)HashMap 结构概述: HashMap 的底层使用 数组+单项链表,jdk1.8后,当链表过长时,会将链表转成红黑树,时间复杂度由 O(n) 变成了 O(logn)。 (2)HashMap 的 put() 过程 a、对 key 求 hash 值。计算下标(通过 hash(Object key) 方法); b、如果没有碰撞,直接放入桶中; c、如果发生碰撞,以链...
2018-12-19 18:26:05
287
原创 Spring Cloud Feign入门
Spring Cloud Feign入门 Spring Cloud Feign基于Netflix Feign,整合了Spring Cloud Ribbon和Spring Cloud Hystrix,还提供了一种声明式的Web服务客户端定义方式,也支持SpringMVC注解。同时Feign的一些主要主件是可插拔的,可以使我们很方便的扩展和替换。 一、基础项目搭建: (1)pom.xml 文件需要添加...
2018-12-19 11:40:32
206
原创 Spring Cloud Eureka双节点注册中心集群配置
Spring Cloud Eureka双节点注册中心集群配置 在《服务治理:Spring Cloud Eureka》中既往少了单节点的配置,而注册中心是高可用的,一般是需要集群部署的,这篇文章我们介绍如何配置双节点的注册中心集群。 (1)修改 application.properties 为: spring.application.name=eureka-server (2)新建 applica...
2018-12-12 16:14:51
1350
原创 java异步执行业务逻辑
java异步执行业务逻辑 1、创建线程池: Java通过Executors提供四种线程池: a、newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。 b、newFixedThreadPool 创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。 c、newScheduledThreadPool 创建一个...
2018-12-07 10:53:23
2534
原创 springboot + redis项目实战
springboot + redis项目实战 1、添加依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> <version>2.1.1.RE...
2018-12-06 12:00:25
1043
3
原创 spring boot项目多数据源处理
spring boot项目多数据源处理 基于《spring boot集成mybatis》,增加一套数据源配置信息,多数据源配置的实质就是让不同的MybatisConfig作用于对应的mapper目录,获取不同的数据库连接信息: 1、yml文件中增加了数据库连接信息 2、增加了一个MybatisBConfig,用来处理另一个数据源: @Configuration @EnableConfigurat...
2018-12-05 17:35:42
341
原创 SpringBoot 集成 Mybatis
mybatis 1、添加mybatis依赖: &amp;amp;amp;amp;amp;amp;lt;dependency&amp;amp;amp;amp;amp;amp;gt; &amp;amp;amp;amp;amp;amp;lt;groupId&amp;amp;amp;amp;amp;amp;gt;org.mybatis&amp;amp;amp;amp;amp;amp;lt;/groupId&
2018-12-04 10:11:16
226
原创 spring常用注解
spring常用注解 1、@Autowired:默认按类型装配,如果我们想使用按名称装配,可以结合@Qualifier注解一起使用 2、@Resource:默认按名称装配,当找不到与名称匹配的bean才会按类型装配。 3、@Configuration:把一个类作为一个Ioc容器,它的某个方法头上如果注册了@Bean, 就会作为这个Spring容器中的Bean。 4、@Controller:...
2018-12-03 18:38:10
176
原创 上传spring boot项目到github
上传spring boot项目到github 此文章接《Spring Boot项目搭建》,演示如何将本地的spring boot项目集成git,发布到github。
2018-12-03 11:58:16
1608
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅