自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(65)
  • 资源 (5)
  • 收藏
  • 关注

原创 MYSQL日期集合查询今天、昨天、本周、本月、上月 、本年、本季

MySQL统计常用查询:-- 今天select * from 表名 where to_days(时间字段名) = to_days(now());或SELECT count(*) FROM usr_user WHERE is_deleted = 0 and created_at >= DATE_FORMAT(CURDATE(),'%Y-%m-%d %H:%i:%s')-- 昨天select * from 表名 where to_days( now( ) ) - to_days(时间字段

2022-05-06 11:14:17 747 1

原创 bytes[i] & 0xFF 原理详解

在十进制转十六进制的时候,我们用到了& 0xFF,这个是为了防止byte转成int的时候,从8位变成32位,会在高位自动补齐缺少的位数,补齐的数值和byte原来的高位值一样,因为java采用的补码的计算方式,当byte为负数的时候,高位补齐的值为1,这样会和原来的值有出入。 十进制 二进制 十六进制 2 0000 0010 02 -2 111

2021-09-10 11:31:54 948

原创 零拷贝

https://developer.ibm.com/articles/j-zerocopy/https://blog.csdn.net/weixin_42096901/article/details/103017044

2021-05-19 17:34:44 392

转载 Spring Boot中只能有一个WebMvcConfigurationSupport配置类

首先将结论写文章的最前面,一个项目中只能有一个继承WebMvcConfigurationSupport的@Configuration类(使用@EnableMvc效果相同),如果存在多个这样的类,只有一个配置可以生效。推荐使用implements WebMvcConfigurer 的方法自定义mvc配置。背景项目中的一个模块需要实现上传图片后通过url访问保存在本地上的图片的功能,在SpringBoot 系列教程(十八):SpringBoot通过url访问获取内部或者外部磁盘图片中详细介绍了各种方法,

2020-07-22 17:34:07 972

原创 Charles安装

// Charles v4.2.7目前是最新版,可用。Registered Name: https://zhile.ioLicense Key: 48891cf209c6d32bf4本方法通杀charlse系列激活问题。使用charles代理手机教程:Charles的安装charles手机抓包设置和安装证书使用教程:抓包工具Charles的使用教程...

2020-06-28 18:35:47 310 1

原创 IntelliJ IDEA 编译时报错:“错误: 编码GBK的不可映射字符”

解决办法很简单,两个步骤搞定:1.检查编码是否正确,如下图:2. rebuild一下

2020-06-24 10:31:09 4624

原创 微信小程序授权登录

今天来说一下关于微信授权登录的部分。需要的材料1:一个可以测试的微信小程序2:此微信小程序的appId和appSecret流程微信用户对应一个小程序都有一个唯一的openid,微信授权登录,微信授权登录的核心就是获取这个openid并存在数据库作为用户存在的唯一标识。微信授权登录的流程大体分为两步1.微信小程序前端获取code并发送到后台在微信小程序的前端调用wx.login()获取一个code,这个code就像是我们去微信后台服务器获取用户信息的一个钥匙,微信通过获取这个.

2020-06-20 11:01:30 909

转载 MyBatis如何给源码加中文注释?

我们在看框架源码的时候,如果没有注释,看起来会比较吃力。所以如果能够一边看源码一边自己加中文注释,下次阅读的时候就会轻松很多。问题是:通过maven下载的jar,查看源码,实际上看到的是经过反编译的class文件,是不能够修改的(提示:file is read only)。如果把当前maven下载的jar包强行关联到自己下载的源码,又有可能会出现字节码跟源码文件不一致的情况(提示:Library source does not match the bytecode for class),导致debug

2020-06-13 16:38:22 1431 1

原创 解决 IDEA 下 Terminal 中文乱码

问题描述:在操作git命令在windows上的idea中的terminal窗口时,出现中文乱码的问题:解决:1. 在Git的安装目录下的etc目录下bash.bashrc文件,在最后一行添加:# 解决IDEA下的terminal中文Unicode编码问题export LANG="zh_CN.UTF-8"export LC_ALL="zh_CN.UTF-8"2. 修改idea配置3. 重启idea。...

2020-05-27 16:05:17 2476 1

原创 Spring Boot 监听 Redis Key 失效事件实现定时任务

业务场景我们以订单功能为例说明下:生成订单后一段时间不支付订单会自动关闭。最简单的想法是设置定时任务轮询,但是每个订单的创建时间不一样,定时任务的规则无法设定,如果将定时任务执行的间隔设置的过短,太影响效率。还有一种想法,在用户进入订单界面的时候,判断时间执行相关操作。方式可能有很多,在这里介绍一种监听 Redis 键值对过期时间来实现订单自动关闭。实现思路在生成订单时,向 Redis 中增加一个 KV 键值对,K 为订单号,保证通过 K 能定位到数据库中的某个订单即可,V 可为任意值。

2020-05-22 09:12:52 242

原创 SLF4J不同的日志实现选择

一.使用slf4j做简单的日志记录创建基于Maven的工程,在pom.xml中添加如下内容<dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.5</version></dependency>现在你可以在你的Java代码中这样使用Logger:import

2020-05-17 00:27:14 1751

原创 java8(四)接口中的默认方法

前言在java8中可以有默认方法和静态方法了。其中接口的默认方法的出现,使java可以类似的实现多重继承,并且也消除了适配器模式。静态方法的出现,可以方便我们编写工具类,而不需要像以前一样,再自己私有化构造器。案例水生动物接口其中breath()方法和陆生动物接口中的breath()方法方法签名一样.用于演示接口出现冲突的情况(结论:要重写冲突的方法)/** * @desc...

2020-04-26 18:34:55 493

原创 java8(三)Lambda表达式中的this

前言Lambda表达式中的this指向:创建lambda表达式的方法中的this例子package com.example.wbx_demo.java8._01_lambda;import org.junit.Test;public class _02_this { @Test public void oldThisTest() throws Inter...

2020-04-26 18:19:17 2064

原创 java8(二)方法引用

前言在Lambda表达式中主要有4种方法引用:1.类::静态方法 (静态方法引用)2.对象::方法 (特定对象的实例方法引用)3.类::方法 (对象实例方法引用)4.构造器方法引用当参数列表的值原原本本传递给方法体中的方法时,可以用方法引用的方式来书写使用基础类准备@Getter@Setter@ToStringpublic class Person imp...

2020-04-26 18:10:46 135

原创 java8(一)Lambda表达式

前言Lambda的作用:简化函数式接口的使用 (@FunctionalInterface 接口中只能有一个抽象方法)。Lambda表达式的基本语法: 参数列表 -> 表达式。使用下面让我们来对比一下使用和没使用Lambda表达式到的差别。后面代码要用到的基础类:@Getter@Setter@ToStringpublic class User { pr...

2020-04-26 17:58:27 159

原创 query_rewrite 插件的使用,临时处理线上问题

一 背景线上出现慢查询sql,而此时你又不能发布新的版本,此时可用MySQL 5.7提供的query_rewrite 插件(可以把输入的一种语句改写成另外一种模式)来临时解决问题。比如出现慢查询的sql如下(id为主键):select * from t where id + 1 = 10000;我都知道在字段上做运算,会让MySQL不走索引。此时我们的目标是把这条sql改成:...

2020-01-14 13:49:26 486

原创 事务隔离的实现与长事务

目录事务隔离的实现长事务事务的启动方式如何避免长事务对业务的影响?首先,从应用开发端来看:其次,从数据库端来看:事务隔离的实现这里我们展开说明“可重复读”。在 MySQL 中,实际上每条记录在更新的时候都会同时记录一条回滚操作。记录上的最新值,通过回滚操作,都可以得到前一个状态的值。假设一个值从 1 被按顺序改成了 2、3、4,在回滚日志里面就会有类似下面的...

2020-01-09 00:03:32 138

转载 MVCC--查询和更新的区别

目录在可重复读隔离级别下,“快照”在 MVCC 里是怎么工作的?查询逻辑(快照读)更新逻辑(当前读)小结我给你举一个例子吧。下面是一个只有两行的表的初始化语句。CREATE TABLE `t` ( `id` int(11) NOT NULL, `k` int(11) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoD......

2020-01-08 23:41:20 1849 3

原创 mysql中drop、truncate、delete的区别

一.dropDROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ... [RESTRICT | CASCADE]如:drop table t_order;会删除表的定义、所有表数据、所有触发器,但它不会删除你为该表设置的权限(需手动删除)。它是DDL语句会隐式提交事务。具体可以看官网:https://......

2020-01-07 12:48:29 676

原创 面试题:Mysql数据库对varchar类型字段用int进行查询问题

表数据是这样:CREATE TABLE `t_test` ( `id` int(11) NOT NULL, `no` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL, `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_c...

2020-01-02 21:56:41 2786 1

原创 oracle to_number 转换报无效数字问题

一般情况下to_number在处理经过to_char转换的数据后是不会报无效数字问题的,但是要是数据库里有非数字的字符会导致无效数字问题,可以参考以下代码去除非数字字符:to_number(REGEXP_REPLACE(CH,'[^-0-9]',''))其中:CH为字段, 正则表达式:[^-0-9] 代表只取数字(包括负数)...

2019-11-06 11:25:48 4344

原创 ASCII表

下表为ASCII表,方便自己查询Bin(二进制) Oct(八进制) Dec(十进制) Hex(十六进制) 缩写/字符 解释 0000 0000 0 0 00 NUT(null) 空字符 0000 0001 1 1 01 SOH(start of headline) 标题开始 0000 001...

2019-10-17 10:54:43 176

原创 从枚举类型反编译的结果探究values()方法

枚举类Explore如下:package com.study;public enum Explore { HERE,THERE;}编译:javac Explore.java反编译:javap Explore具体操作如下:反编译结果如下:public final class com.study.Explore extends java.lan...

2019-10-10 16:57:36 339

原创 MySQL/Oracle查询上一篇和下一篇sql

表结构与初始化数据如下:--表结构create table T_NEWS( ID NUMBER not null constraint T_NEWS_PK primary key, TITLE VARCHAR2(300), TURN NUMBER)/comment on column T_NEWS.TITLE is '标题'/comment on colum...

2019-09-30 15:26:41 480

原创 Oracle 的 wm_concat 和 listagg 函数的使用

1.需求:原始数据如下(建表sql在文章底部):目标:根据type进行分组,把楼栋名去重后用"/"进行拼接2.解决:方案1:使用wm_concatselect TYPE , wm_concat(NAME) NAME from T_BUILDING group by TYPE;wm_concat 默认使用的是逗号进行拼接,结果如下(此时NAME的结...

2019-09-26 10:39:02 515

原创 Lombok的@Builder反编译

lombok的@Builder实际是建造者模式的一个变种,所以在创建对象时常使用.import lombok.Builder;import lombok.ToString;@Builder@ToStringpublic class People { private String name; private String sex; private int a...

2019-08-28 13:00:46 654

原创 volatile详解

可能大家都知道volatile有两个重要作用:1.保证可见性;2.防止指令重排序。但我相信有很大一部分同学只是知道结论,却不知道为什么,下面就让我来带大家从具体的使用场景来深刻地认识volatile的作用。一.可见性的使用场景public class VolatileDemo { public boolean flag = true;//1 public stati...

2019-08-06 00:24:16 185

原创 计算机网络自顶向下方法--第八章 网络安全

. 什么是网络安全安全通信的特性机密性 仅有发送方和接收方能够理解传输报文的内容。由于窃听者可以截获报文,必须要求报文在一定程度上进行加密。 报文完整性 确保通信的内容在传输的过程中未被改变或者恶意篡改或者意外改动,需要提供报文完整性检测。 端点鉴别 发送方和接收方都应该能证实通信过程中所涉及的另一方,以确信通信的另一方具有其所声称的身份。 运行安全性2. 密码学的原则2.1 ...

2019-07-21 20:59:02 1035

原创 计算机网络自顶向下方法--第五章 链路层

数据链路层负责通过一条链路从一个节点向另一个物理链路直接相连的相邻节点传送数据报。一.差错检测与纠正技术比特级差错检测和纠正:对从一个节点发送到另一个物理上连接的邻近节点的链路层帧中的比特损伤进行检测和纠正。检测差错的3种技术:奇偶校验检验和循环冗余检测(现今计算机网络广泛应用的差错校验技术是基于CRC的)二.多路访问链路和协议MAC协议:采用分布式算法决定节点如何...

2019-07-14 23:37:47 584

原创 计算机网络自顶向下方法--第四章 网络层

一:概述1.网络层作用:将分组从发送主机移动到接收主机。2.构造网络层分组交付的方法:数据报模式、虚电路模式。3.编址4.转发和路由选择5.分组转发涉及到的技术:分组转发,网际协议(IP),网络层编址,IPv4数据报格式,网络地址转换(NAT),数据报分段,因特网控制报文协议(ICMP),IPv66.路由选择:任务:决定从发送方到接收方的好的路径。...

2019-06-23 20:47:02 1270

原创 计算机网络自顶向下方法--第三章 传输层

一.概述运输层的第一个关键功能:将网络层在两个端系统之间的交付服务扩展到运行在两个不同端系统上的应用层进程之间的交付服务。 运输层协议是在端系统中而不是在路由器中实现的。1.IP服务模型 IP:网际协议,它为主机之间提供了逻辑通信。IP的服务模型是:尽力而为交付服务,但它不做任务确保。因此IP被称为不可靠服务。每台主机至少有一个网络层地址,即IP地址。2.UDP、TCP所提供的服务...

2019-06-09 17:10:32 697

原创 计算机网络自顶向下方法--第二章 应用层

1.应用程序体系结构:客户端-服务器体系结构P2P体系结构2.进程通信:当进程运行在相同的端系统上时,它们使用进程间通讯机制互相通讯。进程间通讯的规则由端系统上的操作系统确定。当进程运行在不同的端系统上时,它们使用计算机网络交互报文而互相通信。进程通过套接字软件接口向网络发送报文和从网络接收报文。3.进程寻址IP+端口号端口号作用:用于标识一个唯一的进程。...

2019-05-26 19:43:25 1102

原创 计算机网络自顶向下方法--第一章

1.首先概述了一下什么是因特网,提到了因特协议的重要作用是:作为一个标准,使人们可以创造出协同工作的系统和产品。2.然后讲了网络边缘的一些部件。如网络接入的方式:DSL(电话线),电缆(有线电视线),光纤等。以及描述了各种物理媒体如:双绞铜线,同轴电缆,光纤,陆地无线电信道,卫星无线电信道的作用。3.最核心的是网络核心。该部分主要讲述了分组交换和电路交换以及他们的区别。分组交换:因特网...

2019-05-19 23:01:46 790

原创 CRX 4 Chrome

推荐几个比较好用的chrome插件网:https://www.crx4chrome.com/http://www.cnplugins.com/http://chromecj.com/常用的chrome开发插件:Json-Handle:http://www.cnplugins.com/devtool/json-handle/PostMan:http://www.cnp...

2019-04-20 00:43:56 4028

原创 oracle(六)-数据库对象

0.概览 对象 英文名 描述 表 table 由行和列组成,用于存储数据 视图 view 从表中抽出的逻辑上相关的数据集合 序列 sequence 提供有规律的数值,主要用于提供主键值,一般用于insert时 索引 index 提高查询效率 同义词 synonym...

2019-04-20 00:33:03 149

原创 oracle(五)-DDL创建和管理表

目录1.创建表:2.行地址 rowid3.修改表:追加新列,修改列,删除列,重命名列,重命名表5.删除表6.Oracle的回收站7.闪回删除8.显示所有表9.显示表结构1.创建表:正常创建表:create table test3 (tid number, tname varchar2(20...

2019-04-20 00:31:26 102

原创 oracle(四)-order by 排序分页重复解决

问题描述:oracle数据库orderby排序不唯一,会导致最终的数据排序是不是稳定的,表现出来的结果,就是分页时会重复显示;症状如下:第2页和第3页有重复的数据。有问题的sql:select * from ( select u.user_id user_id, u.user_name use...

2019-04-20 00:30:13 1216

原创 oracle(三)-分页排序

目录排序分页sql不排序只分页sql:总结oracle的分页不像Mysql有limit可以分页,oracle的分页需要用到oracle自带的rownum伪列进行分页。在没有排序没分页的情况下:select user_id,user_name,rownumfrom sec_users;结果如下:但如果加上了排序如根据user_id进行排序之后,rownum就会被...

2019-04-20 00:28:00 3883

原创 oracle(二)-null总结

空值定义:空值是无效的,未指定的,未知的或不可预知的值,空值不是空格或0。1.包含空值的数学表达式的值都为空值。如:selectname,12*sal+commfromemp; 其中comm为奖金,可能为null,导致整个表达式为空解决方案:用NVL函数:selectname,12*sal+NVL(comm,0) fromemp; --当为n...

2019-04-20 00:25:36 208

原创 oracle(一)-常用sql和注意点

1.字符串连接1.字符串连接用||或者用concate,但concate一次只能连接一个SELECT name||':'||age FROM "A_TEST" 结果:张三:18concate写法:group_name likeconcat(concat('%', :organName), '%')2.日期相关的函数:--查询当前时间selectsysdatef...

2019-04-20 00:24:18 237

tesseract稳定版 for windows

# OCR,即Optical Character Recognition,光学字符识别,是指通过扫描字符,然后通过其形状将其翻译成电子文本的过程。 # tesserocr是Python的一个OCR识别库,但其实是对tesseract做的一层Python API封装,所以它的核心是tesseract。 # 因此,在安装tesserocr之前,我们需要先安装tesseract。 # 1.tesseract下载 # 2.接下来,再安装tesserocr即可 pip install tesserocr pillow # 3.验证安装

2019-01-15

Capslock + for window

Capslock+是一个加强 Capslock 键的功能,以提高效率的工具。

2019-01-10

鸟哥的Linux私房菜+基础学习篇 第三版

《鸟哥的Linux私房菜:基础学习篇》是最具知名度的Linux入门书《鸟哥的Linux私房菜基础学习篇》的最新版,全面而详细地介绍了Linux操作系统。《鸟哥的Linux私房菜:基础学习篇》分为5个部分:第一部分着重说明Linux的起源及功能,如何规划和安装Linux主机;第二部分介绍Linux的文件系统、文件、目录与磁盘的管理;第三部分介绍文字模式接口shell和管理系统的好帮手shell脚本,另外还介绍了文字编辑器vi和vim的使用方法;第四部分介绍了对于系统安全非常重要的Linux账号的管理,以及主机系统与程序的管理,如查看进程、任务分配和作业管理;第五部分介绍了系统管理员(root)的管理事项,如了解系统运行状况、系统服务,针对登录文件进行解析,对系统进行备份以及核心的管理等。

2018-04-13

空空如也

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

TA关注的人

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