Java编程
文章平均质量分 84
java小皮皮
这个作者很懒,什么都没留下…
展开
-
阿里爆款Java面试速成笔记也太香了,系统梳理面试6大专题速取
临近金三银四,想必有不少老哥已经在为面试做准备了。总之就是每一次面试都是对我们能力的检验(无论是软实力还是硬实力)。借此机会,LZ为大家带来了一份近期在Github上爆火的阿里面试小册。小册分别从软实力跟硬实力两方面入手,全方位为大家解读面试题,近期LZ面试前也一直是刷的这个,感觉总结得挺全面的,本着好东西就是要拿出来分享的原则,特此在下面把小册展示出来,希望帮助大家通过面试。由于篇幅限制不能把每个技术栈的面试题截全就只截图部分了,还望谅解。为了不影响大家的阅读体验,就展示到这了,就不把篇幅拉得太长了。..原创 2022-07-20 13:45:58 · 419 阅读 · 1 评论 -
认证授权Spring Security OAuth教程(第二版)
先是给大家基本概念,然后是基于Session的认证方式,紧接着会带着大家去快速的上手SpringSecurity,然后回去给大家详解解释SpringSecurity应用、然后就是分布式系统认证方案以及OAuth2.0,最后是SpringSecurity实现分布式系统授权!下面会带着大家详细地去学习!...原创 2022-07-20 13:17:07 · 407 阅读 · 0 评论 -
Java多线程不会的看这里,阿里第三版核心技术手册PDF全彩版
本章的案例也充分说明,当线程与某些技术相结合时,我们要考虑的事情会更多。在学习本章的过程中,我们只需要考虑一件事情,那就是如何使单例模式与多线程结合时是安全、正确的。synchronized对象监视器为0bject时的使用方法;synchronized对象监视器为Class时的使用方法;ReentrantReadWriteLock类的使用。如何使用wait/notify机制实现线程间的通信;ReentrantLock类的使用;ThreadLocal类的使用。...原创 2022-07-20 13:04:06 · 450 阅读 · 0 评论 -
不会又是一个Go的BUG?
这个死锁的坑确实很容易踩,尤其是Java程序员来写Go,所以我们写Go代码时还是得写得更Go一点才行。Go的设计者比较「偏执」,认为「不好」的设计坚决不去实现,就如锁的实现不应该依赖线程、协程信息;可重入(递归)锁是一种不好的设计。所以这种看似有BUG的设计,也存在一定的道理。当然每个人都有自己的想法,你觉得Go的读写锁这样实现合理吗?httpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttps。...原创 2022-07-19 15:31:57 · 274 阅读 · 0 评论 -
为什么map不能遍历的同时进行增删操作?
前段时间,同事在代码中KW扫描的时候出现这样一条上面出现这样的原因是在使用foreach对HashMap进行遍历时,同时进行put赋值操作会有问题,异常ConcurrentModificationException。于是帮同简单的看了一下,印象中集合类在进行遍历时同时进行删除或者添加操作时需要谨慎,一般使用迭代器进行操作。于是告诉同事,应该使用迭代器Iterator来对集合元素进行操作。同事问我为什么?这一下子把我问蒙了?对啊,只是记得这样用不可以,但是好像自己从来没有细究过为什么?...原创 2022-07-19 15:22:55 · 1226 阅读 · 0 评论 -
Java中看似简单的for循环,竟有这么多坑?
实际的业务项目开发中,大家应该对这个操作不陌生吧?很多同学可以立刻想出很多种实现的方式,但你想到的这些实现方式都是人畜无害的吗?,很多新手可能稍不留神就会掉入其中。那么,到底有哪些实现方式呢?哪些实现方式可能会存在问题呢?这里我们一起探讨下。注意哦,这里讨论的可不是茴香豆的“茴”字有有种写法的问题,而是很严肃很现实也很容易被忽略的技术问题。给定一个用户列表allUsers,需要从该列表中剔除隶属部门为dev的人员,将剩余的人员信息返回。...原创 2022-07-19 15:16:54 · 156 阅读 · 0 评论 -
看MyBatis是如何执行一条SQL语句的
在前两天的一次面试中,面试官问了一个和标题一样的问题,由于一直认为MyBatis只是一个ORM框架,所以并没有对他有过深入的了解,于是被问到了,那么这一篇文章来从源码探究一下MyBatis是如何执行一条SQL语句的。...原创 2022-07-19 15:10:42 · 186 阅读 · 0 评论 -
Java多线程知识点:深入浅出阻塞队列BlockingQueue及其典型实现ArrayBlockingQueue
会抛异常的、返回特殊值的、会阻塞的和阻塞有超时的;插入型的、删除型的、读取型的。如下面的表格总结(其实也是源码的注释内容)下面我们就此表格说明下(我又多分了一个种类->读取删除型常规操作插入型booleanadd(e),向队列插入元素,成功返回true,如果队列容量不够了,则抛出IllegalStateExceptionbooleanoffer(e),向队列插入元素,成功true,失败false,队列容量不够,不会抛出异常删除型BlockingQueue扩展操作v直接上图)。。...原创 2022-07-19 15:06:34 · 832 阅读 · 0 评论 -
工作流引擎如何在vivo营销自动化中的应用实践
工作流(Workflow)——对工作流程及其各操作步骤之间业务规则的抽象,将流程中的工作组织逻辑和规则进行建模,交由计算机进行自动处理。工作流的本质思想通过预定义的工作流程模板,对现实活动进行实例化的过程。简单说就是通过预设的格式或者可视化配置好流程的模板(比如一种分享活动的运行流程模板),使用时通过该模板构造出一个流程实例对象,通过实例对象完成活动运行跟踪和回溯。本文分析了引入工作流引擎的背景,驱使业务逻辑从控制流中剥离出来,让产研团队更聚焦于业务,解决研发效率低的问题。httpshttps。...原创 2022-07-19 15:02:59 · 133 阅读 · 0 评论 -
数据结构与算法 :队列与栈的操作以及Java中的List和Queue
这样原来非空的就变成了空队列了。---每次操作无论push还是pop均有一个队列是空的。把上面我分析的思路翻译成代码就是这样的。原创 2022-07-19 15:00:26 · 647 阅读 · 0 评论 -
如何在Spring接口的基础上,集成Caffeine+Redis两级缓存
在使用Redis发送消息前,需要先定义一个消息对象。其中的数据包括消息要作用于的Cache@Data//标识更新或删除操作//源主机标识,用来避免重复操作}复制代码UPDATE,DELETE;}复制代码消息体中的msgSource是添加的一个消息源主机的标识,添加这个是为了避免收到当前主机发送的消息后,再进行重复操作,也就是说收到本机发出的消息直接丢掉什么都不做就可以了。"+port;}复制代码这样消息体的定义就完成了,之后只要调用的方法就可以把这个对象发布到指定的主题上了。...原创 2022-07-19 14:51:36 · 369 阅读 · 0 评论