
Java
文章平均质量分 62
夏洛克卷
宽恕过去,保守现在及未来
展开
-
结合函数式接口 Supplier 使用熔断器 Hystrix
采用继承 HystrixCommand 类进行使用,可以结合函数式接口 Supplier 进行更解耦的实现,对业务的侵入小,并且代码的相互依赖低原创 2022-12-07 11:07:31 · 321 阅读 · 1 评论 -
字符串相似及匹配 Jaro-Winkler
用普通的相等判断,只能得到是或否,但如果你在实际的业务需求中,有需要用到两个字符串的相似程度,做进一步的逻辑判断,那么在 Java 的轮子里,我推荐你使用 java-string-similarity原创 2022-12-07 11:05:24 · 4047 阅读 · 0 评论 -
Jrebel 教程:热部署插件提高代码调试效率
前言本文旨在提供一个方法,在 IDEA 下,使用热部署插件 JRebel ,解决代码调试过程中,编辑打包重启所占用的无意义时间中大型项目的代码调试往往面临一个问题,只是简单的一两行代码修改,需要进行整个项目的重新编辑打包。而本地机器的性能,导致这种简单的代码修改,从发现问题到问题解决,往往需要以分钟计算的时间作为懒癌晚期患者,对于这种情况实在是无法容忍,这使得效率低下,浪费时间因此,我找到了一个热部署插件 JRebel ,可快速实现热部署,节省大量重启时间,解决项目的编辑打包所占用的无意义时间配置原创 2022-01-05 16:23:24 · 1968 阅读 · 0 评论 -
2020.05 我的三年 Java 面经
要是你过了很久,从哪里又划拉出这篇文章,建议不要打开,浪费时间原创 2020-07-28 22:49:19 · 1670 阅读 · 3 评论 -
Hibernate 的级联更新
Hibernate 的实体更新,让我在开发的过程中,感受到了省心和劳心。原创 2019-11-21 22:30:55 · 1249 阅读 · 1 评论 -
Spring Data JPA 与 MyBatis 的一些心得
之前一直使用 MyBatis ,习惯了自己写增删改查的 SQL 。在入职新公司后,公司是用的是 Spring Data JPA ,半年过去了,由于公司本身是互联网行业,开发和迭代快速,比较深刻的体会到了 Spring Data JPA 和 MyBatis 的优缺点。原创 2019-10-28 18:49:29 · 1348 阅读 · 1 评论 -
SpringMVC 之一:SpringMVC 图解
网上找了很多相关的文章进行阅读,发现还是有个总纲比较好,我做了一个 SpringMVC 流程图,接下来专栏的更新主要会围绕这个流程图来一步步进行解析。原创 2018-07-07 17:09:19 · 574 阅读 · 0 评论 -
Spring——使用 @Scheduled 注解实现定时任务
有关 Spring 框架使用 @Scheduled 注解实现定时任务调度的文章很多,但是大都不许转载,那我想,写吧。原创 2018-09-29 14:40:34 · 790 阅读 · 0 评论 -
Shiro 之 HashedCredentialsMatcher 认证匹配
Shiro 提供了用于加密密码和验证密码服务的 CredentialsMatcher 接口,而 HashedCredentialsMatcher 正是 CredentialsMatcher 的一个实现类。写项目的话,总归会用到用户密码的非对称加密,目前主流的非对称加密方式是 MD5 ,以及在 MD5 上的加盐处理。而 HashedCredentialsMatcher 也允许我们指定自己的算法和盐。本文介绍 HashedCredentialsMatcher 的使用,以及对相关源码的进行解析,加密方面知识略。原创 2018-11-21 16:38:08 · 19542 阅读 · 3 评论 -
Debug 的一点思路
这是一篇笔记向的记录文章,希望能对读者也有所帮助。现在经验正热乎,所以快速记录下来。我在构建 HTTP 报文时,使用了成熟的第三方库 OKHTTP。由于这是从同事接手过来的项目,我不甚了解;而且是个老项目,未使用项目化工具,例如 Maven 进行构建。而且极其吊诡的是这个 bug 居然无迹可寻,代码运行至此,既未有异常抛出(有做异常控制),也未继续运行下一行。我在这个 bug 上用了我无数的思路,侥幸解决了。原创 2018-12-12 16:44:41 · 816 阅读 · 0 评论 -
《Java 并发编程的艺术》第四章笔记
《Java 并发编程的艺术》第四章笔记原创 2019-02-18 14:51:47 · 228 阅读 · 0 评论 -
Shiro 中的 Realm
之前写项目用了 Shiro 框架,来进行安全验证以及权限管理。当时项目赶得急,没怎么深入了解,只能说能跑能改,不过在使用的过程中发现 Shiro 确实很优秀。现在回过头来学习原理,读读源码,深入的学习下。·本篇博文主要写的是关于使用 Shiro 起步时最重要的一块,找了一些资料,力求写得简单明了。原创 2018-05-29 23:26:11 · 21098 阅读 · 15 评论 -
SpringMVC 400 Bad Request 问题
转自:http://m635674608.iteye.com/blog/2231970 作者:m635674608转载 2018-04-03 22:08:15 · 756 阅读 · 0 评论 -
Spring+MyBatis多数据源配置实现
在开发项目时,有多数据源的需求。在网上查阅资料后,实现了。由于本人经验不足,且需求本身要求不高,所以采用手动控制,非自动切换。原创 2018-03-02 09:49:39 · 437 阅读 · 0 评论 -
SpringMVC 单个文件上传及调用
SpringMVC 在实际使用中很容易碰到文件上传服务器及调用服务器文件的需求,我在开发项目的时候也碰到了这个问题。我将以 JPG 格式的图片为例来介绍这两个功能的实现。文件的上传1.form 标签的设置 首先,要更该 form 标签的属性(重点是 enctype 与 method 需如代码所示。):form action="" enctype="multipart/form-d原创 2018-01-09 21:58:55 · 402 阅读 · 0 评论 -
SpringMVC 之 @ResponseBody 和 @RequestBody
前后端进行数据交互的时候,规定数据交互的格式,使数据交互规范而统一,是极为重要的事。一般而言,我们会采用 JSON 进行数据交互。本文暂不讨论如何 JSON 的格式规范,而是解析一下如何在 SpringMVC 中方便快捷的使用 JSON 进行数据交互。那就是使用两大注解: @ResponseBody 和 @RequestBody 。pom.xml我采用 Maven 来管理构建项目,要使原创 2018-01-15 16:32:05 · 3846 阅读 · 0 评论 -
Java 之 removeAll
在处理归并不同集合时去除其重复元素的时候没有什么好的方法,本来打算手撸一个去处重复元素的函数,但是想起集合类里肯定有解决这一问题的方法,就去查了一下 API ,还真有,那就是使用 removeAll() 。boolean removeAll(Collection> c) 从列表中移除指定 collection 中包含的其所有元素(可选操作)。直接用一个简单的例子来讲一下如何使用原创 2018-01-14 15:03:00 · 4814 阅读 · 1 评论 -
MyBatis 实体类属性与表字段不一致
因为数据库一般设置为表的字段不区分大小写,所以数据库中表的字段通常是以 _ 来进行词组划分的,而 JAVA 是区分大小写的,可以采用驼峰标识来进行词组划分。由于实体类属性与表字段不一致,在这种情况下会造成 Mybatis 映射失败原创 2018-01-13 13:10:20 · 2813 阅读 · 0 评论 -
浅谈偏向锁、轻量级锁、重量级锁
写得很好的一篇关于 Java 中锁的文章,借花献佛。转载 2018-12-19 22:29:19 · 305 阅读 · 0 评论 -
从 DCL(双重检查锁定)谈 volatile 禁止指令重排序
最近在看《Java并发编程的艺术》,看到双重检查锁定里谈到用 volatile 来解决创建对象时,指令重排序的问题,想了解清楚为什么 volatile 可以禁止指令重排序,结果得到了出乎意料的答案。原创 2019-01-22 10:03:20 · 1603 阅读 · 5 评论 -
《Java 并发编程的艺术》第十一章笔记
《Java 并发编程的艺术》第十一章笔记原创 2019-04-01 00:03:58 · 262 阅读 · 0 评论 -
《Java 并发编程的艺术》第十章笔记
《Java 并发编程的艺术》第十章笔记原创 2019-04-01 00:03:08 · 251 阅读 · 0 评论 -
《Java 并发编程的艺术》第九章笔记
《Java 并发编程的艺术》第九章笔记原创 2019-04-01 00:02:01 · 252 阅读 · 0 评论 -
《Java 并发编程的艺术》第八章笔记
《Java 并发编程的艺术》第八章笔记原创 2019-04-01 00:01:06 · 258 阅读 · 0 评论 -
《Java 并发编程的艺术》第七章笔记
《Java 并发编程的艺术》第七章笔记原创 2019-03-31 23:59:29 · 314 阅读 · 0 评论 -
《Java 并发编程的艺术》第二章笔记
《Java 并发编程的艺术》第二章笔记原创 2019-02-14 15:13:56 · 311 阅读 · 0 评论 -
《Java 并发编程的艺术》第一章笔记
《Java 并发编程的艺术》第一章笔记原创 2019-02-14 15:11:51 · 307 阅读 · 0 评论 -
《Java 并发编程的艺术》第六章笔记
《Java 并发编程的艺术》第六章笔记原创 2019-02-24 23:12:12 · 292 阅读 · 0 评论 -
《Java 并发编程的艺术》第五章笔记
《Java 并发编程的艺术》第五章笔记原创 2019-02-24 23:11:13 · 276 阅读 · 0 评论 -
《Java 并发编程的艺术》第三章笔记
《Java 并发编程的艺术》第三章笔记原创 2019-02-18 14:49:13 · 240 阅读 · 0 评论 -
Java并发编程 之 同步队列与等待队列
看到队列的相互转换,翻到一篇图解很清楚的文章,推荐。转载 2019-02-06 16:18:41 · 7722 阅读 · 2 评论 -
C3P0 参数配置
我所使用的 SSM 框架自动整合了 C3P0 连接池,但是怎奈对 C3P0 不大熟悉,绕了不少圈子,在这里把自己的经验分享一下原创 2018-01-10 22:19:51 · 768 阅读 · 1 评论 -
Mybatis 浅析
看来我们想通过最深刻的学习与思考,来提供最简单的工具与方法。越是简单,越需要我们细细去看。原创 2017-10-04 17:26:39 · 576 阅读 · 0 评论 -
Java之Chat历程
0.1版:用java.awt画了ChatClien的一个窗口。0.2版:在ChatClient的窗口内加上了俩文字框准备用来显示输入和显示文字。0.3版:给ChatClient的窗口加了WindowListener来关闭窗口。0.4版:ChatClient的窗口可以获取输入字符串并响应回车来刷新文字输入框(加入ActionListener)。0.5版:写了ChatServer,有响原创 2016-09-18 16:59:25 · 1619 阅读 · 0 评论 -
Java之日期处理
Agenda: 1 What is UTC / UT? 2 What is GMT? 3 How to get thecurrent time? 4 How to format it? 5 How to convert astring to a date / time? 6 How to process thedate / time wi原创 2016-11-03 21:33:06 · 891 阅读 · 0 评论 -
Java之匿名内部类
匿名内部类的创建:new 父类构造器(参数列表)|实现接口() { //匿名内部类的类体部分 } 匿名内部类也就是没有名字的内部类,正因为没有名字,所以匿名内部类只能使用一次,它通常用来简化代码编写。它的整个类短小,因此在使用它时多用在不涉及将来的拓展、不涉及重要的业务逻辑。 在使用匿名内部类的过程中,我们需要原创 2016-09-22 16:04:17 · 955 阅读 · 0 评论 -
Java之双缓冲技术
双缓冲技术是为了处理对于屏幕闪烁而总结的。 那么为什么出现闪烁? 这是由于组件的重绘会调用update方法,然后由update调用paint方法,由于update的原代码如下:public void update(Graphics g) { if (isShowing()) { if (! (peer instanceof LightweightP原创 2016-09-23 16:31:55 · 1234 阅读 · 0 评论 -
Java之setColor()
在网上查了半天有关setColor()的疑惑,即为什么setColor()在反复运用时能设置不同的组件的颜色,看了下网上,有朋友和我有一样的疑问,但没有答案。。。查了下API文档:setColorpublic abstract void setColor(Color c)将此图形上下文的当前颜色设置为指定颜色。使用此图形上下文的所有后续图形操作均使用这个指定的颜色。参数:c - 新的呈现颜色。原创 2016-09-22 16:48:14 · 12192 阅读 · 0 评论 -
Java之Iterator接口
一、所有实现了Collection接口的容器类都有一个Iterator方法用以返回一个实现了Iterator接口的对象。二、Iterator对象称作迭代器,用以方便的实现对容器内元素的遍历操作。三、Iterator接口定义了如下方法:1.hasnext();\\检查序列中是否还有元素。2.next(); \\获得序列中的下一个元素。3.remove();\\将上一次原创 2016-09-19 16:09:28 · 978 阅读 · 0 评论 -
Java之静态方法中的内部类
静态方法中不能直接创建内部类,为什么呢?在外部调用静态方法时,可以使用"类名.方法名"的方式,也可以使用"对象名.方法名"的方式。而实例方法只有后面这种方式。也就是说,调用静态方法可以无需创建对象。 静态方法在访问本类的成员时,只允许访问静态成员(即静态成员变量和静态方法),而不允许访问实例成员变量和实例方法。在静态方法中,当尝试直接去 new一个内部类(没有先 new 该原创 2016-09-18 16:38:17 · 1707 阅读 · 0 评论