java
文章平均质量分 68
_JenKin
这个作者很懒,什么都没留下…
展开
-
基于mybatisplus 的SQL拦截器实现关联查询
由于项目中经常会使用到一些简单地关联查询,但是mybatisplus还不支持关联查询,不过在看官方文档的时候发现了mybatisplus的SQL拦截器(其实也是mybatis的)就想着能不能在SQL执行的时候做一些处理以至于可以支持关联查询,于是就动手开始了,目前还只是一个初步的demo,但是一些基本的关联查询功能经过验证是没有问题的环境信息jdk: 1.8springboot: 2.3.4.RELEASEmybatisplus: 3.4.2lombok:1.18.12代码设计代码涉及四个关键原创 2021-06-02 15:12:04 · 1911 阅读 · 19 评论 -
Myers差分算法
本文参考了文章: 简析Myers在参考文章中我对Myers差分算法有了一定的理解,但是在代码实现的过程中还是会遇到很多问题,而作者对源码的解释比较少,因此我着重于对实现过程做一个分析。概述我把代码的实现分为了三个部分:绘制编辑图生成snake回溯snake绘制编辑图下图是原论文里面的编辑图,我们需要吧圈起来的点对应的保存下来,保存的方式类似下面的表格在这张表格里面表示了k线和步数d之间的关系具体的代码实现可以参考论文里面的伪代码 private static void my.原创 2021-05-28 20:47:39 · 793 阅读 · 0 评论 -
关于多线程相关知识的一个梳理
自己关于多线程知识的一个梳理,有很多地方可能不一定正确,还希望大家指出来原创 2021-03-02 17:39:02 · 106 阅读 · 0 评论 -
JAVA实现基于LCS(最长公共子序列)的文本比对
最近因为项目需求需要实现一个文本比对的功能,自然的就想到了git的文本比对功能,于是网上查阅了一些资料,看到了一个关键字(最长公共子序列),感觉又回到了大学刷题的时候了。最长公共子序列引用LeetCode第1143题的描述给定两个字符串 text1 和 text2,返回这两个字符串的最长公共子序列的长度。一个字符串的 子序列是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。 例如,“ace”是 “abcde” 的子序列,但原创 2020-07-24 16:59:44 · 822 阅读 · 2 评论 -
使用Kettle进行数据同步(增量)
文章目录kettle介绍kettle安装kettle使用使用kettle同步关系型数据库数据(MySQL示例)1. 创建一个转换2. 选择表输入3. 格式转换4. 执行脚本5. 创建job使用kettle同步NoSql数据(MongoDB示例)创建转换时的注意事项MongoDBInput怎么创建job的创建如何在Linux上面运行已经创建好的job?1、把创建好的job传输到Linux机器上面2、编辑kjb文件3、执行任务kettle介绍Kettle 是一款国外开源的 ETL 工具,纯 Java 编写原创 2020-06-11 09:44:30 · 6225 阅读 · 0 评论 -
Redis 的常见问题汇总
文章目录在项目中如何使用缓存的?缓存使用不当会有哪些后果?Redis都有哪些数据类型?使用场景是什么?Redis的线程模型是什么?为什么单线程还快?Redis的缓存过期了会立即删除吗?Redis内存满了Redis会怎么做?如何实现一个LRU算法如何保证Redis的高并发、高可用主从复制的原理是啥?哨兵机制的原理是啥?Redis的持久化机制有哪些?RDB和AOF的优缺点?Redis的集群工作原理是什...原创 2020-05-05 21:03:34 · 1592 阅读 · 1 评论 -
消息中间件常见问题汇总
什么是消息中间件?消息中间件是可以用来进行跨系统通信的一个软件,提供了可靠的异步通信机制。目前常见的消息中间件有哪些?目前常见的消息中间件有四种ActiveMQActiveMQ是Apache开源的一款使用java编写的基于JMS规范的消息中间件,不过目前官方的维护似乎变得特变少了RabbitMQRabbitMQ是一款开源的使用ERLang开发的基于AMQP协议的消息中间件,社区活跃...原创 2020-05-02 22:21:57 · 723 阅读 · 0 评论 -
JVM常见问题汇总
什么是JVM?jvm全称是java virtual Machine,是java跨平台特性的保障,java程序被编译成为字节码文件之后都会放到虚拟机上面来执行,同时还提供了对java程序的内存管理功能。那java虚拟机里面内存区域是怎么划分的?在java中,内存区域会被分为 堆,栈,方法区三个大块以及程序计数器,在堆里面又会分为 年轻代【Eden区,s0区,s1区】老年代,栈又被分为虚拟机栈和...原创 2020-05-02 16:25:53 · 884 阅读 · 0 评论 -
springboot中优雅的使用websocket通信(分布式)
关于什么是websocket以及为什么要使用websocket我这里就不去描述了,可以看一下知乎上的这个回答WebSocket是什么原理好,我们直接进入主题:在Springboot中优雅的使用websocket通信一、理解需求例如我们现在有一个需求:站内消息自动刷新1、消息是谁来发送?在我们的系统里面,每一个用户的某一些操作都会给对应的处理人发送消息。2、谁来处理消息?对应的处理人...原创 2019-09-19 11:04:31 · 5226 阅读 · 10 评论 -
利用注解+反射优雅的实现通用Excel导入导出
日常在做后台系统的时候会很频繁的遇到Excel导入导出的问题,正好这次在做一个后台系统,就想着写一个公用工具来进行Excel的导入导出。一般我们在导出的时候都是导出的前端表格,而前端表格同时也会对应的在后台有一个映射类。所以在写这个工具的时候我们先理一下我们需要实现的效果:导出方法接收一个list集合,和一个Class类型,和HttpServletResponse 对象导出是可能会有下拉...原创 2019-01-27 21:57:37 · 3174 阅读 · 0 评论 -
使用动态代理实现AOP
最近正在做一个薪酬核算系统,本来已经做好了,但又有需求说XXX,XXX。。。工资项在发钱的时候不能给15号不在公司的人发,当时一想,十几二十个工资项,我要是每一个都加上这样一个逻辑那我岂不得累死?当时的项目架构是一个父类下面有N个子类,N个子类对应着N个工资项,各个子类的实例都是通过工厂模式获取的。后来仔细意向,发现这个需求如果用Spring的AOP编程不就可以完美的解决了。我只需要给需要加上...原创 2018-12-29 15:14:59 · 1319 阅读 · 1 评论 -
java多线程的使用
实现多线程的方式最常用的有两种,一种是实现runnable接口,另一种是继承thread类。 这里讲一下第一种方式来实现多线程要想用多线程实现高并发则必须要有一个主线程。 具体步骤如下 1、新建主线程类 MainProcess 在主线程中有一个与子线程进行通信的同步锁,代码中的synchronize修饰符就是为了保证被该修饰符修饰的代码只会被UI个线程执行,在执行过程中其它的线程都会处...原创 2018-07-03 14:00:25 · 205 阅读 · 0 评论 -
Java集合框架面试问题集锦
Java集合框架面试问题集锦转载 2017-05-16 11:44:41 · 298 阅读 · 0 评论 -
Scoket网络编程客户端
package com.mysocket; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.InetAddr原创 2017-05-24 11:26:37 · 358 阅读 · 0 评论 -
java飞机大战游戏
这个飞机大战的游戏我采用的开发模式是工厂模式,首先有一个工厂类,专门负责产生我们所需要的对象,然后有一个实体包,里面对应的是项目中所需要的自定义类的实体文件,UI包里面是一个主控制类,负责我们整个游戏的业务逻辑控制以及界面的绘制,config包里面主要是我们所需要的一些工具类以及常量类 代码如下: config包:三个枚举类BulletType,dir,Gamestate,分别是子弹类型,方向控原创 2017-04-18 11:51:49 · 610 阅读 · 0 评论 -
简单的java俄罗斯方块
牙疼的实在是受不鸟了,本想着复习四级但是实在是静不下心来,于是就抱着电脑去了图书馆,听说专心做某一件事的时候牙就没那么疼了,于是就无聊做了个小游戏 。其实我想说,,敲得时候还是疼,但是玩的时候还真就没那么疼了。。。 代码如下: GameFrame类package com.work.game;import java.applet.AudioClip;import java.awt.Color;原创 2016-12-07 09:56:30 · 1470 阅读 · 2 评论