- 博客(214)
- 资源 (1)
- 问答 (1)
- 收藏
- 关注
原创 ThreadPoolExecutor的线程是如何增长的
看这个参数很容易让人以为是线程池里保持corePoolSize个线程,如果不够用,就加线程入池直至maximumPoolSize大小,如果还不够就往workQueue里加,如果workQueue也不够就用RejectedExecutionHandler来做拒绝处理。
2022-09-21 21:21:41
673
原创 Mybatis 不支持 batchInsertOrUpdate 返显id
Note: Mybatis 不支持 batchInsertOrUpdate 返显id,仅 batchInsert 可批量返显id,需拆分 batchInsert 和 batchUpdate;或者单条insertOrUpdate。<insert id="batchInsert" useGeneratedKeys="true" keyProperty="id"> INSERT INTO month (month, game_id) VALUES &l
2022-05-11 11:38:24
1165
1
原创 MySQL分页查询limit优化的两种思路
我们知道,limit分页,当翻到比较靠后的页时,查询效率会越来越慢。如这则帖子所述:浅谈PageHelper插件分页实现原理及大数据量下SQL查询效率问题解决博主这也是一种不错的思路。其实针对分页这个问题,了解其为什么慢就知道优化方法了,按我的理解如下(不一定说的很准确哈):(1)以前select * from table order by id limit 100, 10这种方式,分页是怎么分的呢,是从磁盘拿整一个数据页到存储引擎缓冲区,比如 limit 100, 10 那就要按顺序先取出前100条
2022-04-11 17:25:41
5908
5
原创 基于ETCD实现分布式锁&实战:控制多个应用仅一台执行任务
我们知道,分布式锁有好几种方案:基于Redis、基于数据库如MySQL、基于注册中心如Zookeeper等;而 K8S 体系中基于 Go 语言编写的的 ETCD 则对于分布式锁有着更强大的支持。 ETCD 有一个租约机制,客户端跟 ETCD 服务端订立一个“租约”后,需要在租约到期之前进行续约,否则会在到期后被自动解除租约,而租约可以挂载多个 key-value,当租约过期时,挂载在上面的 key-value 也会跟着被删除。既有类似 Redis / Zookeeper 的 key-value 机制
2022-02-28 22:24:43
1060
原创 IOS APP抓包-以fiddler
安装教程:fiddler 抓包 iPhoneios13+按上述教程配完后手机无法上网,需要额外配置,把证书删了,装了certMaker fiddler插件后重新安装证书并信任,然后就可以了:Fiddler在 ios13上信任后手机无法联网解决办法...
2022-01-10 21:20:36
2595
原创 spring配置CORS后未返回Access-Control-Allow-Origin的踩坑解决
在 Spring 框架下解决 CORS 问题,前面试了两种方法,发现在一种场景下,HTTP Response header 始终未应答 Access-Control-Allow-Origin:* (1)第一种方式,通过在 Controller 层增加 @CrossOrigin 注解。@CrossOrigin@RestController@RequestMapping("/file")public class FileController { ...} (2)第二种方式,利用 Sp
2021-07-09 23:07:19
5979
1
原创 记一次join + order by 的sql优化
慢查询日志中,发现一条 sql 每次执行时间都不理想,而且这条 SQL 在业务上是非常频繁调用(需要实时查库不能做redis缓存)的。于是着手对这条慢 sql 进行优化。 原 SQL 如下:SELECT rtt.topic_id FROM rel_topic_theme rtt INNER JOIN topic t ON (rtt.topic_id = t.id) WHERE rtt.topic_theme_id = 119988 AND t.is_delete = 0 AND review_s
2021-06-16 22:41:49
2204
原创 mybatis报错could not be found for the javaType
一、报错栈:Cause: java.lang.IllegalStateException: Type handler was null on parameter mapping for property '__frch_recordId_0'. It was either not specified and/or could not be found for the javaType (com.xxx.RelUser) : jdbcType (null) combination. at org.myba
2021-06-02 21:01:41
15124
原创 MySQL主从的异步复制、全同步复制与半同步复制
好文推荐:一文看懂MySQL的异步复制、全同步复制与半同步复制在线数据迁移经验:如何为正在飞行的飞机更换引擎MySQL 主从复制一、异步复制(relay_log)有两种实现方式:(1)主库dump线程异步通知:主库有一个 dump 线程,专门负责给从库发送新的 binlog,主库记录完 binlog 后,只会通知 dump 线程去发送,并不关心发送是否成功。(2)从库主动监听:从库监听主库的 binlog,并写入自身的 relay_log 中。因为是异步复制,无法做到实时同步,只能达到最终一致
2021-04-29 21:11:49
584
原创 用 fiddler 转发 http 请求
一、诉求:将一个网站的所有请求,拦截并发到另一个地址上去。二、解决方案:使用强大的抓包软件-fiddler三、具体配置:使用 fiddler 的 AutoResponder 功能,可以指定拦截 Rule 以及转发的地址,这个地址可以是另一个网站的 URL,或者是本地的文件也可以。EXACT:关键字表示全匹配,REGEX则可以用正则表达式模糊匹配。示例:Rule Editor 的两个框分别填入:REGEX:http://baidu.comhttp://127.0.0.1:9001这个规
2021-04-22 19:48:15
1546
原创 windows查找端口占用进程并kill
先用 netstat 命令找出端口占用的 PID命令格式:>netstat -ano | findstr PORT示例:>netstat -ano | findstr 9060 TCP 0.0.0.0:9060 0.0.0.0:0 LISTENING 19800 TCP [::]:9060 [::]:0 LISTENING 19800.
2021-04-21 20:51:30
649
原创 2021年2月社招面经分享_Java资深/高级开发
2021-3-18 V1.0:是10家左右一线和二线互联网企业的面试题集合。这次只是把题目挂上来,有些捎带了不完善的答复,答案仅供参考,既不完善也不权威哈。后面我再逐个完善答案上来。1、为什么离开现在的公司:2、你有什么想问的:3、介绍下自己4、说说你的特长5、简历上挑一个项目展开讲6、HR面聊薪资比如,hr问你,你对薪资的预期多少?你直接回答一个确定的薪资,或薪资范围,其实就是把自己能谈薪资的机会给封死了。正确的回答应该是:先反问对方,公司的薪资结构是怎样的?其中,薪资结构包括:1.五险
2021-03-18 16:15:49
4173
原创 一文了解数据库和 Java 的近30种锁
一文了解 数据库 和 Java 近30种锁本文入门性地介绍数据库(主要是 MySQL + InnoDB 这块) + Java 中近30个不同称呼的锁,事实上“锁”的思想通用性很强,无论是更早的数据库 / MySQL 领域,还是 稍晚 Java / Redis 等领域,会发现锁的思想本源其实是类同的,只是适应了各自不同的场景而已,所以要区分好 MySQL 和 Java 的锁,或者深入理解各类锁,还得具体切入到其场景所要解决的问题和折中优化办法里,这话题太深太广,本文只对各种锁做一个“浅尝辄止”的介绍。参考
2021-02-28 18:30:14
294
原创 用Python备份文件夹的小脚本
Title: 备份文件夹Python脚本Category: 技术博客Date: 2017-8-19 22:10Modified: 2017-8-19 22:10Tags: pythonSlug: backup-directories-pythonAuthors: Victor LvSummary: 出于备份网站内容的考虑,故花了点时间写了个能够备份文件夹的 Python 小脚本,用于把自己写的博文目录备份为zip并放到指定目录。功能很简单,代码量也很少 出于备份网站内容的考虑,故花了点时间
2021-02-01 11:55:40
471
原创 SpringMVC + Mybatis的Demo
Title: Just a simple demo: SpringMVC + MybatisDate: 2018-8-22 12:52Category: 技术博客Modified: 2018-8-22 12:52Tags: spring, mybatis, springMVC, Java-WebSlug: demo-springMVCAuthors: Victor LvSummary: Just a simple demo: SpringMVC + MybatisJust a simple
2021-01-30 11:21:44
358
原创 数据表字段比较工具
Title: 数据表字段比较工具Date: 2017-11-28 21:14Category: 技术博客Modified: 2017-11-28 21:14Tags: 数据库Slug: DB-compareAuthors: Victor LvSummary: 在数据表中使用两种不同的方法(可通过某些特殊字段的数据区分)插入一条数据,比较这两条数据所有字段是否一致,同时可以设置白名单,在白名单中的字段允许不一致。一、需求描述: 在数据表中使用两种不同的方法(可通过某些特殊字段的数据区分)插
2021-01-30 11:20:12
1707
原创 用Pelican+Github搭建个人博客网站
Title: 用Pelican+Github搭建个人博客网站Date: 2017-06-4 19:13Category: 技术博客Modified: 2018-10-11 19:03Tags: 博客网站Slug: pelican-build-siteAuthors: Victor LvSummary: 用Pelican+Github搭建个人博客网站创建仓库在github上创建一个username.github.io的仓库(username是你的github用户名)创建index.html
2021-01-30 11:16:33
660
原创 Hibernate 与 Mybatis 入门使用
Title: Hibernate 与 Mybatis 入门使用Date: 2018-7-12 16:48Category: 技术博客Modified: 2018-7-12 16:48Tags: Java-WebSlug: Hibernate-mybatis-useAuthors: Victor LvSummary: Hibernate 与 Mybatis 入门使用1. Hibernate – 基于 Hibernate 5.3.1 finalHibernate 核心配置文件 hibernat
2021-01-30 11:15:23
302
原创 使用 Tesseract 进行文字识别
Title: 使用 Tesseract 进行文字识别Date: 2017-12-1 17:49Category: 技术博客Modified: 2017-12-1 17:49Tags: 文字识别Slug: TesseractAuthors: Victor LvSummary: 使用 Tesseract 进行文字识别1. 安装 Tesseract、字库、jTessBoxEditor 使用默认路径安装 Tesseract ,本文 Tesseract 版本3.0.5,安装的时候可手动勾选安装中文
2021-01-30 11:10:33
1847
原创 初识ActiveMQ
Title: 初识ActiveMQDate: 2018-10-22 13:00Category: 技术博客Modified: 2018-10-22 13:00Tags: Message QueueSlug: ActiveMQAuthors: Victor LvSummary: ActiveMQ 是一个遵循 JMS 规范的消息服务系统,开源,纯Java实现,但可以跨语言使用。ActiveMQ(JMS)可用于系统整合、降低模块间耦合、实现异步处理、数据同步。ActiveMQ是一个遵循JMS规范的
2021-01-30 11:06:21
222
原创 初尝Java动态代理
有动自有静,在看动态代理之前先看更简单明了的“静态代理”。下面以实例描述。(静态)代理定义一个 Human 接口:Human.javapublic interface Human { void goToWork();}我们假设所有 Human 都有一个动作就是 goToWork。然后在 Human 的基础上衍生出 Man 和 Woman :Man.javapublic class Man implements Human { @Override public vo
2021-01-30 11:04:18
219
原创 图解Java参数传递
先学过 C/C++ 然后再学 Java 的同学们都会有一个疑问,C/C++里面 的参数传递分为值传递、指针传递、引用传递,Java 中不存在指针,自然不存在指针传递,那么 Java 的参数传递是值传递还是引用传递?抑或是二者都有?本文将以程序示例和自拟的流程图来讲解这个问题。程序示例: public static void passTest1(int i) { i = 0; } public static void passTest2(int[] ints)
2021-01-30 11:03:15
386
原创 浅析Java回调机制
生活中,我们经常碰到这样的例子:当我们想完成某个工作时,期间会有一个非常耗时的子任务,但我们又不想干等待它的完成才继续工作,于是我们希望把这个子任务交付出去给别人完成,然后我们就可以继续往下做其他事情了,等别人完成工作的时候,又会自动回来我这告诉我完成情况。 好比如你住酒店,你在打扫房间的时候,有一堆衣服要洗,但洗衣服这事太耗时了,所以你把清洁阿姨叫过来让她帮你拿衣服去洗,并告诉她衣服洗完后帮我放回A201房间的柜子里,托付完毕,你可以继续干手头的打扫工作了。 基于这样的思想,应用于编程中,那就
2021-01-30 10:57:16
166
原创 使用nginx作反向代理以支持CORS-跨域请求访问
CORS 定义前后端分离的web系统,存在 CORS–跨域(协议 / 域名 / 端口)请求访问的问题。关于 CORS 的定义,参考网上的帖子:“出于安全原因,浏览器限制从脚本内发起的跨源HTTP请求。 例如,XMLHttpRequest和Fetch API遵循同源策略。 这意味着使用这些API的Web应用程序只能从加载应用程序的同一个域请求HTTP资源,除非响应报文包含了正确CORS响应头。”这里以我使用的架构作例子:前端:使用 Vue.js ,通过 nodeJS 部署,假设地址为 http://
2021-01-30 10:48:49
10823
原创 构建二叉树并进行深度遍历(使用递归方式+非递归方式)
话不多说,直接上代码,注释也比较详尽。package tree;import java.util.ArrayList;import java.util.List;import java.util.Stack;/** * @Description:构建二叉树并进行深度遍历(使用递归方式+非递归方式) * @author: Victor Lv * @date: 2020/12/24 10:46 */public class BinarySearchTree { private
2020-12-24 11:13:04
317
原创 通过Nginx搭建HTTPS双向认证代理
一、Nginx双向认证配置:在 Nginx.conf 增加如下 server 配置,或者在 Nginx.conf 指定读取其他子配置文件的位置,比如:include /etc/nginx/conf.d/*.conf,这里指定扫描并读取 /etc/nginx/conf.d/ 目录下的 .conf 后缀结尾的文件。sslProxy.conf:server { listen 55111 ssl; server_name 11.11.11.111;
2020-09-04 16:50:17
2486
原创 http应答 400 Bad Request-因http.header与http.body之间少了空行导致
一、现象:HTTP 报文是自己组装的。当送的 HTTP body 是空的时候能发成功,但是加上了 HTTP body 后会被 Apache以 http 400 bad request 拒绝掉。报文如下:(1)Empty body 时的http请求和应答:POST /internet/TestProxy HTTP/1.1Content-Type: text/xml; charset=utf-8Host: 102.184.80.104:10490Content-Length: 0HTTP/1
2020-08-20 15:08:02
3469
原创 报错解决:Can‘t connect to X11 window server using……
报错解决:Exception sending context initialized event to listener instance of class org.apache.myfaces.webapp.StartupServletContextListener: java.lang.InternalError: Can't connect to X11 window server using 'localhost:10.0' as the value of the DISPLAY variable.
2020-07-23 00:18:09
16377
6
原创 fastjson报错java.lang.NoSuchMethodError: java.lang.Character.isSurrogate
开发新系统时,引用了fastjson组件,碰到报错如下:报错信息:org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: java.lang.Character.isSurrogate(C)Z经...
2019-12-03 14:51:04
1558
原创 Jmeter压测报错GC OverHead limit exceed
最近在用 Jmeter 做性能测试,开到50个并发就会出现这样的现象:1、压测到了2分钟左右的时候就必定会导致Jmeter卡死;2、nmon曲线在2分钟直线下降至完全没有请求。3、压到最后时Jmeter控制台出现如下报错:GC OverHead limit exceed。经了解,GC OverHead limit exceed 的原因是,JVM进程内存不足,虚拟机进而启用GC(垃圾回收),...
2019-10-09 21:40:09
1217
原创 引申:从一次parseInt导致的异常排查经历
系统所用框架描述:JSF + EJB + JBOSS 中间件(银行老系统用的老技术……)一、现象描述:页面报系统异常,观察日志只有一句相关报错:2019-07-20 15:54:44,021 INFO [stdout] (default task-14) 2019-07-20 15:54:44,021 [default task-14] DEBUG xxxxxxxxxxx.Sessio...
2019-07-20 17:13:52
470
原创 axios传输post参数后台无法转换
问题:使用 @RequestBody 接收前端 post 过来的 JSON 对象,对象转换失败为null。框架:前端Vue.js使用 Axios 与后台交互,后台 SpringMVC 使用 @RequestBody 接收前台传输的 JSON 参数。经使用 Jmeter模拟 post请求 和 F12 分析,系因使用 axios 传参时使用了错误的写法导致生成给后台的 JSON 错误:错误写法:...
2019-03-23 23:41:06
1827
1
原创 记坑:JavaScript 的 console.log() 和 trim() 方法IE兼容性
1、IE9及以下浏览器不支持 console.log()IE9及以下浏览器不支持 console.log(),所以如果js代码中含有console.log,会导致执行js到这里的时候就直接抛出异常,后续的js代码也不会被执行了(报错:无console对象),这样就会引出页面的bug。当这些老版本的IE打开F12 调试窗口时,console.log才能解析了,也不会引出页面bug。解决办法:...
2019-03-12 23:06:07
500
原创 Java card 小 demo -- 电子钱包应用
个人 JavaCard 系列博文涉及到的 demo 代码:Java card 小 demo – 电子钱包应用两年多以前的代码,不知道找出来的还是不是以前的工程,我上传到github上了:[][https://github.com/Victor-Lv/Wallet/blob/master/purse.zip]仅供参考,当年菜鸟写的程序,如有疏漏请包涵。...
2018-09-19 11:14:41
1178
原创 org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type **
spring 工程运行时报错:org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name ***: Unsatisfied dependency expressed through field ***; nested exception is org.spri...
2018-09-11 11:53:09
1430
1
原创 javax.servlet.jsp.JspTagException: Don't know how to iterate over supplied "items" in xxx
今天使用SringMVC + Mybatis + JSP 搭建一个小 demo 的时候,报了如下错误 报错信息如下type Exception reportmessage An exception occurred processing JSP page /WEB-INF/views/user_list.jsp at line 28description The server enc...
2018-08-21 09:29:06
1763
原创 mysql 存中文乱码
今天碰到一个问题,mysql 数据库中某字段存了一串中文,我将它读取出来之后更新该挑记录某个 int 字段,然后再将数据存入数据库,发现原本应该原封不动取出再存入的中文字段变成乱码了。参照下述文章,修改mysql的配置文件(Windows版):my.ini ,添加几项字符配置,即可解决中文乱码问题。彻底解决mysql中文乱码...
2018-08-03 10:26:27
1120
原创 解决办法:Message: 对实体 "useUnicode" 的引用必须以 ';' 分隔符结尾
Hibernate 5.3.1 版本下出现此问题:INFO: HHH000206: hibernate.properties not foundException in thread &quot;main&quot; org.hibernate.internal.util.config.ConfigurationException: Unable to perform unmarshalling at line...
2018-07-02 18:47:30
5103
原创 windows无法安装到这个磁盘选中的磁盘具有MBR分区表解决办法
本人在使用U盘安装Windows10时出现该问题,后发现是UEFI的问题,网搜解决办法: 非预装win10机型出厂时,硬盘默认为MBR分区表格式,而UEFI模式仅支持在GPT分区表的硬盘上安装系统。 如果系统安装光盘中包含了UEFI信息,启动时可能会自动加载并进入UEFI模式,因此便会出现“ windows无法安装到这个磁盘,选中的磁盘具有MBR分区表,在EFI系统上,windows只能安装到
2017-11-19 20:13:21
53006
2
原创 Windows快速添加开机启动项
有很多应用程序不自带开机启动的设置,前段时间发现个很快捷方便的方法添加开机启动: 如图: 打开开始菜单里面的启动中,右键打开,进去到启动的文件夹,然后只需要把程序的快捷方式放进去,就可以开机启动啦!
2017-09-17 10:44:59
1578
JavaCard Demo--电子钱包应用
2018-09-19
java单根继承的好处怎么理解?
2016-07-21
TA创建的收藏夹 TA关注的收藏夹
TA关注的人