
java
云康
这个作者很懒,什么都没留下…
展开
-
经典排序算法
排序算法原创 2023-02-21 10:00:25 · 203 阅读 · 0 评论 -
Guava中的Map骚操作,代码量节省一半
第三方工具包使用原创 2022-11-21 11:44:12 · 260 阅读 · 0 评论 -
发现Kafka bug
kafka空针织原创 2022-10-20 19:58:57 · 980 阅读 · 0 评论 -
@Async注解使用不当引发的spring循环依赖
循环依赖原创 2022-09-14 10:55:37 · 239 阅读 · 0 评论 -
Kafka处理数据超时导致Offset回滚,重复消费
Kafka consumer重复消费原创 2022-08-23 13:39:19 · 1617 阅读 · 0 评论 -
OAuth2.0接百度平台进行授权
OAuth2.0、百度原创 2022-07-12 13:39:24 · 2363 阅读 · 3 评论 -
面试突击系列
死锁排查实践https://juejin.cn/post/7098185678529232909原创 2022-05-17 15:33:08 · 165 阅读 · 0 评论 -
实现ResponseBodyAdvice接口,Controller层返回报转换异常
controller中返回字符串第一次进入这个类AbstractMessageConverterMethodProcessor的writeWithMessageConverters中由于返回类型是String,所以先匹配了这个StringHttpMessageConverter转换然后又通过beforeBodyWrite去写的,写成了TraceResult类当前类实例是StringHttpMessageConverter,其中方法中第二个参数是String,就会报转换异常了解决方法原创 2021-12-15 20:07:33 · 676 阅读 · 0 评论 -
Java线程池实现原理及实践原理
https://juejin.im/post/5e86e13ee51d4546e07b5f29原创 2020-04-03 16:00:32 · 275 阅读 · 0 评论 -
从ReentrantLock的实现看AQS的原理及应用
美团技术团队https://mp.weixin.qq.com/s/sA01gxC4EbgypCsQt5pVog原创 2020-04-03 14:58:25 · 281 阅读 · 0 评论 -
微服务介绍
https://juejin.im/post/5ab0d1a3f265da23731448e0原创 2019-12-31 14:02:29 · 266 阅读 · 0 评论 -
分布式锁
一、引题1、什么是分布式锁?分布式CAP理论提到任何一个系统都无法同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partitiontolerance)三者的,同一时刻只能满足两个,在这种情况下分布式锁就出现了,分布式锁就是用来解决数据一致性问题的。保证一个方法或属性在高并发情况下的同一时间只能被同一个线程执行,在单体应用中,控制并发处理的接口...原创 2020-04-03 14:59:23 · 376 阅读 · 0 评论 -
JVM虚拟机——GC参数解析 UseSerialGC、UseParNewGC、UseParallelGC、UseConcMarkSweepGC
https://www.cnblogs.com/redcreen/archive/2011/05/04/2037057.htmlhttps://blog.youkuaiyun.com/leo187/article/details/88920036原创 2019-09-03 17:22:56 · 3692 阅读 · 0 评论 -
Java对象的四种引用类型
对象的强、软、弱和虚引用在JDK 1.2以前的版本中,若一个对象不被任何变量引用,那么程序就无法再使用这个对象。也就是说,只有对象处于可触及(reachable)状态,程序才能使用它。从JDK 1.2版本开始,把对象的引用分为4种级别,从而使程序能更加灵活地控制对象的生命周期。这4种级别由高到低依次为:强引用、软引用、弱引用和虚引用。⑴强引用(StrongReference)强引用是使用最普...原创 2019-08-28 12:24:53 · 358 阅读 · 0 评论 -
Java内存分配中,堆和栈的区别
参考:https://www.jianshu.com/p/65b9f5f79716根据编译原理,程序在运行时的内存分配策略有三种:静态 Static指在编译时就能确定的每个数据目标在运行时刻需要的存储空间需求。因而在编译的时候就可以给他们分配固定的存储空间。 这种数据目标在编译时就为他们分配固定的内存。限制:代码中不能有可变数据结构,如数组。代码中不允许有递归或嵌套结构的出现。pub...原创 2019-08-28 11:38:53 · 442 阅读 · 0 评论 -
Java线程池解析
参考:https://juejin.im/post/5d1882b1f265da1ba84aa676#heading-8经典面试题面试问题1:Java的线程池说一下,各个参数的作用,如何进行的?面试问题2:按线程池内部机制,当提交新任务时,有哪些异常要考虑。面试问题3:线程池都有哪几种工作队列?面试问题4:使用无界队列的线程池会导致内存飙升吗?面试问题5:说说几种常见的线程池及使用场景...原创 2019-08-10 15:35:37 · 981 阅读 · 0 评论 -
Java面试之Synchronized解析
参考:https://juejin.im/post/5d5374076fb9a06ac76da894#heading-8synchronized,是解决并发情况下数据同步访问问题的一把利刃,也是面试经常闻到的一个知识点。那么synchronized的底层原理是什么呢?Synchronized的使用场景synchronized关键字可以作用于方法或者代码块,最主要有以下几种使用方式,如图:...原创 2019-08-19 17:01:28 · 2223 阅读 · 5 评论 -
TCP三次握手四次挥手(通俗易懂版)
TCP连接的建立(三次握手)最开始的时候客户端和服务器都是处于CLOSED状态。主动打开连接的为客户端,被动打开连接的是服务器。三次握手通俗理解:TCP客户端是男孩子,TCP服务器是女孩子,男孩子要追女孩子,首先要建立恋爱关系。需要一个建立恋爱关系的过程。男孩:我们可以恋爱吗?(客户端请求服务器建立连接)女孩:你想追我?想清楚了!(服务器要求客户端确认连接)男孩:没错,你就是我的梦...原创 2019-08-08 11:54:36 · 2203 阅读 · 0 评论 -
JVM内存结构的面试题
参考:https://juejin.im/post/5d4789afe51d453b386a62ac问题:1、JVM管理的内存结构是怎样的?2、不同的虚拟机在实现运行时内存的时候有什么区别?3、运行时数据区中哪些区域是线程共享的?哪些是独享的?4、除了JVM运行时内存以外,还有什么区域可以用吗?5、堆和栈的区别是什么?6、Java中的数组是存储在堆上还是栈上的?7、Java中的对象...原创 2019-08-08 11:15:26 · 472 阅读 · 0 评论 -
内存溢出时怎么排查?
https://www.cnblogs.com/intsmaze/p/9550256.html原创 2019-07-30 17:41:27 · 1456 阅读 · 0 评论 -
面试必备之乐观锁和悲观锁
**何谓悲观锁与乐观锁**乐观锁对应于生活中乐观的人总是想着事情往好的方向发展,悲观锁对应于生活中悲观的人总是想着事情往坏的方向发展。这两种人各有优缺点,不能不以场景而定说一种人好于另外一种人。悲观锁总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁(共享资源每次只给一个线程使用,其它线程阻塞,用完后再把资源转...原创 2019-04-13 17:11:01 · 698 阅读 · 0 评论 -
Java中的各种锁讲解
https://blog.youkuaiyun.com/axiaoboge/article/details/84335452原创 2019-04-13 17:25:58 · 641 阅读 · 0 评论 -
Log4j2.xml配置文件详解
https://blog.youkuaiyun.com/zheng0518/article/details/69558893原创 2019-04-26 16:18:05 · 329 阅读 · 0 评论 -
Java8中操作日期时间相关的API
从Java8开始,原生的Java API中已经能提供高质量的日期和时间支持,java.time包中整合了很多Joda-Time的特性。1、LocalDate和LocalTime首先LocalDate类,该类的实例是一个不可变对象,它只提供了简单的日期,并不包含当天的时间信息,也不附带任何与时区相关的信息。一般通过静态工厂方法of创建一个LocalDate实例。LocalDate实例提供了多种...原创 2019-04-19 15:13:29 · 261 阅读 · 0 评论 -
Google身份验证服务端实现
import org.apache.commons.codec.binary.Base32;import org.apache.commons.codec.binary.Base64;import javax.crypto.Mac;import javax.crypto.spec.SecretKeySpec;import java.security.InvalidKeyException;...原创 2019-04-24 12:01:39 · 3532 阅读 · 2 评论 -
Java线程池各种概念
针对线程池的讲解,比较详细,留个网址文章链接原创 2019-04-25 14:53:09 · 507 阅读 · 0 评论 -
mac IntelliJ IDEA 快捷键总结
**Mac键盘符号和修饰键说明**⌘ Command⇧ Shift⌥ Option⌃ Control↩︎ Return/Enter⌫ Delete⌦ 向前删除键(Fn+Delete)↑ 上箭头↓ 下箭头← 左箭头→ 右箭头⇞ Page Up(Fn+↑)⇟ Page Down(Fn+↓)Home Fn + ←End Fn + →⇥ 右制表符(Tab键)⇤ 左制表...原创 2019-04-25 16:43:01 · 463 阅读 · 0 评论 -
(阿里巴巴手册)关于并发场景下,通过双重检查锁实现延迟初始化的优化问题隐患的记录
《阿里巴巴Java开发手册》中有这么一个推荐:这种单例模式是我经常写的,看到竟然是反例,网上查了查,还是有根据的。这样的问题在于初始化代码:instance = new Singleton();JVM会将这段代码分成三步去执行:a.分配内存空间;b.构造Singleton;c.将instance指向构造的实例。如果执行的过程是a->b->c的话,那上面的代码是没有...原创 2019-04-25 17:06:05 · 509 阅读 · 0 评论 -
CountDownLatch、CyclicBarrier和Semaphore比较并举例(通俗易懂)
在java 1.5中,提供了一些非常有用的辅助类来帮助我们进行并发编程,比如CountDownLatch,CyclicBarrier和Semaphore,今天我们就来学习一下这三个辅助类的用法。CountDownLatch用法CyclicBarrier用法Semaphore用法一.CountDownLatchCountDownLatch类位于java.util.concurrent包...原创 2019-05-24 19:08:03 · 245 阅读 · 0 评论 -
下载jdk8登录账号
目前在官网下载低于jdk1.8的java jdk的时候需要登陆,这边分享一个账号,方便下载2696671285@qq.com密码:Oracle123转载 2019-05-16 11:59:49 · 14956 阅读 · 55 评论 -
Spring集成MyBatis 多数据源的配置和管理
同一个项目有时会涉及到多个数据库,也就是多数据源。多数据源又可以分为两种情况:1)两个或多个数据库没有相关性,各自独立,其实这种可以作为两个项目来开发。比如在游戏开发中一个数据库是平台数据库,其它还有平台下的游戏对应的数据库;2)两个或多个数据库是master-slave的关系,比如有mysql搭建一个 master-master,其后又带有多个slave;或者采用MHA搭建的master-s...原创 2019-05-17 11:46:51 · 350 阅读 · 0 评论 -
彻底理解scheduleAtFixedRate 与 scheduleWithFixedDelay
scheduleAtFixedRate以上一个任务***开始的时间***计时,period时间过去后,检测上一个任务是否执行完毕,如果上一个任务执行完毕,则当前任务立即执行,如果上一个任务没有执行完毕,则需要等上一个任务执行完毕后立即执行。scheduleWithFixedDelay以上一个任务***结束的时间***开始计时,period时间过去后,立即执行。重点:两个方法以不同的时间点...原创 2019-05-27 11:27:28 · 978 阅读 · 0 评论 -
spring boot自定义starter
自动化配置需满足两个条件:能够生成 Bean,并注册到 Bean 容器中;能够自动配置项目所需要的配置。1、首先创建一个spring boot 项目,删除不需要的依赖、test包,另外启动类不需要,否则会导致@ConfigurationProperties冲突,只留一个依赖即可<dependency> <groupId>org.springframework...原创 2019-06-06 13:41:01 · 220 阅读 · 0 评论 -
idea中maven项目 jar包下载不完整解决办法
有时从git上clone项目,maven工程,有时候pom.xml在project标签处报错:Failed to read artifact descriptor for xxx:jar这种有时候时jar包下载不完全,去maven仓库看相关jar包会是*.lastUpdated这种格式,这是jar下载不完全。解决办法:在这个Command line里输入mvn -U idea:idea...原创 2019-06-10 10:48:59 · 8644 阅读 · 0 评论 -
Http auth认证的两种方式Basic方式和 Digest认证
一、Http Base Auth 方式当访问一个Http Basic Auth 网站的时候需要提供用户名,密码,否则会返回401 (without authoration)。Http Basic Authentication认证 有2种方式:1、请求头部Authorization 中添加 用户名/密码 的base64 编码字符串。2、url中拼用户名和密码。市面上大部分浏览器支持url...原创 2019-06-17 10:16:02 · 18374 阅读 · 0 评论 -
Java 对象克隆(浅克隆和深克隆)
https://blog.youkuaiyun.com/w410589502/article/details/54985987原创 2019-06-21 11:58:39 · 275 阅读 · 0 评论 -
Spring Boot 2.x 跨域问题(多种解决方式)
参考:https://juejin.im/post/5d438becf265da03de3ae29f什么是跨域首先,我们需要了解一下一个URL是怎么组成的:// 协议 + 域名(子域名 + 主域名) + 端口号 + 资源地址http: + // + www.baidu.com + :8080/只要协议,子域名,主域名,端口号这四项组成部分中有一项不同,就可以认为是不同的域,不同的域之间...原创 2019-08-02 15:45:11 · 3012 阅读 · 1 评论 -
手写一个生产者/消费者模式(三种方式实现)
这种设计模式需要满足以下三点要求:(1)生产者生产数据到缓冲区中,消费者从缓冲区中取数据。(2)如果缓冲区已经满了,则生产者线程阻塞;(3)如果缓冲区为空,那么消费者线程阻塞。编写之前分析:(1)定义一个缓存队列,选择一个集合当做缓存,给予缓存上限,缓存队列只有两种行为(生产数据和消费数据);(2)定义一个生产者线程,调用缓存队列中的生产行为;(3)定义一个消费者线程,调用缓存队列中...原创 2019-04-13 15:57:14 · 8281 阅读 · 5 评论