
Java
文章平均质量分 90
WormholeStack
All problems in computer science can be solved by another level of indirection.
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
你了解JDK SPI吗?
什么是JDK SPI 机制?SPI (Service Provider Interface) 是一种将服务接口与服务实现分离以达到解耦、大大提升了程序可扩展性的机制。引入服务提供者就是引入了spi接口的实现者,通过本地的注册发现获取到具体的实现类,轻松可插拔。当服务的提供者提供了一种接口的实现之后,需要在 Classpath 下的 META-INF/services/ 目录里创建一个以服务接口命名的文件,此文件记录了该 jar 包提供的服务接口的具体实现类。当某个应用引入了该 jar 包且需要使用该服务原创 2021-01-04 19:33:00 · 501 阅读 · 2 评论 -
你了解在Java中如何自定义注解嘛?
由一个小例子引出今天的课题:校验用户信息,后端对接收的对象的信息例如用户名和密码做一个指定的校验。代码如下:User类指定用户名和密码设定要求@Data@NoArgsConstructor@AllArgsConstructorpublic class User { /** * 用户名 不能为空 长度不能大于6 */ private String username; /** * 密码 不能为空 长度不能低于5 大于13 */原创 2020-12-16 21:14:57 · 434 阅读 · 0 评论 -
你真的了解String的创建吗?
起因在文章的开始之前,有一个问题需要思考。String s = "MRyan";String s = new String("MRyan");以上是String的两种赋值方式,它们有什么区别吗?它们在内存中有几个实例?存储在哪个区域里?实例存储在哪里?字面量存储在哪里?想要回答这些问题,需要对JVM有一定的了解狂补JVM基础知识都知道JVM的内存结构包括堆,虚拟机栈,方法区,程序计数器,本地方法栈。其中和本文章有关系的1. 堆:作为整个JVM内存结构中占用最大的一块空间,存放对象实例和原创 2020-07-29 17:23:01 · 2110 阅读 · 0 评论 -
请谈谈你对死锁的理解?
多线程和锁多线程和锁作为并发编程的两个重要概念,在提升了程序性能的同时,也带来了一些编码的复杂性。锁的出现就是为了保证在多线程的时候操作一组资源数据的一致性,我们在给资源加上锁之后,只有拥有了这个锁的线程才能操作此资源,其余的线程只能排队。举个例子:例如你去换衣间试衣服,你进去了把门锁上,那么在这期间谁都无法进入,等你开门出来,别人才能进入。什么是死锁死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状原创 2020-07-05 19:55:03 · 5399 阅读 · 1 评论 -
List如何在增加元素的同时删除元素
问题介绍List如何在增加元素的同时删除元素。这还不简单?直接上代码: List<String> lists = new ArrayList<>(); lists.add("MRyan"); lists.add("MRyan2"); lists.add("MRyan3"); for (String list : lists) { if (list.equals("MRyan")) {原创 2020-06-16 08:24:40 · 4639 阅读 · 2 评论 -
前端图片延迟懒加载 Echojs
这里我们用到Ecojs:专门用于实现懒加载。使用方法:1.引入:在HTML中引入jQuery和jQuery-lazyload,如:<script type="text/javascript" src="/js/echo.min.js"></script>2.图片中的src使用data-echo代替如:<img class="lazy" src="" data-echo="images/p1.jpg">3.添加js代码:初始化 echo.init({原创 2020-05-20 11:16:56 · 3025 阅读 · 0 评论 -
TreeMap如何按照Value进行排序
/** * 输出分词结果 和词频 */ private void printResult() { /**将TreeMap按照Value进行排序 最终结果词频高的在前*/ List<Map.Entry<String, Integer>> wordsList = new ArrayList<Map.Entry<String, Integer>>(wordsMa...原创 2020-07-01 21:46:01 · 2288 阅读 · 0 评论 -
远程连接服务器mysql数据库
登录服务器,登陆MySQL数据库命令如下:mysql -u root -p pwd;查询MySQL数据库是否允许远程ip访问,命令如下:use mysql;select host, user from user;查询结果为127.0.0.1或者localhost或者当前服务器域名,则表示不允许远程连接。开启远程访问操作。命令如下:GRANT ALL PRIVILEGES ON . TO ‘root’@’%'IDENTIFIED BY ‘*****’ WITH GRANT OPTIO..原创 2020-08-12 11:32:23 · 539 阅读 · 0 评论 -
span标签中实现换行
span{ word-break:normal; width:auto; display:block; white-space:pre-wrap; word-wrap : break-word ; overflow: hidden ;}white-space – 通过HTML文档的源代码的排版方式控制页面显示文本的排版方式 取值: normal | pre | nowrap | pre-wrap | pre-line | inherit原创 2020-05-22 09:58:20 · 4929 阅读 · 0 评论 -
Vue上传图片并实时回显
有注释,等有时间在详细写这篇文章<!DOCTYPE html><html lang="zh-cn"><head> <meta charset="UTF-8"> <title>添加图片</title> <style> #upload-tip { border: 1px dashed #d9d9d9; width: 135px;原创 2020-05-21 17:56:27 · 4350 阅读 · 0 评论 -
(直接使用)Java生成随机验证码工具类
验证码工具类: VerifyUtil.javaimport java.awt.*;import java.awt.image.BufferedImage;import java.util.HashMap;import java.util.Map;import java.util.Random;public class VerifyUtil { // 验证码字符集 private static final char[] CHARS = { '0', '1'原创 2020-05-21 17:53:39 · 876 阅读 · 0 评论 -
Circles轻量级Js圆形进度条插件
介绍:circles是一款基于HTML5 SVG的轻量级JavaScript圆形进度条插件。该圆形进度条具有响应式,可动画等特点,并且可以制作出圆形进度条进入视口才开始动画的效果。只有一个JS文件使用方法:1.导入circles.js或circles.min.js文件2.在HTML中创建一个占位符div:<div id="circles-1"></div>3.利用js调用Circles.create({ id: 'circles-1', radius原创 2020-05-20 11:18:34 · 1551 阅读 · 0 评论 -
Thymeleaf如何使用EchoJS
上文我们说了可以用EchoJS来实现懒加载,但是问题来了,图片数据都是由后端传参,前端循环遍历加载的,而Thymeleaf没有th:data-echo的属性,那如何实现懒加载呢呢?实现思路:利用th:attr自定义属性,通过jquery循环遍历每一个img来给对应的data-echo属性赋值。这个时候我们又遇到问题了,循环条件是什么,如何获取?循环条件当然是你当前页面所拥有的图片个数了。这里可以使用iterStat来获取:Html代码如下: <div th:each="gallery,原创 2020-05-20 11:17:31 · 3987 阅读 · 0 评论 -
Java特性---Collectors
最近在项目中用到了Collectors,用起来确实方便了不少,在这里记录一下。Collector是专门用来作为Stream的collect方法的参数的。是Java8的特性,Collectors是作为生产具体Collector的工具类。例1:直接上代码 List<String> lists = Arrays.asList("a", "b", "c", "d"); List<String> listsUpper = new ArrayList<>(); //J原创 2020-05-19 09:43:18 · 2999 阅读 · 0 评论 -
MyBatis 模糊搜索
Mybatis的模糊搜索语句如下 要用$来代替#才可以 否则取到null <select id="fun" resultType="int" parameterType="String"> select count(1) from d <where> <if test="name!=''"> name like '%${name}%'; </if>原创 2020-05-19 09:38:26 · 654 阅读 · 0 评论