java
阳光不锈@
没有爱
展开
-
mybatis-plus逆向自动生成代码总结记录
mybatis-plus逆向自动生成代码原创 2024-03-01 15:41:31 · 769 阅读 · 0 评论 -
软件开发技术的第一性原理
技术的第一性原理理解原创 2023-11-06 14:25:38 · 232 阅读 · 0 评论 -
简单版的数组实现哈希表
【代码】简单版的数组实现哈希表。原创 2023-08-23 12:22:01 · 245 阅读 · 0 评论 -
java实现调用百度ai开放平台图像识别接口
Java实现调用第三方接口;调用百度图像识别接口;完整代码展示原创 2023-04-10 18:07:46 · 1302 阅读 · 2 评论 -
springboot实现验证码生成及验证功能
springboot实现验证码生成及验证功能;一般做法是在后端生成验证码后,首先对当前生成的验证码内容进行保存,可以选择保存在session中,redis缓存中,或者保存在数据库中。然后返回验证码图片并显示到前端页面。用户在输入验证码后,并向后端发出验证请求后,后端接到请求后会对用户输入的验证码进行验证。原创 2022-12-27 23:51:36 · 2246 阅读 · 1 评论 -
Json字符串和实体对象相互转换工具类
Json字符串和实体对象相互转换工具类;json转换成对象;对象转换为JSON字符串原创 2022-12-27 23:18:34 · 633 阅读 · 0 评论 -
解决PageHelper版本不匹配,结果可能全部返回问题
解决PageHelper版本不匹配,结果可能出现全部返回问题。使用 pagehelper ,如果和mybatis版本不匹配,就会出现返回结果错误问题,比如:本来想返回pageNum:1,pageSize:1的数据,但却是全部返回。自己的代码没问题的情况下,最有可能的就是版本不匹配的问题。原创 2022-12-22 22:05:42 · 1580 阅读 · 0 评论 -
商品秒杀面试题总结
秒杀面试题原创 2022-10-19 13:28:02 · 2165 阅读 · 0 评论 -
springboot简单实现redis商品秒杀功能,成功解决商品超售问题
redis成功实现商品秒杀,避免出现超卖现象原创 2022-10-19 12:39:16 · 1481 阅读 · 0 评论 -
Failed to compile. Node Sass does not yet support your current environment: Windows 64-bit with Unsu
Failed to compile. Node Sass does not yet support your current environment: Windows 64-bit with Unsu原创 2022-09-16 16:45:14 · 280 阅读 · 0 评论 -
Springboot整合Shiro+JWT实现认证授权
Springboot整合Shiro+JWT实现用户登录认证和权限授权原创 2022-09-02 12:20:52 · 2286 阅读 · 1 评论 -
Springboot处理实体类参数校验异常
1.实体类校验package com.imooc.mall.model.request;import javax.validation.constraints.Max;import javax.validation.constraints.NotNull;import javax.validation.constraints.Size;/** * 商品目录添加请求类 */public class AddCategoryReq { @NotNull(message = "nam原创 2022-05-16 15:50:40 · 898 阅读 · 1 评论 -
springboot使用log4j2
问题:为什么要使用log4j2作为我们的日志记录管理框架呢?答:springboot默认使用logback作为日志记录框架,常见的日志记录框架有log4j、logback、log4j2。我们在项目中经常使用一个叫SLF4J的依赖,它是做什么的呢?slf4j是对所有日志框架制定的一种规范、标准、接口,并不是一个框架的具体的实现,它的接口并不能独立使用,需要和具体的日志框架实现配合使用(如log4j、logback、log4j2)。所有我们常把slf4j称之为“门面”,因为它只是个标准,原创 2022-05-14 22:16:43 · 9936 阅读 · 1 评论 -
gitLab旧仓库搬迁新仓库方法
1.如果你想把gitLab旧仓库的代码、日志等全部信息搬迁到新gitLab仓库中,可以使用以下命令进行操作:git clone --mirror <老仓库的git地址>cd <克隆下来的项目目录>git remote set-url origin <新的git项目的地址>git push -f origin2.具体操作步骤:(1)打开git软件,然后进行如下命令,这个命令是旧仓库的http地址:(2)然后加载到这个新克隆的文件中:原创 2022-04-26 16:31:49 · 2829 阅读 · 1 评论 -
实现 ApplicationContextAware 接口,获取所有bean对象和属性值
0.问题背景web程序中,通常用spring来管理所有实例(bean), 有时在程序中为了使用已被实例化的bean, 通常会用到这样的代码:ApplicationContext appContext = new ClassPathXmlApplicationContext("applicationContext-common.xml"); AbcService abcService = (AbcService)appContext.getBean("abcService"); 但是这样原创 2022-04-19 14:35:12 · 1487 阅读 · 0 评论 -
将返回的page信息转化为map
package com.dgindusoft.spc.util;import com.github.pagehelper.PageInfo;import java.util.HashMap;import java.util.Map;/** * 将返回的page信息生成Map * * */public class PageMapUtil { public static Map<String, Object> ChangePageDataToMap(PageInf.原创 2022-04-19 14:36:28 · 899 阅读 · 0 评论 -
本地项目上传公司GitLab步骤
1.在公司gitlab新建一个项目:2.此时项目是空的,现在在本地d盘或者e盘新建一个空文件夹:3.前提是安装了git,在新建文件夹右击git bush here:4.然后在命令行输入 git clone url 克隆gitlab的项目在本地。url地址就是你在gitlab上新建项目的地址(http):5.进入新生成的目录,把要上传的文件复制进该目录下面,命令行进入该目录cd ...加载进入这个目录6.在“ Git Bash Here”git命令窗口输入命令:g...原创 2022-04-15 11:30:41 · 6562 阅读 · 0 评论 -
java前端编译和后端编译理解
导读:1.前端编译java前端编译是指:通过javac编译器(JDK的bin文件)把*.java文件转换为*.class文件的过程。优点:许多Java语法新特性("语法糖":泛型、内部类等等),是靠前端编译器实现的,而不是依赖虚拟机;编译成的Class文件可以直接给JVM解释器解释执行,省去编译时间,加快启动速度;缺点:对代码运行效率几乎没有任何优化措施;解释执行效率较低,所以需要结合下面的JIT编译;前端编译器:Oracle ja...原创 2022-03-27 15:02:26 · 2349 阅读 · 0 评论 -
for-each循环深入解读(笔记记录)
for-each循环使用迭代器迭代,会产生一个迭代器对象,因此嵌套循环的内层循环最好避免使用for-each循环,否则会产生太多的中间对象。原创 2022-03-26 16:24:49 · 634 阅读 · 0 评论 -
时间、空间复杂度分析是多此一举吗?
问题:有人说,我们的项目都会进行性能测试,如果再做代码的时间复杂度分析、空间复杂度分析,那么是不是多此一举呢?而且,每段代码都分析一下时间复杂度、空间复杂度,是不是很浪费时间?读者怎么看待这个问题呢?答:问题和答案来自王争《数据结构和算法之美》一书。...原创 2022-03-09 13:55:07 · 350 阅读 · 0 评论 -
Java实现散列表
java实现自定义哈希表 - 程序员小宇 - 博客园转载 2022-03-08 15:20:01 · 220 阅读 · 0 评论 -
散列表、散列函数和散列冲突以及应用场景(一文看懂)
1.什么是散列表?散列表(HashTable,也叫哈希表):由数组扩展而来,是根据键(Key)直接访问在内存存储位置的数据结构。实现原理是:通过散列函数(也叫哈希函数)将元素的键(key)映射为数组下标(转化后的值叫做散列值或哈希值),然后在对应下标位置存储记录值(value)。当我们按照键值查询元素时,就是用同样的散列函数,将键值转化数组下标,从对应的数组下标的位置取数据.图示:2.什么是散列函数?2.1概念解释散列函数其实就是一个数学算法,把...原创 2022-03-08 13:45:43 · 3069 阅读 · 0 评论 -
二分查找以及时间、空间复杂度
package com.wei.demo.Annotation;/** * 二分查找算法Java:循环方法和递归方法 * 思想:我们查找的数组范围是low(0)~high(len-1)。每次查找中间的元素,我们猜测的数字是guess=(low+high)/2; * 实际数字为item,如果猜测数字guess小于item,那范围变为:guess+1~high,low=guess+1位置开始; * 如果猜测数字guess大于item,那就范围变为low~guess-1 * 数组:必须是有序的 .原创 2022-03-07 11:40:25 · 6204 阅读 · 1 评论 -
数据集匹配算法(Java)
学习记录来自:能解决一切答案 bravo1988 - 知乎博主(可购买其小册)这个算法能解决什么问题呢?它主要处理两个数据集合的匹配问题。比如,现在有两个数据集合:public class Demo { public static void main(String[] args) { // 老公组 List<Couple> husbands = new ArrayList<>(); husbands.add(n原创 2022-03-02 16:12:50 · 2210 阅读 · 1 评论 -
Java反射的基本理解
1.什么是反射?我记得网上有个关于反射很通俗的解释:java是个大美女,但大美女有很多事情是规定不让你做的.反射就是把枪,有枪在手,你想让大美女做什么事就做什么事,脱光了都没问题.正常的解释:Java的反射是指程序在运行期可以拿到一个对象的所有信息。是一种动态获取对象信息以及动态调用对象的方法。最常见的场景就是在动态代理。而动态代理应用最广的地方就是各种框架,比如:Spring。2.反射的内容和应用2.1 class对象反射必定离不开 Class 对象。都知道,代码编写完后是要编译成原创 2022-03-02 15:41:40 · 1640 阅读 · 0 评论 -
服务器CPU占用率高,如何排查?
1.定位进程登录服务器,执行top命令,查看CPU占用情况:$top2.定位线程如果进程23456占用率高:$top -Hp23456 进行定位线程3.定位代码通过top命令,我们目前已经定位到导致CPU使用率较高的具体线程,比如线程4519, 那么我么接下来就定位下到底是哪一行代码存在问题。首先,我们需要把具体的线程转成16进制:$printf %x451911a7接下来,通过jstack命令,查看栈信息:$sudo -u admin jstack23456原创 2022-03-02 10:23:08 · 3541 阅读 · 0 评论 -
spring是什么?aop底层原理如何实现?如何应用?
回答:Spring是一个库,它的功能是提供了一个软件框架,这个框架目的是使软件之间的逻辑更加清晰,配置更灵活,实现这个目的的手段使用AOP和IoC。1.AOP是什么?回答:AOP:面向切面编程,利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。在Java里是利用反射机制实现(你也可以认为是动态代理,不过动态代理也是反射机制实现的。Spring aop 主要是在不改变原有代码的基础上,通过spring动态添加代码。比如:在一方原创 2022-03-01 14:12:55 · 1087 阅读 · 0 评论 -
EAP系统简单介绍
EAP是一个集实时设备状态监控、实时高频数据采集、实时设备警报提醒、历史设备生产大数据存储以及对接MES生产管控五大功能为一体的设备物联网平台。设备接入EAP即可轻松实现上述五大功能,是工厂生产数字化和智能化的重要一步。...原创 2021-12-09 18:13:58 · 7687 阅读 · 0 评论 -
Java实现单链表有效节点个数、查找单链表中的倒数第k个节点、单链表反转、单链表逆序打印等4个常见单链表面试题
Java实现单链表有效节点个数、查找单链表中的倒数第k个节点、单链表反转、单链表逆序打印等4个常见单链表面试题原创 2021-11-19 15:35:26 · 178 阅读 · 0 评论 -
Java实现单向链表的插入、遍历、判空等操作
1.节点和单向链表的操作public class LinkedList { private Node first;//指向链表的第一个节点 private Node last;//指向链表的第二个节点 /** * 首先判断链表是否为空 * @return */ public boolean isEmpty(){ return first == null; } /** * 将当前链表的内容打印出.原创 2021-11-16 16:17:21 · 1103 阅读 · 0 评论 -
Java对象复制和批量复制
import cn.hutool.core.collection.CollectionUtil;import org.springframework.beans.BeanUtils;import java.util.ArrayList;import java.util.List;/** * @author lijj * @date 2020-05-12 */public class CopyUtil { public static <T> T copy(Ob...原创 2021-11-10 16:36:51 · 1128 阅读 · 0 评论 -
软件开发技术的第一性原理
计算机软件开发是一个日新月异的领域,几乎每天都有新的技术诞生。每隔几年,软件开发领域就会进行一次大的技术潮流变换,所以身处其中的软件开发技术人员也常常疲于奔命,不断学习各种新知识、新技术,生怕被这个快速变革的时代所抛弃。但是每次从头开始学习一个新的技术,这个过程既痛苦又漫长,好不容易掌握得差不多了,新的技术又出现了,于是不断重复从入门到放弃这一过程。这个过程是如此痛苦、艰难,以至于整个行业形成了一种所谓的“共识”:随着学习能力和体力精力的下降,编程知识和技能逐渐衰退,35 岁以后就不能写代码...原创 2021-10-09 16:33:15 · 308 阅读 · 0 评论 -
springboot从自定义配置文件中加载变量以及自带logback日志打印
1.自定义配置文件site.properties#网络基本配置信息weirongqian.site.name=\u201c\u9b4f\u6995\u6c58\u000d\u000a\u201dweirongqian.site.url="https://www.weirongqian.com"2.从自定义配置文件中加载变量package com.wei.base.controller.admin.config;import org.springframework.beans.fac.原创 2021-07-20 16:45:51 · 400 阅读 · 0 评论 -
cmd关闭指定端口指令
1.找到已占用端口号的进程号,例如端口号:8080netstat -ano | findstr 80802.关闭对应的进程号taskkill /pid 7460 -t -f原创 2021-07-20 16:12:54 · 1041 阅读 · 0 评论 -
This application has no explicit mapping for /error, so you are seeing this as a fallback
运行springboot的时候报错,其他配置都没有问题:一、错误提示:二、原因:IDEA目录结构的问题,Application启动类的位置不对.要将Application类放在最外侧,即包含所有子包 。而我的controller则放在了最外层的包里面。导致找不到页面。三、解决方法1.要将Application类放在最外侧,即包含所有子包 。比如你的包是com.wei.controller,就把启动类放在wei下面。2.或者在启动类中加入扫描@ComponentScan("原创 2021-07-02 15:56:05 · 411 阅读 · 0 评论 -
两全其美:在控制台显示结果的同时,又在文本里自动记录
package com.example.tushugl.domain;import java.io.File;import java.io.IOException;import java.io.PrintStream;import java.util.Scanner;public class Demo3 { public static void main(String[] args) throws IOException { PrintStream now=Syste.原创 2021-07-01 19:22:48 · 99 阅读 · 0 评论 -
json通用返回对象封装第二篇
package com.wei.mall.common;import com.wei.mall.exception.ImoocMallExceptionEnum;/** * 描述: 通用返回对象 */public class ApiRestResponse<T> { private Integer status; private String msg; private T data; private static final int .原创 2021-05-27 14:05:06 · 237 阅读 · 0 评论 -
java面试之自我介绍
两三分钟就可以。技术重要,交流也很重要,能吹些恰当的牛逼也是闪光点。原创 2021-05-26 19:51:05 · 1152 阅读 · 0 评论 -
Java密码加盐功能实现
写入数据库的密码,如果不加密,就会被人偷窥进而引发账户安全问题。java常用的加密操作是采用MD5进行加密。它是采用哈希算法来进行加密,具有不可逆性。但是如果你百度搜索“MD5破解”你会发现还真的有破解的网站,所以如果你采用简单的密码,比如:123456,即使你加密了,也会轻而易举进行破解。所以还要有所谓“密码加盐”的功能。例如:我设置的密码是“123456”,如果不加盐,即是加密了,也能破解掉。加密如下:然后把加密后的字符串放进破解网站机进行解密:看到了吗?你的密码被破解出来了!!!原创 2021-05-26 15:44:20 · 4368 阅读 · 1 评论 -
java异常体系
原创 2021-05-26 14:56:36 · 76 阅读 · 0 评论