
Java
文章平均质量分 60
yusimiao
这个作者很懒,什么都没留下…
展开
-
ForkJoinPool大型图文现场(一阅到底 vs 直接收藏)
知识回顾并发工具类我们已经讲了很多,这些工具类的「目标」是让我们只关注任务本身,并且忽视线程间合作细节,简化了并发编程难度的同时,也增加了很多安全性。工具类的对使用者的「目标」虽然一致,但每一个工具类本身都有它独特的应用场景,比如:我会手动创建线程,为什么要使用线程池? 介绍了使用线程池管理线程将一个大任务分解成多个子任务来简单执行,借助 不会用Java Future,我怀疑你泡茶没我快, 又是超长图文!! 的 Future 特性获取子任务执行结果——二者结合使用就可以处理简单的并行任务搞定 Com原创 2021-02-24 09:32:38 · 941 阅读 · 3 评论 -
我会手动创建线程,为什么让我使用线程池?
| 好看请赞,养成习惯你有一个思想,我有一个思想,我们交换后,一个人就有两个思想If you can NOT explain it simply, you do NOT understand it well enough现陆续将Demo代码和技术文章整理在一起 Github实践精选 ,方便大家阅读查看,本文同样收录在此,觉得不错,还请Star????上一篇文章 面试问我,创建多少...原创 2020-04-22 08:39:24 · 2104 阅读 · 5 评论 -
volatile和synchronized到底啥区别?多图文讲解告诉你
- 你有一个思想,我有一个思想,我们交换后,一个人就有两个思想- If you can NOT explain it simply, you do NOT understand it well enough现陆续将Demo代码和技术文章整理在一起 Github实践精选 ,方便大家阅读查看,本文同样收录在此,觉得不错,还请Star之前写了几篇 Java并发编程的系列 文章,有个朋...原创 2020-03-06 08:23:30 · 1808 阅读 · 0 评论 -
Java12可用新特性一览,了解一下没有错
- 你有一个思想,我有一个思想,我们交换后,一个人就有两个思想- If you can NOT explain it simply, you do NOT understand it well enough现陆续将Demo代码和技术文章整理在一起 Github实践精选,本文同样收录在此,方便大家阅读查看,觉得不错,还请Star????日常工作对集合操作真的太频繁了,前端时间就写过一...原创 2020-02-13 11:33:31 · 2923 阅读 · 1 评论 -
IntelliJ IDEA的这个接口调试工具真是太好用了!
- 你有一个思想,我有一个思想,我们交换后,一个人就有两个思想- If you can NOT explain it simply, you do NOT understand it well enough现陆续将Demo代码和技术文章整理在一起 Github实践精选,方便大家阅读查看,觉得不错,还请Star????抗击疫情,在家办公。工作照常干,领导需要几个新功能接口开发。以前在...原创 2020-02-10 10:05:53 · 5943 阅读 · 4 评论 -
读《Clean Code 代码整洁之道》之感悟
盲目自信,自认为已经敲了几年代码,还看什么整洁之道啊。我那可爱的书架读懂了我的心思,很明事理的保护起来这本小可爱,未曾让它与我牵手最近项目中的 bug 有点多,改动代码十分吃力,每看一行代码都带一句“这是什么XX代码啊,真XX难改”,这样持续了好几天,有天晚上坐在书房回想这几天发生的一切,仰头定睛思考,我终于和它重新确认了眼神????股票见涨你知道买了, 汽车撞墙知道拐了, 孩子死了你...原创 2020-02-06 08:58:51 · 1616 阅读 · 0 评论 -
MySQL拼接字符串,GROUP_CONCAT 值得拥有
上一篇文章 [跨表更新,看到自己写的SQL像个憨憨](https://dayarch.top/p/mysql-cross-table-update.html) 写了关于跨表个更新的内容。一年过的很快,文中后来的两位员工 馮大 和 馮二 也要面对无情的 KPI 考核了,他们工作干的很不错,performance 分别是 4 和 5新需求来了,静悄悄的来了!!! 领导想要查看每个 perfor...原创 2020-02-04 08:55:52 · 2285 阅读 · 0 评论 -
跨表查询经常有,何为跨表更新?
有点 SQL 基础的朋友肯定听过 「跨表查询」,那啥是跨表更新啊?背景项目新导入了一批人员数据,这些人的有的部门名称发生了变化,有的联系方式发生了变化,暂且称该表为t_dept_members, 系统中有另外一张表 t_user_info 记录了人员信息。要求将 t_dept_members 中有变化的信息更新到 t_user 表中,这个需求就是「跨表更新」啦憨B SQL 直接被秒杀不...原创 2020-02-03 08:47:23 · 3294 阅读 · 0 评论 -
我的2019归零,2020走你
作为生长在内蒙的,不会套马的,酒精过敏的,不吃羊肉的,也不魁梧的奇葩,单曲循环听着腾格尔大爷的翻唱歌曲「可能否」,还是开始写了 2019 年总结,这个总结比 2002 ???? 年来的更晚一些,因为在等待 2019 年末的一个 PMP(拍马屁)的成绩,赶不上各个平台的总结比赛了,写下来给自己个答复年初的一次旅行之后,回来倍感惶恐,总觉得应该做点什么继续充实自己的生活。写博客记录和维护公众号的想法也就随...原创 2020-01-20 08:40:34 · 1721 阅读 · 3 评论 -
小小TODO标识,你用对了吗?
前言有时,您需要标记部分代码以供将来参考,比如: 优化,改进,可能的更改,要讨论的问题等。 通常我们会在代码中加入如下的标记表示待办://TODO 我将要在这里做 xxx你这样做,别人也会这样做。一时间,项目中可能会存在大量的 TODO,当你搜寻你的 TODO 时也就变得非常麻烦,如同石沉大海,也就失去了这个标记的意义。IntelliJ IDEA允许我们添加特殊类型的注释,使得这些注释在...原创 2020-01-13 11:18:27 · 2599 阅读 · 0 评论 -
一张图帮你记忆,Spring Boot 应用在启动阶段执行代码的几种方式
前言有时候我们需要在应用启动时执行一些代码片段,这些片段可能是仅仅是为了记录 log,也可能是在启动时检查与安装证书 ,诸如上述业务要求我们可能会经常碰到Spring Boot 提供了至少 5 种方式用于在应用启动时执行代码。我们应该如何选择?本文将会逐步解释与分析这几种不同方式CommandLineRunnerCommandLineRunner 是一个接口,通过实现它,我们可以在 Sp...原创 2019-12-30 08:38:21 · 1880 阅读 · 0 评论 -
Java equals 和 hashCode 的这几个问题可以说明白吗?
前言上一篇文章 如何妙用 Spring 数据绑定? ,灵魂追问 环节留下了一个有关 equals 和 hashcode 问题 。基础面试经常会碰到与之相关的问题,这不是一个复杂的问题,但很多朋友都苦于说明他们二者的关系和约束,于是写本文做单独说明,本篇文章将循序渐进 ( 通过举例,让记忆与理解更轻松 ) 说明这些让你有些苦恼的问题,Let's go .......面试问题1. Java 里...原创 2019-12-23 08:38:33 · 1894 阅读 · 0 评论 -
如何妙用Spring 数据绑定机制?
前言在剖析完 「Spring Boot 统一数据格式是怎么实现的? 」文章之后,一直觉得有必要说明一下 Spring's Data Binding Mechanism 「Spring 数据绑定机制」。默认情况下,Spring 只知道如何转换简单数据类型。比如我们提交的 int、String 或 boolean类型的请求数据,它会自动绑定到与之对应的 Java 类型。但在实际项目中,远远不够,因...原创 2019-12-16 08:42:18 · 1767 阅读 · 0 评论 -
Lombok 使用详解,简化Java编程
前言在 Java 应用程序中存在许多重复相似的、生成之后几乎不对其做更改的代码,但是我们还不得不花费很多精力编写它们来满足 Java 的编译需求比如,在 Java 应用程序开发中,我们几乎要为所有 Bean 的成员变量添加 get() ,set() 等方法,这些相对固定但又不得不编写的代码浪费程序员很多精力,同时让类内容看着更杂乱,我们希望将有限的精力关注在更重要的地方。Lombok 已经诞...原创 2019-11-25 14:25:55 · 7202 阅读 · 6 评论 -
Java升级那么快,多个版本如何灵活切换和管理?
前言近两年,Java 版本升级频繁,感觉刚刚掌握 Java8,写本文时,已听到 java14 的消息,无论是尝鲜新特性(Java12 中 Collectors.teeing 超强功能使用),还是由于项目升级/兼容需要,我们可能都要面临管理多个 Java 版本的情另外 Oracle 自 Java11 开始,更改了用户协议,任何商用都会收费。在写本文时,得到消息「微软宣布加入 OpenJDK」,...原创 2019-11-18 08:40:29 · 5650 阅读 · 1 评论 -
手把手教你定制标准Spring Boot starter,真的很清晰
写在前面我们每次构建一个 Spring 应用程序时,我们都不希望从头开始实现具有「横切关注点」的内容;相反,我们希望一次性实现这些功能,并根据需要将它们包含到任何我们要构建的应用程序中横切关注点横切关注点: 指的是一些具有横越多个模块的行为 (来自维基百科的介绍)说白了就是多个项目或模块都可以用到的内容,比如一个 SDK在Spring Boot中,用于表示提供这种横切关注点的模块...原创 2019-11-11 11:03:53 · 1957 阅读 · 0 评论 -
JDK12 Collectors.teeing 你真的需要了解一下
前言在 Java 12 里面有个非常好用但在官方 JEP 没有公布的功能,因为它只是 Collector 中的一个小改动,它的作用是 merge 两个 collector 的结果,这句话显得很抽象,老规矩,我们先来看个图(这真是一个不和谐的图????):管道改造经常会用这个小东西,通常我们叫它「三通」,它的主要作用就是将 downstream1 和 downstre...原创 2019-11-07 08:20:00 · 11032 阅读 · 6 评论 -
java enum类(枚举类)
先给出一段代码:原创 2014-05-23 19:24:53 · 937 阅读 · 0 评论 -
如何设计好的RESTful API
现状现阶段的开发模式多以前后端分离形式存在,前后端开发人员需要通过大量 API 来进行数据交互,如果在交互过程中前后端人员经常遭遇如下问题:前端人员不能快速理解接口字段含义及接口字段变化后端人员想复用某些接口,但是不能快速从接口 URL 的定义中明确该接口的含义,需要进一步读代码确认URL中的英文单词使用五花八门,搜索某个接口不知道具体的关键字请求方法动词如 POST GET 随意使用...原创 2019-05-22 20:42:35 · 964 阅读 · 0 评论 -
HttpMessageConverter是这样转换数据的
Java Web 人员经常要设计 RESTful API(如何设计好的RESTful API),通过 json 数据进行交互。那么前端传入的 json 数据如何被解析成 Java 对象作为 API入参,API 返回结果又如何将 Java 对象解析成 json 格式数据返回给前端,其实在整个数据流转过程中,HttpMessageConverter 起到了重要作用;另外在转换的过程我们可以加入哪些定制...原创 2019-05-27 11:22:59 · 12575 阅读 · 5 评论 -
Mybatis拦截器之数据加密解密
拦截器介绍Mybatis Interceptor 在 Mybatis 中被当作 Plugin(插件),不知道为什么,但确实是在 org.apache.ibatis.plugin 包下面既然是拦截器,可以拦截哪些内容呢?试想一下… 当程序写到持久层时,Mybatis 会 执行 指定 SQL 语句,并处理 请求参数 和 返回值。没错,Mybatis 拦截器可以帮助我们处理上述内容,请看官网的 P...原创 2019-06-13 09:13:05 · 9851 阅读 · 1 评论 -
Dozer 轻松高效玩转DTO(Data Transfer Object)
现状对于分布式系统,需要在不同系统之间传递与转换域对象。因为我们不希望外部公开内部域对象,也不允许外部域对象渗入系统。传统上,数据对象之间的映射通过手工编码(getter/setter)的方式实现,或对象组装器(或转换器)来解决。我们可能会开发某种自定义映射框架来满足我们的映射转换需求,但这一切都显得不够灵巧。DozerDozer 是 Java Bean 到 Java Bean 映射器,它以...原创 2019-06-03 09:16:46 · 3796 阅读 · 2 评论 -
"犯罪心理"解读Mybatis拦截器
原文链接:"犯罪心理"解读Mybatis拦截器Mybatis拦截器执行过程解析 文章写过之后,我觉得 “Mybatis 拦截器案件”背后一定还隐藏着某种设计动机,里面大量的使用了 Java 动态代理手段,它是怎样应用这个手段优雅的设计出整个拦截事件的?就像抓到罪犯要了解它犯罪动机是什么一样,我们需要解读 Mybatis拦截器的设计理念:设计解读Java 动态代理我们都懂得,我们先用它设计一...原创 2019-06-27 09:06:13 · 208 阅读 · 0 评论 -
如何有效预防XSS?这几招管用
原文链接预防XSS,这几招管用最近重温了一下「黑客帝国」系列电影,一攻一防实属精彩,生活中我们可能很少有机会触及那么深入的网络安全问题,但工作中请别忽略你身边的精彩大家应该都听过 XSS (Cross-site scripting) 攻击问题,或多或少会有一些了解,但貌似很少有人将这个问题放在心上。一部分人是存有侥幸心理:“谁会无聊攻击我们的网站呢?”;另一部分人可能是工作职责所在,很...原创 2019-06-30 19:25:00 · 7594 阅读 · 0 评论 -
面试还不知道BeanFactory和ApplicationContext的区别?
接口 BeanFactory 和 ApplicationContext 都是用来从容器中获取 Spring beans 的,但是,他们二者有很大不同我看到过很多问 BeanFactory 和 ApplicationContext 不同点的问题,考虑到这,我应该使用前者还是后者从 Spring 容器中获取 beans 呢?请向下看什么是 Spring Bean这是一个非常简单而又很复杂的...原创 2019-07-01 08:32:36 · 343 阅读 · 0 评论 -
双亲委派模型,类的加载机制,搞定大厂高频面试题
双亲委派模型,类的加载机制,搞定大厂高频面试题原创 2019-07-12 09:02:48 · 1293 阅读 · 0 评论 -
java中根据集合属性进行排序
正常情况下集合中封装的是某种类型的数据对象,那怎样对这个集合进行排序呢?下面来看看这一小段代码:Collections.sort(dsList, new Comparator() { public int compare(TestVO ds1,TestVO ds2) { return ds1.getName().compareTo(ds2.getName());原创 2013-12-27 10:22:04 · 3249 阅读 · 0 评论