- 博客(69)
- 收藏
- 关注
原创 Java stream流支持多字段排序
对于排序而言,比较常见的场景是前端传递所需的排序字段名和排序方向,然后通过stream流或者数据库来实现排序.为动态接收参数,继承Map来支持多字段传入.另外stream流原生的sorted写起来相对比较繁琐,通过compartor方法封装构建多字段排序的逻辑.具体就是通过反射拿到对应字段的值,然后利用Compartor的comparing和thenComparing完成多字段排序.
2024-08-08 00:19:29
339
原创 数据结构:队列之循环队列
背景循环队列出队和入队的均摊复杂度均为O(1)级别,性能比普通队列更高普通队列的入队复杂度为O(1),但出队复杂度为O(n),因为当出队时,后面的数组有个前移一位的过程.实现原理语言描述实现原理其实也比较简单,就是数组维护队首front和队尾tail索引.当出队时,无需移动数据位置.当入队时,到达数组底部后,通过取余回到数组前端.索引类似在一个数组环上移动,这也是循环一名的由来.当front和tail相同时,即代表队列为空.当tail的下一个为front时,即代表队列已满,需要扩容.代码实现
2022-05-16 01:20:22
1046
原创 Jackson反序列化问题: java.util.LinkedHashMap cannot be cast to xx
转化对象带泛型时,必须使用 new TypeReference进行包装正确写法正确写法 @RequestMapping("test2") public String test2() throws JsonProcessingException { ObjectMapper objectMapper = new ObjectMapper(); Result<Result<User>> result = objectMapper.readValue("{\n" +
2022-03-01 01:37:38
1185
5
原创 [2021]年度反思总结
年度总结值得表扬的点1 技术栈大大丰富activiti工作流引擎mongo db数据库redis各种数据结构深入使用shiro权限控制框架spring security框架xxl job定时框架quartz定时框架dubbosharding-jdbcCDNOSS2 熟悉了各种设计模式观察者模式适配器模式策略模式模板模式代理模式工厂模式单例模式原型模式建造者模式3 接触了多种语言python: 学习了pyqt的使用,flask框架简单应用
2022-02-13 01:49:15
164
原创 VS code配置Elint自动格式化插件prettier踩坑记录
根目录新增.prettierrc.js搜索扩展 Prettier - Code formatter并安装module.exports = { singleQuote: true, // 使用单引号 printWidth: 200, // 超过最大值换行 htmlWhitespaceSensitivity: 'ignore', semi: false, // 结尾不用分号}自动格式化Shift+Ctrl+P 搜索settings.json,然后添加如下内容{
2022-01-27 01:52:02
1505
原创 Centos7版本不能联网
cd /etc/sysconfig/network-scripts/编辑ifcfg-ens33文件的最后一行,将ONBOOT=no改为ONBOOT=yesservice network restart
2021-12-31 02:28:27
455
原创 git新手教程,本地新增项目并上传至码云指定仓库
1. 码云操作点击新建远程仓库填写仓库必须信息,注意不要勾选下面的选项熟练git操作之后,勾选了也没有关系,可以解决冲突或者强制推送.新手的话,最好不要勾选.仓库简介,里面包含了下一步的命令其实官方已经写的很详细了,我这里只是截图示范一下2. 本地操作如上所述,官方给的命令已经比较完整.下面给个实操的命令截图,当看到git status的结果为Your branch is up to date with 'origin/master'.说明本地仓库已经和远程仓库同步了,即操
2021-10-06 03:39:12
319
原创 Java构建树形菜单工具类,递归写法
树形菜单构建工具类(递归写法)1. 工具类源码模型定义,这里受Spring Security的UserService启发,给model设置接口.想要使用此工具类的话,实现此接口即可.package xyz.yq56.easytool.abs;import java.util.List;/** * @author yi qiang * @date 2021/10/5 14:35 */public interface TreeNode { /** * 获取id
2021-10-06 01:48:12
1526
2
原创 关于Springboot中跨域问题的解决(Response to preflight request doesn‘t pass access control check)
Springboot中跨域问题的解决等不及的小伙伴,直接跳到结论部分即可,谢谢!!!1. 背景1.1 使用技术栈Spring SecuritySpringbootVue.axiosJwt1.2 关键代码Spring Security实现了JWT验证配置类相关代码package xyz.yq56.sm.config;import org.springframework.beans.factory.annotation.Autowired;import org.springf
2021-10-06 01:21:06
4861
3
原创 代码编写过程中常遇到的坑,看完总会有所收获的
1 最常见的空指针异常1.1 初始化了空对象,但后来被篡改成了nullpublic void test(c){ //此处初始化了user对象 User user=new User(); //可能获取了null值,导致后续使用报空指针异常 user=userService.getById(userId); //特别注意,此处依然可能报空指针异常 user.getName();}1.2 连续多次获取属性public void test(String userId){ User
2021-08-04 01:46:39
1165
原创 利用JDK工具编写监听者模式代码
本文主要是利用java.util包里面的Observable和Observer来编写监听者模式的代码,仅仅是为了练手而已.以新华网发布新闻,然后新浪和百度作为监听者跟随播报新闻为例,下面贴一下代码和类图1 代码示例1.1 Subject:被监听者只要继承Observable即可,无需其他操作package observer.practice_02;import java.util.Observable;/** * @author yi qiang * @date 2021/6/17
2021-06-17 01:16:09
141
原创 Integer源码解析
1. 示例代码接下来,以一段代码来解释Integer的装箱与拆箱public class IntegerTest { public static void main(String[] args) { //装箱 Integer obj=1; //拆箱 int result=obj*2; //不在-128~127之间,结果为false Integer a=200; Integer b=200; System
2021-06-16 22:52:08
538
原创 面试实录: 6月份中级Java开发面试题
0. 前言以下面试题全为实际遇到的面试题,坐标广州,定位中级Java开发,匹配薪资在12K~14K.各位小伙伴可以看看自己的水平如何,是否可以拿稳这个薪资.1. Java 基础虽然是基础,但是平时一直在面向框架编程,基础也不一定记得那么牢靠,面试前也好好复习一下吧.Java有几种基本数据类型,各占多少个字节,其取值范围如何?JDBC连接过程?谈谈你对Java集合类的理解,常用的有哪些?谈谈HashMap底层原理?为什么用红黑树?谈谈ConcurrentHashMap底层原理,靠什么保证线程
2021-06-12 08:50:51
409
原创 Lniux校正时间
Debian系统安装NTP校时包:apt-get install ntpdateCentOS系统安装NTP校时包: yum install ntp校时命令: ntpdate cn.pool.ntp.org定时校正00 12 * * * /sbin/ntpdate cn.pool.ntp.org
2021-05-21 10:46:44
101
原创 设计模式概述(复习)--持续更新
1 设计模式7大原则1.1 单一职责原则1.1.1 含义降低类的复杂度,一个类只负责一项职责降低代码更改的影响提供可读性、可维护性通常都需要遵守单一职责原则,逻辑足够简单才可以违反;只有类中方法比较少,可以在方法级别遵守单一职责原则1.2 开闭原则1.3 迪米特原则1.4 接口隔离原则客户端不应该依赖它不需要的接口,即一个类对另一个类的依赖应该建立在最小的接口上.示例:如果C依赖1~3方法,而A依赖1、4、5方法,那么依赖关系应该从图1改为图21.5 依赖转置原则高层
2021-05-03 01:28:24
129
原创 建造者模式写法
使用如下写法相对比较简洁,仅供参考package design.builder;/** * @author yi qiang * @date 2021/4/24 0:55 */public class Shop { private String name; private String size; public String getName() { return name; } public void setName(Stri
2021-04-24 01:18:23
163
原创 OpenFeign入门级使用
1 OpenFeign使用步骤引入OpenFeign依赖 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency>启动类上增加注解@EnableFei
2021-04-04 22:00:31
350
原创 Nacos入门级别使用:注册中心和配置中心
1 Nacos下载从Nacos下载地址下载到本地,选择zip即可2 Nacos服务端启动步骤配置JAVA_HOME,如下图修改nacos下conf里面application.properties里面的数据库url等改成类似下图即可,具体就是db.num执行nacos-mysql.sql,初始化数据库修改startup.cmd,将集群模式改为单机模式点击startup.cmd即可启动,访问日志中打印的nacos管理网址即可3 客户端使用引入nacos客户端依赖以及父工程依赖
2021-04-04 20:29:36
295
原创 新建Maven项目之后,执行编译报错: Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:comp
1 报错背景及描述1.1 报错背景使用IDEA生成了springboot项目maven指定了编译jdk版本为1.8执行clean命令正常,而complie就失败报错信息如下:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project gulimall.product: Fatal error compiling2 原因及解决办法
2021-04-03 15:15:28
1615
原创 git实操日志
一些操作实验的记录,哈哈哈## 拉取远程仓库代码:可以认为就是一个下载命令,将服务器上面的代码下载到remote22477@yq MINGW64 /d/IDEA PROJECT/study_note (test)$ git fetch## 查看分支:可以看到目前只有三个分支,并且当前是处于test分支上面22477@yq MINGW64 /d/IDEA PROJECT/study_note (test)$ git branch dev master* test## 切换分支: 从
2021-04-01 00:56:33
238
原创 CSS实现鼠标悬停遮罩效果
<html xmlns="http://www.w3.org/1999/xhtml"><head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, minimum-scale=1.0, maximum-scale=1.0"> <title>Bootstrap鼠标悬停图片遮罩特效</title> <
2021-03-22 12:42:10
648
原创 Syntax Error: TypeError: this.getOptions is not a function
ERROR Failed to compile with 1 error 2:02:14 ├F10: AM┤ error in ./src/components/login.vue?vue&type=style&index=0&id=10d9df09&lang=less&scoped=true& Syntax Error: TypeError: this.getOptions is not a function @ ./node_m.
2021-03-04 02:21:41
642
2
原创 JavaSE:关于File输入输出流的一些思考
示例代码以下主要展示了以下几种写法:一次一个字节读取一次一个字节数组读取字符串写入文件文件内容写入字符串我相信新手对于第一种写法和第二种写法经常混淆,第一种的int其实质就是读取的字节内容,而第二种int代表的是读取内容的字节数量虽然写法十分相近,但是int的意义是完全不一样的。package demo.xyz.yq56.se.io;import java.io.FileInputStream;import java.io.FileOutputStream;import ja
2021-02-25 01:48:04
93
2
原创 Feign调用上传文件接口代码示例
Feign调用上传文件接口代码示例如下,特别注意consumes = MediaType.MULTIPART_FORM_DATA_VALUE/** * @author Yi Qiang * @version 1.0.0 * @date 2021/2/20 14:08 */@FeignClient(name = ServiceName.VI_HUAWEI_VCM_SERVICE)public interface HuaweiVcmClient { /** * files 待上传
2021-02-23 13:04:24
719
原创 Maven下载sources时报错java.lang.RuntimeException: Cannot reconnect
1 报错信息大致报错背景如下:可以正常导入和更新依赖maven更改过阿里镜像下载sources会报错,具体堆栈信息如下java.lang.RuntimeException: Cannot reconnect. at org.jetbrains.idea.maven.server.RemoteObjectWrapper.perform(RemoteObjectWrapper.java:82) at org.jetbrains.idea.maven.server.MavenEmbedderWr
2021-02-17 13:27:18
5079
10
转载 解决报错:sql_mode=only_full_group_by
简单介绍一下你自己请谈谈你做过的最有水平的项目对微服务的理解,优缺点各是什么?项目中用到SpringCloud哪些组件?他们分别有什么作用?手写单例模式-双重校验锁nginx配置:负载均衡、限流和server块条目数据库删除相关关键字:drop、delete和truncate区别?map、set和list区别,哪些允许重复?哪些允许插入null值?map用过哪些?HashMap从jdk 1.7到 jdk 1.8有哪些改变?查看端口占用的命令是什么?Spring Security相关,权.
2021-02-08 20:04:39
477
1
原创 Postgresql报错及解决方案:Bad value for type int / DataIntegrityVoilationException
1 报错信息org.postgresql.util.PSQLException:Bad value for type int 2 错误原因实体类属性定义为Integer,但数据库该字段类型为varchar3 触发机制本人所遇到的情况为:如果该数据库该字段为null时,进行查询操作会触发该报错.如果数据库该字段刚好有数字字符,则不会触发4 解决方案将该字段属性改为String即可解决问题...
2020-12-05 00:50:00
7985
原创 PostgreSQL插入数据时提示主键为空?那是因为没设置自增主键
1 背景当我使用Mybatis Plus插入数据时,发现一直报主键那个字段为空.于是我检查了实体类,发现@TableId(type = IdType.AUTO)已经添加过了.经排查,发现是pg数据表未给主键设置自增序列.2 步骤创建序列:CREATE SEQUENCE xx_id_seq START 1;给主键设置默认值:nextval(' upms_log_id_seq');...
2020-11-22 23:07:37
3085
原创 第三方接口对接规范
如果项目是属于那种集成项目,那么对接各种第三方平台在所难免。根据亲身经历,暂定如下对接规范。1 自定义异常针对第三方的异常,大致可以分为第三方内部异常、第三方传入参数异常、自身调用异常、登录异常。第三方内部异常:按接口文档正确录入参数,但第三方平台未返回预想结果第三方传入参数异常:主要是说自身参数未校验完全,第三方抛出的参数建议,比如图片模糊自身调用异常:本身在调用第三方接口时出现超时等异常,可以归于第三方内部异常登录异常:其实可以归于内部异常,但为了保活方便,建议单独定义异常2 常用请求
2020-11-13 17:21:19
5012
1
原创 Mybatis Plus 中@TableField使用正解
1 研究背景和过程妹纸开发突然发现@TableField失效了,在群里发问。一了解,发现妹纸本意是想用@TabkeField达到类似@JsonProperty的功能。也就是当实体类属性名与数据库列名不一致时,通过此注解实现别名效果。奇怪的是,这注解一部分成功,一部分失效。具体表现就是有时候可以取到值,有时候又取不到。我点进改注解源码,发现它给value设定的本意是:当驼峰转化未开启时,使用此注解实现驼峰转化。然而,我实际测试表明它其实没这功能。我信誓旦旦跟妹纸讲,@TableField没有别名的功能。
2020-11-05 20:09:26
5802
5
原创 分享一个比较好用的图片url转base64工具类
话不多说,见代码@Slf4jpublic class ImageUtil { private ImageUtil() {} //第一种:常规的方法转化图片稳定,一般不会出现变色等问题,但是此方法不支持https链接 private static byte[] read2Array(URL url) throws IOException { HttpURLConnection conn = (HttpURLConnection) url.openConnection
2020-10-30 01:40:53
591
原创 性能提高:循环中使用map匹配,而不是使用内层循环
1. 测试代码package xyz.yq56;import java.awt.event.ItemEvent;import java.util.ArrayList;import java.util.List;import java.util.Map;import java.util.stream.Collectors;import javax.naming.InitialContext;public class MapOpt { public MapOpt() { }
2020-10-19 23:21:50
164
1
原创 Kafka安裝以及基本使用,新手友好
Kafka的基本使用1. kafka安裝1.1 安装命令1.2 参数说明1.3 注意事项2. Kafka基本概念3. Kafka消费3.1 简单消费写法3.1.1 配置消费者3.1.2 具体消费1. kafka安裝对于后端开发而已,不宜在环境安装方面耗费宝贵的精力。相对于tar包安装等方式,docker安装省时省力。下面主要介绍,如何使用docker安装kafka。1.1 安装命令事实上,仅需如下两条命令即可完成kafka安装。zookeeper安装:docker run -d --restar
2020-10-19 00:54:52
228
转载 虚拟机桥接模式
配置步骤虚拟机选择桥接模式查看本机网卡IP,网关,DNS进入cd /etc/sysconfig/network-scripts,并修改网卡配置vim ipcfg-eth0新增IP,GATEWAY和DNS1,修改启动开启,并设置为静态IP重启网卡:service network restart,尝试ping一下百度图片参考以下链接:虚拟机桥接配置...
2020-10-17 02:24:52
127
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人