自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(141)
  • 资源 (3)
  • 收藏
  • 关注

原创 Java添加文件到压缩包

前言最近在改hutool bug 的时候遇到了往压缩包里添加文件的bug,在网上查了很多,有挺多没用的文章,所以自己来补一下。我使用的是Java8,我下面的文章也是基于Java8写的,如果你用的是Java7(不包括7)以下的版本,那我下面说的就不适合你了,但你可以去stackoverflow上查。参考文章https://stackoverflow.com/questions/2223434/appending-files-to-a-zip-file-with-javaJava7的Zip工具类:Zi

2021-10-15 10:06:26 2022

原创 @SuppressWarnings使用(在Idea中的正确打开姿势)

前言使用Idea已经有很长一段时间了,作为一个资深的洁癖程序员,编译器里的警告我是十分接收不了的。这种强迫症说好也好,说不好也确实不好。比方说,有些警告处理之后是能够使得代码更加严谨,效率更高,可读性更好;但团队中,也不是人人都有这种强迫症的,某天需要你去修改某个别人负责模块的bug的时候,看着满满的黄色(Idea中警告的颜色),甚至还有绿色(单词拼写检查),一时间,恶从心中起,怒向胆边生,一个飞雷神二段把警告给清理一波,人是舒服了。然而大规模的修改别人的代码是极容易出错的,奉劝大家谨慎!@Suppre

2021-04-16 14:11:38 5408 8

转载 Github进行fork后如何与原仓库同步

参考文章地址Github进行fork后如何与原仓库同步不同点原文使用的是https的克隆方式,我使用的是ssh前言在我已生灰的github仓库里,看到了mq,打开一看已经behind 几十个 commits了,于是就想把主仓库(apache/rockmq)的代码拉一下,看了看上面提到的文章,发现没有图,但是用浏览器的开发者工具还是能看到图片的url,于是想着根据原文整理一下,做个记录。字典上游(upstream):github上rocketmq的库()下游:我自己fork之后的库# 查看当

2021-03-29 18:06:43 434

原创 手写Idea插件-从零开始

前言换了工作之后,因为公司不让用破解的软件,所以公司的ide用的是Idea 2020.2.2的社区版,as we all know,lombok在2020.2的版本上有非常严重的bug,导致我每次修改数据库表对应的实体类后,都需要重启ide,但是对于Idea的其他版本而言,是没有这个问题的,后来我也是将团队使用Ide无缝升级到了Idea 2020.3.2版本。!!!好家伙,有bug可以改,改完了提到lombok库里,当个contributor多好。所以就萌生了先从写一个Idea的插件开始学起。百度上找到

2021-03-10 10:09:07 826 2

转载 TCP 为什么三次握手而不是两次握手(正解版)

参考文章 Why do we need a 3-way handshake? Why not just 2-way 大部分网络博客的错误解读 首先需要声明的是, 百度搜索到的大部分网络博客关于这个问题的解答都是不清晰或者不准确的。 讨论这个问题的大部分博客都会引用《计算机网络》的内容: 防止...

2020-11-27 21:00:07 326

原创 方便调试的工具类(力扣)

前言今天在力扣上刷每日一题的时候突发奇想,如果在力扣上已经刷过一段时间题的人都知道,当遇到链表和树的问题的时候,需要用到官方提供的ListNode和TreeNode。第一个问题是我们本地编译器上没有这个结构需要自己定义,我个人原先是通过静态内部类操作的;第二个问题是代码提交后,对于像我这样的菜鸡而言,总会有几个例子不过,然后就需要把测试用例还原到编译器里(或者硬生生的用脑袋想,一般想不出然后乖乖本地创建一个链表/树的结构,然后本地debug一下)。所以就想到干脆写个工具类,能够直接将数组转换为链表或树,

2020-11-09 15:48:06 1386 1

原创 Spring源码中的Introspector介绍

前言很久不更博客了,因为现在研究的东西不太好用博客记录下来,比如说我最近看的Spring IOC 和 AOP的源码讲解视频,不好记录一是因为我的理解不够深入,如果匆匆总结难免误导别人;二是因为大佬们总结的Spring的文章太多,我没有这个自信说我比他们有特点;三是感觉一篇博客很难让一个对源码头疼的人了解这些复杂的代码。在这里推荐大家去B站或者别的视频网站上找个讲解视频看,视频里会带着debug,然后一点一点的分析源码。Introspector自己在翻看Spring IOC中的代码时,看到了Intros

2020-11-05 22:38:19 538

原创 在字符矩阵中找到目标字符串(剑指 Offer 12. 矩阵中的路径)

题目请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一格开始,每一步可以在矩阵中向左、右、上、下移动一格。如果一条路径经过了矩阵的某一格,那么该路径不能再次进入该格子。例如,在下面的3×4的矩阵中包含一条字符串“bfce”的路径(路径中的字母用加粗标出)。[[“a”,“b”,“c”,“e”],[“s”,“f”,“c”,“s”],[“a”,“d”,“e”,“e”]]但矩阵中不包含字符串“abfb”的路径,因为字符串的第一个字符b占据了矩阵中的第一行第

2020-09-17 18:19:51 509

原创 TortoiseSvn通过命令行更新分支(文件夹)

前言公司用的TortoiseSvn作为代码管理工具,本身并没有什么问题,可是界面化操作的问题就是一旦你想写点脚本什么的就不行了,所以做了一些试验,一开始找到的命令行是能够触发update操作,可是不会自动关闭界面,随后去官方文档里找到了/closeoend参数。最终命令如下你的TortoiseProc.exe全路径 /command:update /path:"你要更新的文件夹" /closeonend:1我的命令行:D:\pro\svn\bin\TortoiseProc.exe /command

2020-08-21 17:51:34 1152 4

原创 Redis中使用lua脚本

前言公司中的爬虫项目作为一个接盘来的项目,项目中大致流程是,把要抓取的数据导入到redis中,然后不断pop再去抓取。为了避免redis中的数据丢失,大哥采取的是先pop再将拿到的数据通过set的形式在redis中记录下来。 redis_client = redis.Redis("127.0.0.1", decode_responses=True) queue_name = "test_queue" data_key = "grab_data" data = redis_client.lpop(q

2020-08-18 19:19:03 530

原创 git的水文

写个水文保存一下自己在工作中用到的git操作吧,不然总是搜来搜去的。也欢迎大家在评论区写下自己在工作中用到的命令。1. 查看当前有哪些文件是被git所忽略的, git一定版本才会有这个命令我的: git version 2.23.0.windows.1git status --ignored2. 忽略本地修改,强行使用远程git fetch --allgit reset --hard 分支名称git pull...

2020-08-03 10:51:34 165 1

原创 正则匹配以某字符开头,以某字符结尾

前言很久不更了0.0,现在公司里越来越没有了工作的激情,只剩下麻木的躯体和向往文艺的灵魂。最近在整公司的QQ机器人开发,我们开发用到的是酷Q,用到的开发工具则是JCQ,然后因为对于图片或者文件消息等,接收到的字符串形如以下:[CQ:image,file=50CB70BF5232E82C5E0D73184FAAE3EB.jpg]广东省方法[CQ:image,file=50CB70BF5232E82C5E0D73184FAAE3EB.jpg]dfsf[CQ:image,file=50CB70BF5

2020-06-16 11:03:38 39246 2

原创 Python生成sql语句

def generate_sql(table_name, ignore_col_set): """ 根据数据库中的列名生成字典格式的sql语句 :param table_name 待生成sql的表名 :param ignore_col_set 要忽略的列名集合 :return: 生成的sql语句 """ sql = "show columns from %s" % table_name # 我写的get_conn是获取一个全局的数据库连接对象

2020-05-22 17:45:26 2194

原创 最简单的python调用Java程序(仅用os包)

前言    项目中的数据有分库分表,用到的是Java实现的一致性Hash算法。而我抓数据使用的是python,在Java中用到了Java中自带的hashCode方法,所以两边算出来的分库和分表结果可能会不同。所以,只好用python调用Java了,但是我只需要用到一个类的一个静态方法罢了,引入了框架调用什么的太麻烦。就像之前我用python中的os包的system方法直接调用jar包运行一样。    总体思路还是通过pyth

2020-05-18 11:47:17 718

原创 RabbitMq最基础使用(Windows)

前言    项目中为了完成消息确保发送和削峰,所以要引入消息队列,不过对消息队列了解的太少,连选择哪一个消息队列框架都很纠结。然后因为目前的服务器是Windows,Kafka没有Windows的,所以就暂时先用RabbitMq了。    在RabbitMQ的简单使用一文中,将RabbitMq的各种使用模型都介绍了一遍,但是因为文章有点久了,现在新的RabbitMq的jar包的使用方式变了,所以本篇文章着重于补充。安装安装

2020-05-15 16:57:36 501

原创 动态规划---01背包

前言第三次看动态规划了,总是能够稍微的理解了,但是下次想用的时候就用不出来了...记录一下,时间问题,只有代码没有解释.import java.util.Arrays;import java.util.Random;/** * 0 - 1 背包问题 */public class BagProblem { public static void main(String[] args){ // 总计n件物品 int n = 10; /

2020-05-12 19:00:01 140

原创 程序员的浪漫---------母亲节快乐!

祝所有的妈妈们节日快乐(虽然妈妈们应该都睡觉了吧)......源文件: | | \ / ----------------- \ / ----------------- ---|-----------|-- ---..

2020-05-10 23:25:33 699 2

原创 vue 跳转 同一路由不刷新问题解决(相同path不同query)

前言    遇到个需求,要求在同一个path下,通过不同的query实现跳转不同的页面,大概就是下面这个样子:type为1时用个人信息,type为2时用我的视频。解决办法两个方法,推荐用第二种:方法一:用watchwatch{ '$router': function(to, from){ ...... }}方法二:在router-...

2020-05-08 11:00:06 4252 5

原创 网络IO总结

前言    对网络IO的学习已经有挺长的时间了,不过直到现在我也不敢说面试的时候能够网络IO给面试官讲的明明白白,我为了写这篇文章,分别看了网络模型、Reactor、Netty原理以及select、poll和epoll的区别。    本文偏向于广的方向上,部分可能讲解的不是很细致,网上的专题有很多,各位请自便。网...

2020-05-05 19:08:21 226

原创 手写tomcat(四):实现NIO模型的tomcat

在手写tomcat(三)中,我实现了基于BIO模型的多线程tomcat,而这次我实现了Nio的多线程模型,下一步打算是通过netty实现,不过目前还在进行中。。。以下是基于NIO模型监听请求以及开启线程处理收到的请求。package com.tomcat.core;import com.tomcat.annotations.Servlet;import com.tomcat.bas...

2020-04-20 12:01:10 382

转载 Jenkins入门(一)

25.1 CI/CD介绍互联网软件的开发和发布,已经形成了一套标准流程,假如把开发工作流程分为以下几个阶段:编码 → 构建 → 集成 → 测试 → 交付 → 部署正如你在上图中看到,持续集成(Continuous Integration)、持续交付(Continuous Delivery)和持续部署(Cont...

2020-03-31 14:39:32 638

转载 鼠标悬停动态弹出浮动窗口显示图片

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>js弹出窗</title> <style> a{ float: left...

2020-03-25 17:35:04 2481

原创 nginx进行token验证

前言最近在做图片服务的时候,一开始用的tomcat,图片的url后面拼接上token,在tomcat里进行token验证后再把二进制流返回给前台。不过,我们项目中有一个页面,在进去的时候,会一次性加载1000张左右的图片,等图片加载完,花都谢了。不过也不能把后台校验去了,所以就有了在nginx上做token验证的想法,同事说可以开发脚本,随后就有了接下来的故事。OpenRestyO...

2020-03-25 16:33:58 10208 2

原创 Pyhon爬虫抓取Json解析错误

前言最近在我的Python爬虫中总是会遇到json.loads()方法报错,把抓取到的原文摘出来一看,里面带有转义的 " 和 ',也就是 \"和\'。一开始遇到这个问题就疯狂上网搜索,结果找不到能解决我问题的答案,所以就想着按照Json解析的算法做一个自己的Json解析算法。不过,这似乎十分麻烦,懒惰的我于是就做了个替换算法。对于...

2020-03-15 14:21:08 2364

转载 JNI 开发流程

目录温馨提示JNI 开发流程一、C 语言执行的流程二、头文件1、头文件的作用2、自定义头文件1、创建 .h 文件,对相应方法进行声明。2、在 .h 文件同级目录下创建对应的 .c 文件,对 .h 文件中声明的方法进行实现。3、创建一个C文件,进行验证头文件是否编写成功。三、define 指令1、define ...

2020-02-17 17:35:15 304

原创 Mybatis-plus做分页和联表查询

前言在 Mybatis-plus中自定义的sql语句调用QueryWrapper实现查询及分页IPage使用 一文中,我本来是用的别人写的Mybatis Plus分页,不过现在链接失效了,所以就决定自己写一下了.以下均是在SpringBoot项目中使用MybatisPlus的示例.示例首先先从代码上看一下我在框架中是如何使用的分页:注: AboutusHomepage是实体类...

2020-02-16 15:47:15 29173 12

原创 python中获取时间戳

前言为了避免时间逻辑上的不统一,需要将python和Java的时间戳统一。Java自带的本身就是Long,所以就在python上下功夫.但是python的time库中的time.time()的值是double.在网上搜了一下,说 round(time.time() * 1000) 就可以,将信将疑的测试了一下.java:class TimeTest{ public stat...

2020-01-15 16:48:54 2198

原创 MySQL按照某一列的首个字符排序(拼音排序)

高速链接百度一下MySql怎么截取字符串,找到LEFT函数、RIGHT函数以及SUBSTRING函数。前言今天在做按照拼音将下拉框排序的时候,需要按照拼音首字母排序,胡乱搜了一通,搜到了截取字符串的函数.我数据库中的数据,有对用的拼音字段,但是直接用order by会因为拼音的长度不一导致顺序不理想,所以就用ORDER BY LEFT(column_py, 1)就好了.另外呢,...

2020-01-14 17:05:37 938

转载 Powerdesigner pdm视图添加列注释

很久没有Powerdesigner了,今天安装了一个逆向工程导出一个数据库表结构,发现没有表字段说明。Display Preferenses-> Table-&g...

2020-01-03 13:56:00 1463

原创 Element-ui向Java服务器一次性发送多个图片

前言生活举步为艰,时间就像海绵里的水,挤一挤总会有的,不过,精力却是有限的- -。最近有个需求,需要用Element-ui向后台一次性发送多张图片,并且还要结合一些字符串数据。在之前的SSM通过工具类实现单图片和多input框数据存储到数据库中,我是从HttpServletRequest里面直接取出来的数据,没有用到Spring Mvc的MultipartFile类。这一次想着还按照之前那...

2019-12-30 19:09:01 501 1

转载 判断两个字符串是否相等存在的问题?a==b 返回false情况

今天在用js在前端渲染权限管理中的角色树的时候,遇到一个奇怪的问题。明明两个字符串相等,用alert()打印出来都一样,typeof的结果都是string,可是用a==b却判断为不相等,后来在网上查了资料,虽然两个字符串看上去没有区别,但是用encodeURIComponent()处理后可能不一样解决办...

2019-12-25 11:38:15 1476

转载 微信开放平台开发第三方授权登陆(一):开发前期准备

微信开放平台开发系列文章:微信开放平台开发第三方授权登陆(一):开发前期准备微信开放平台开发第三方授权登陆(二):PC网页端微信开放平台开发第三方授权登陆(三):Android客户端微信开放平台开发第三方授权登陆(四):微信公众号微信开放平台开发第三方授权登陆(五):微信小程序 目录...

2019-12-18 09:34:27 859 4

转载 各大前端巨头反爬虫策略

各大前端巨头反爬虫策略 1. 前言对于一张网页,我们往往希望它是结构良好,内容清晰的,这样搜索引擎才能准确地认知它。而反过来,又有一些情景,我们不希望内容能被轻易获取,比方说电商网站的交易额,教育网站的题目等。因为这些内容,往往是一个产品的生命线,必须做到有效地保护。这就是爬虫与反爬虫这一话题的由来。2. 常见反爬虫策略但是世界上没有一个网站,能做到完美地反爬虫。如果页...

2019-12-17 14:38:08 472

原创 selenium执行Js

前言好久不更了,工作太忙- -入职不到两三个月,编程语言从Java跳C/C++,后来又需要爬虫,又去学了python,最近几日还在学vue...怎么说呢,往好听了说叫博学多识,往坏了说广而不专- -。 接下来我就对最近的爬虫工作做一个总结。我要爬取的网站不方便贴出来,不过这是个老网站了,没有什么验证码那一类的反爬措施。要说麻烦在哪了的话,那就是小日本的编程逻辑了吧...请求参数命名随心所欲...

2019-12-14 15:45:53 851

转载 Python 获取当前操作系统和python版本等

import platformdef get_system_Platform(): print ('system and bit'.center(40,'-')) print(plat...

2019-12-12 12:00:19 2187

转载 计算机网络——各种时延和最小帧长

各种时延的理解:时延:是数据(一个报文或分组,甚至比特)从网络或链路的一端传送到另一端所需要的时间。 总时延=发送时延+传播时延+处理时延+排队时延发送时延:是从发送数据帧的第一个比特算起,到该帧的最后一个比特发送完毕所需的时间。发送时延=数据帧长度(b) /信道带宽(b/s) [信道带宽就是数据率...

2019-11-24 09:22:02 6979

转载 Python十大装B语法

Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用...

2019-11-19 16:24:53 217

原创 客户端用C发送文件到Java服务器

前言在写客户端发送文件到Java服务器的时候,一是遇到了Netty接收默认字节长度的问题,Netty默认的接收长度是1024,这个问题通过DelimiterBasedFrameDecoder解决。二是我一开始除了应用DelimiterBasedFrameDecoder之外,还应用了StringDecoder,结果在Handler里(继承自ChannelHandlerAdapter),接收到的o...

2019-11-19 11:26:29 342

转载 string和wstring的互转

方式一:调用Windows API#include <Windows.h>//将string转换成wstring wstring string2wstring(string str) { wstring result; //获取缓冲区大小,并申请空间,缓冲区大小按字符计算 ...

2019-11-19 11:05:37 538

转载 JavaNIO和零拷贝(Zero Copy)

文章目录一.Linux操作系统中的零拷贝1.1先从Linux的普通I/O过程说起1.3内核空间内部传输I/O1.4理想状态下的零拷贝I/O1.5splice()系统调用二.JavaNIO中的零拷贝2.1NIO中内存映射方式I/O2.2NIO中的零拷贝三. 补充内容今天在学习netty的时候,突然了解到一个新...

2019-11-08 19:08:39 1108

RabbitMq消息队列3.8.3

集成了RabbitMq3.8.3和Erlang_WIN32_22.3的安装包,是Windows版本的,其实官网也能下载,就是外网实在太慢。

2020-05-15

banner.txt

SpringBoot项目启动时候打印文字。

2020-05-10

tomcat.zip

手写Tomcat,没有实现war包的访问,但实现了访问Servlet和静态资源(图片访问不到,这个BUG困扰我很久了),访问Servlet是通过HashMap映射访问的,也就是SpringMvc扫描controller那一套. gitHub地址:https://github.com/shenshaoming/tomcat.

2019-09-19

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除