首页
首页
沸点
课程
直播
活动
竞赛
商城
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
程序员小黑
掘友等级
Java攻城狮
一个有趣的程序员。
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
36
文章 36
沸点 0
赞
36
返回
|
搜索文章
最新
热门
深入理解Java泛型:你对泛型的理解够深入吗?
泛型提供了一种将集合类型传达给编译器的方法,一旦编译器知道了集合元素的类型,编译器就可以对其类型进行检查,做类型约束。 在没有泛型之前,我们只能通过更直观的方法命名和 doc 注释来告知方法的调用者,forEachStringCollection方法只能接收元素类型为Strin…
高效开发:你的项目有接口聚合服务吗?
「前端同学请求两个接口,聚合一下数据不就行了?」后端同学想只提供业务领域基础 API 服务能力,数据组装处理则希望由前端同学完成。 「后端聚合一下,前端可以少一次请求,只负责页面渲染!」前端同学希望只负责页面渲染,而 H5、APP、小程序同一个聚合逻辑可能会出现在三端,后端聚合…
踩坑了!使用 @Autowired 注入成功,GetBean 方法却获取不到?!
之前推文已经讲过 当@Transactional遇到@CacheEvict,你的代码是不是有bug! 现在要在事务提交之后清除缓存。在Spring4.2 之后,可以使用@TransactionalEventListener选择在事务提交之后再消费对应的事件。 满心欢喜写完代码,…
配置热更新,不想重启,如何更新Bean的状态?
本文将以运行时修改 JDBC 参数为例,来讨论尝试运行时修改配置,最后提出普遍的解决方案。 画外音:思路比结果更重要。 在动态切换的过程中,必然会有一个过渡过程,从旧连接过渡到新连接,这个过渡的过程应该是尽可能的平滑。比如可以通过运维层面来做到:在就修改完 URL 和 pass…
当@Transactional遇到@CacheEvict,你的代码还运行正常吗?
首先,@Transactional是给当前方法添加事务支持,是通过 AOP 动态代理实现的,在方法执行完之后才提交事务。其次,@CacheEvict是在该方法执行完之后,清除 redis 中的缓存,也是使用 AOP 动态代理实现的。 那么,上述方法想表达语义应该是:先保存对象,…
这次我们来简单聊聊 Stream#forEach 源码
调用spliterator()方法,创建Spliterator对象。在ArrayList中,实际上是创建了ArrayListSpliterator这个实现类的实例对象。 调用StreamSupport.stream(spliterator(), false);方法。在本示例中,…
Stream#foreach方法摸底三问,你都了解吗
JAVA8 新增了 Stream API,而在 Stream API 中又为程序员提供了一个遍历集合的 foreach 方法:java.util.stream.Stream#forEach。 那你对这个 foreach 方法了解多少呢?快来回答这几个问题吧。 如题。foreac…
面试题:你真的会三目运算符吗?
提问:当 a=1,b=2 时,test1 方法的执行结果是什么?思考一分钟。 如果返回值 X 和返回值 Y 是同种类型,那么返回类型毫无疑问就是这种类型。 如果两个返回值 X 和 Y 的类型不同,那么返回值类型为他们两最接近的父类。举例: 对于基本数据类型,如果其中一个返回值 …
惊人!Spring5 AOP 默认使用Cglib ?从现象到源码深度分析
刚看到这个说法的时候,我是保持怀疑态度的。 简单翻译一下。Spring AOP 默认使用 JDK 动态代理,如果对象没有实现接口,则使用 CGLIB 代理。当然,也可以强制使用 CGLIB 代理。 为了证明文档写错了,这位同学还写了一个 DEMO。下面,就由我来重现一下这个 D…
经验分享:如何快速定位问题(BUG)
作为程序员,以上这些场景你一定都经历过。今天就来聊聊如何快速定位问题。 先划重点,下文所写都是一家之言,本人工作经验不多,语言表达能力有限,如果写的不好,还望轻喷。另外,本文所讲都是站在Java后端开发者的角度。 案例1:App首页白屏。 详细描述:App、H5、小程序首页都是…
下一页
个人成就
文章被点赞
330
文章被阅读
107,190
掘力值
2,536
关注了
5
关注者
219
收藏集
0
关注标签
11
加入于
2019-08-31