自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

zzz

因人成事,因人废事

  • 博客(61)
  • 资源 (2)
  • 收藏
  • 关注

原创 源码原理:关于AOP切面机制的那些底层原理,看这篇就够了

AOP(Aspect Orient Programming),一般称为面向切面编程,作为面向对象的一种补充,用于处理系统中分布于各个模块的横切关注点,比如事务管理、日志、缓存等等。AOP实现的关键在于AOP框架自动创建的AOP代理,AOP代理主要分为静态代理和动态代理,静态代理的代表为AspectJ;而动态代理则以Spring AOP为代表。静态代理是编译期实现,动态代理是运行期实现,可想而知前者...

2020-06-06 23:40:48 772

原创 flag!flag!flag!flag!flag!flag!flag!flag!flag!flag!flag!flag!

1、Java基础,熟练使用集合类,JCU并发包,多线程管理;数据库基础(CRUD),事务特性和隔离级别;常见设计模式2、Linux基本操作和相关指令,网络通信协议:Http,Socket3、数据结构4、开源框架5、前端基础6、Web安全:sql注入,XSS、CSRF的原理和规范7、JVM内存模型和性能优化...

2020-05-17 19:50:56 348

原创 web系统api接口鉴权怎么做实现?一文带你看看我是怎么做的!

前后端分离开发基于api调用,或者在api系统接口开发中,api接口调用的合法性不可避免,参加高校微信小程序大赛,需要开发后台,暴露接口给前端小程序,在此过程中,为了保证接口调用的合法性以及处于安全性考虑,需要对于每个api接口调用合法性进行检验。0x00 基本思路对于每个请求都需要进行参数校验,而每个api接口需要的参数都不一致,所以无法进行统一性校验。由此,想到拦截器,采用前置拦截器对...

2020-04-25 18:52:44 2369

原创 Dubbo要怎么基础使用入门,一起看看这篇文章把!

0x00 概述Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。简单的说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需要用的,只有在分布式的时候,才有dubbo这样的分布式服务框架的需求,并且本质上是个服务调用的东东,说白了就是个远程服务调用的分布式框架(告别Web Service模式中的WSdl,以服务者与消费者的方式在du...

2020-04-24 23:25:22 193

原创 源码解析:Oops ! JDK源码---集合类(一)之ArrayList源码

ArrayList是基于数组实现的,并且支持自动扩容,相对于普通数组而言,由于他自动扩容的的特性,在日常开发过程中,使用的十分多。

2020-04-24 13:32:04 214

原创 Mybatis-Pagehelper参数supportMethodsArguments引起的血案

Mybatis-Pagehelper配置参数supportMethodsArguments引起的血案

2023-09-06 11:48:12 480

原创 Apache shardingSphere(5.x)源码解析之readwrite-splitting源码

概述读写分离功能作为shardingsphere的可插拔能力之一包结构分析api:对外暴露的接口,包括算法spi、配置的对象类core:核心层,包含默认提供的读分配的负载均衡的算法、以及SQL改写,选取数据源的核心逻辑distSQL:distsql解析以及管理的相关的流程spring:spring-boot-starter以及spring-namespace相关的实现。具体实现在api层面,对外提供的主要是配置对象以及,读的负载均衡。在这里,官方提供了两种方式的负载。1、ROUND_

2021-11-13 18:56:04 1262

原创 Apache ShardingSphere项目概览

注意:项目结构会进行调整,此结构整理会进行更新,目前基于5.0 beta版本shardingsphere-agentJava探针设计、bytebuddy使用、可观察性实战shardingsphere-db-protocol数据库协议实现shardingsphere-distribution

2021-09-03 09:25:00 434

原创 Maven打包后二进制文件文件大小变化,无法正常使用

问题分析在项目的resource文件夹中,配置相关的二进制配置文件,使用maven 打包编译后,在机器是部署提示找不到相关的配置文件,查看编译后的文件大小有变化,但是找不到原因。使用非resource文件夹下的文件项目可以正常启动。怀疑是maven 打包的问题。问题解决经过查询分析,发现maven中的fliter确实会对二进制文件进行特殊的处理.需要配置相关的过滤条件,配置如下:<plugin> <groupId>org.apache.maven.plugins</g

2020-12-20 19:44:59 1256

原创 Java基础之Java类的生命周期

加载:将类信息加载至方法区中,在堆中实例一个Class对象。根据类的全路径加载Class文件,从jar读取class文件,根据一定的规则实时生成,如动态代理, 根据相关的类自动生成代理类。不是jvm启动时就加载,而是在使用时触发加载。主要加载场景如下:a. new 一个类b. 调用类的静态方法,以及读取或者修改一个类的静态字段的时候(非常量)c. 该类为程序的入口d. 类反射时有上述行为。链接:加载和链接一般交叉进行。a. 验证:字节码是否合法,方法和字段名称是否重复等b. 准备:静态变.

2020-10-11 16:42:48 177

原创 源码解析:Oops ! JDK源码---集合类(二)之LinkedList源码

linkedList是链表实现的集合,元素有序可以重复。

2020-08-02 19:49:57 142

原创 算法学习:leetcode 1 two-sum 两数之和之go语言实现

0x00 题干Given an array of integers, return indices of the two numbers such that they add up to a specific target.You may assume that each input would have exactly one solution, and you may not use the same element twice.Example:Given nums = [2, 7, 11, 1

2020-06-11 17:56:00 263

原创 问题解决:java.lang.IllegalArgumentException: Could not obtain required identifier from entity看看怎么解决把~

0x00 概述在项目开发中,采用Mongo存储,使用MongoRepository进行数据查询,数据库对应的实体如下:public class Test{ private Object o1; private Object o2;}0x01 问题现象在业务查询中,数据查询正常,但是调delete方法时报了如下所示的错误:java.lang.IllegalArgum...

2020-05-03 19:17:41 2197 2

原创 【PAT】1031 查验身份证 (15 分)

1031查验身份证(15 分)一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。校验码的计算规则如下:首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};然后将计算的和对11取模得到值Z;最后按照以下关系对应Z值与校验码M的值:Z:0 1 2 3 4 5 6 7 8 9 10M:1 0 X 9 ...

2020-04-24 23:27:38 1014

原创 【牛客网】Java开发校招面试考点汇总--答案汇总

作者:牛妹链接:https://www.nowcoder.com/discuss/161991来源:牛客网一、JavaSE部分❤1、Java基础1、为什么重写equals还要重写hashcode答:(1)两个对象相等,hashCode则一定相等;(2)hashCode相等,两个对象不一定相等;为了提高程序的效率,先进行hashcode的比较,如果不同,不必要进equals的...

2020-04-24 23:27:17 625

转载 想学习如何利用Python执行shellcode,过来看看这篇吧~

0x00 利用msf生成shellcode1.何为msfMetasploit是一个免费的、可下载的框架,通过它可以很容易地获取、开发并对计算机软件漏洞实施攻击。它本身附带数百个已知软件漏洞的专业级漏洞攻击工具。 想知道更多内容请自行百度~2.何为shellcodeshellcode是一段用于利用软件漏洞而执行的代码,shellcode为16进制的机器码,因为经常让攻击者获得shell而得名...

2020-04-24 13:44:22 1546

原创 问题解决: @CreatedDate 注解失效问题, 看这篇就够了!

0x00 概述在业务开发中,接手了一个前人开发的项目,项目中有一个实体类,对接的Mongo 在这个类中使用的是@Data注解以及@NoArgsConstructor 注解,在开发过程中,有一个createTime字段使用的是@CreatedDate 注解声明创建时间.并且该类中还有一个构造方法如下:public RetryEntity(String id, RetryType retryTyp...

2020-04-24 12:22:08 11713 8

原创 问题解决:mongotemplate比较数据库中的字符串数值 query & Criteria

0x00 问题描述今天接到一个bug发现范围查询失效了,经过简单的排查发现在业务开始的时候,将数据库的dao类中的取现字段定义成了string 导致存入mongo时为string,而在写查询时,却未在意,导致gte和lte无效。0x01 解决方案经过查询,可以找到mongo中有相关的查询如下db.collectionName.find({"$where":"this.field>xx...

2020-04-07 21:23:51 1840

原创 疯狂学习算法之算法刷题题解之 leetcode 面试题62 圆圈中最后剩下的数字 easy 约瑟夫环问题

0x00 题干0,1,n-1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字。求出这个圆圈里剩下的最后一个数字。例如,0、1、2、3、4这5个数字组成一个圆圈,从数字0开始每次删除第3个数字,则删除的前4个数字依次是2、0、4、1,因此最后剩下的数字是3。示例 1:输入: n = 5, m = 3输出: 3示例 2:输入: n = 10, m = 17输出: 2...

2020-03-30 22:50:00 158

原创 疯狂学习算法之算法刷题题解之 leetcode 820 单词的压缩编码 medium

0x00 题干给定一个单词列表,我们将这个列表编码成一个索引字符串 S 与一个索引列表 A。例如,如果这个列表是 [“time”, “me”, “bell”],我们就可以将其表示为 S = “time#bell#” 和 indexes = [0, 2, 5]。对于每一个索引,我们可以通过从字符串 S 中索引的位置开始读取字符串,直到 “#” 结束,来恢复我们之前的单词列表。那么成功对给定单...

2020-03-28 22:10:07 206

原创 疯狂学习算法之算法刷题题解之 leetcode 100 相同的树 easy

0x00 题干给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。示例 1:输入: 1 1/ \ / \2 3 2 3 [1,2,3], [1,2,3]输出: true示例 2:输入: 1 1/ \...

2020-03-27 21:12:36 133

原创 问题解决:fastjson 迁移至gson 反序列化错误:org.springframework.http.converter.HttpMessageNotWritableException

0x00 前言在工作开发总,有一个需求需要将项目中的fastjson迁移至gson,在迁移过程中发现了一个奇葩的bug,如下:org.springframework.http.converter.HttpMessageNotWritableException: Could not write JSON: (was java.lang.IllegalStateException); neste...

2020-03-27 11:36:26 1899 2

原创 一篇文章教你服务器OOM后如何快速定位处理问题

0x0 说明遇到服务器实例报OOM错误时 尽量按以下步骤保留现场信息 方便后续定位0x1 获取进程号jps -v | grep 关键字0x2 创建事故现场文件夹mkdir {pid}0x3 查看磁盘空间是否打满df -h >{pid}/df_h.txt0x4 查看内存空间是否打满free -m >{pid}/free_m.txt0x5 查看ioiostat...

2020-03-26 23:28:15 1042

原创 mongodb神奇操作之使用aggregate实现分组求和查询

mongodb介绍MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。(菜鸟教程)链接工具robo3t分组求和查询db.getCollection("db_name").aggregate({"$mat...

2020-03-20 09:05:55 1811

原创 mybatis运行报错java.lang.UnsupportedOperationException

这里写自定义目录标题问题描述解决办法关注http://totalo.top 更多源码、更多问题解决办法、更多积累,btw,点广告~问题描述mybaits运行报如下错误:Caused by: java.lang.UnsupportedOperationException at org.apache.ibatis.reflection.wrapper.CollectionWrapper....

2019-09-11 15:13:45 723

原创 Spring Boot 自定义控制台输出banner

今天在工作中发现公司原始项目中控制台输出不是SpringBoot默认的。如下图: 心中不免产生疑惑,那这个图片是哪里来的呢?于是开始了debug ,对,没错就是debug(ps:我以为能找到加载的),但是Spring Boot逐步debug很难找。虽然后续找到了,但是看的眼花缭乱。实现方式在对应项目的resources目录下建一个banner.txt文件,将对应的图标存入里面即可。Spri...

2019-08-09 12:25:51 1018

原创 【牛客网】Java开发校招面试考点汇总--答案汇总

title: Java开发校招面试考点汇总归纳(持续更新中…)date: 2019-05-13 13:09:08categories:面试tags:JavaInterview题目来源见下方,答案整理为博主收集于互联网。作者:牛妹链接:https://www.nowcoder.com/discuss/161991来源:牛客网本文首发于csdn,同步发布在本人博客:to...

2019-06-12 19:06:32 1596

原创 记一次GraphQL使用实战

首发个人博客:https://totalo.top/20190611/startGraphQL/关于GraphQL(官方API: https://graphql.cn/learn/)GraphQL 既是一种用于 API 的查询语言也是一个满足你数据查询的运行时。 GraphQL 对你的 API 中的数据提供了一套易于理解的完整描述,使得客户端能够准确地获得它需要的数据,而且没有任何冗余,也让...

2019-06-12 18:55:52 1142

原创 【快手笔试题解】T1 - 80% T2-100% T3-100%

//测试样例没过 样例给的树没看明白//10,5,15,3,7,13,18import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.ArrayList;import java.util.List;public class T...

2019-04-01 07:46:14 273

原创 【PAT】1036 跟奥巴马一起编程 (15 分)

更多代码见github:https://github.com/totalo1036跟奥巴马一起编程(15分)美国总统奥巴马不仅呼吁所有人都学习编程,甚至以身作则编写代码,成为美国历史上首位编写计算机代码的总统。2014 年底,为庆祝“计算机科学教育周”正式启动,奥巴马编写了很简单的计算机代码:在屏幕上画一个正方形。现在你也跟他一起画吧!输入格式:输入在一行中给出正方形边...

2019-03-25 21:52:17 249

原创 【whl文件安装】Could not find a version that satisfies the requirement basemap (from version:)

直接使用pip 安装提示没有合适的包,适合版本,将python环境进行修改也不行,考虑下载whl文件进行安装。 解决问题的要点如下:1、需要和版本相对应。2、修改相关的版本...

2019-01-26 23:42:56 4639 4

原创 【PAT】1033 旧键盘打字 (20 分)

1033 旧键盘打字 (20 分)旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现。现在给出应该输入的一段文字、以及坏掉的那些键,打出的结果文字会是怎样?输入格式:输入在 2 行中分别给出坏掉的那些键、以及应该输入的文字。其中对应英文字母的坏键以大写给出;每段文字是不超过 10​5​​个字符的串。可用的字符包括字母 [a-z, A-Z]、数字 0-9、以及下划线 _(代...

2019-01-12 18:02:55 746

原创 【PAT】1032 挖掘机技术哪家强 (20 分)

1032 挖掘机技术哪家强 (20 分)为了用事实说明挖掘机技术到底哪家强,PAT 组织了一场挖掘机技能大赛。现请你根据比赛结果统计出技术最强的那个学校。输入格式:输入在第 1 行给出不超过 10​5​​ 的正整数 N,即参赛人数。随后 N 行,每行给出一位参赛者的信息和成绩,包括其所代表的学校的编号(从 1 开始连续编号)、及其比赛成绩(百分制),中间以空格分隔。输出格式:在...

2019-01-10 09:53:46 937 1

原创 【PAT】1030 完美数列 (25 分)

1030 完美数列 (25 分)给定一个正整数数列,和正整数 p,设这个数列中的最大值是 M,最小值是 m,如果 M≤mp,则称这个数列是完美数列。现在给定参数 p 和一些正整数,请你从中选择尽可能多的数构成一个完美数列。输入格式:输入第一行给出两个正整数 N 和 p,其中 N(≤10​5​​)是输入的正整数的个数,p(≤10​9​​)是给定的参数。第二行给出 N 个正整数,每个数...

2019-01-07 21:18:23 1490 1

原创 【PAT】1029 旧键盘 (20 分)

1029 旧键盘 (20 分)旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现。现在给出应该输入的一段文字、以及实际被输入的文字,请你列出肯定坏掉的那些键。输入格式:输入在 2 行中分别给出应该输入的文字、以及实际被输入的文字。每段文字是不超过 80 个字符的串,由字母 A-Z(包括大、小写)、数字 0-9、以及下划线 _(代表空格)组成。题目保证 2 个字符串均非空。...

2019-01-06 14:30:37 1539

原创 GoLand创建go文件,运行时产生CreateProcess failed with error 216:错误

刚刚安装了GoLand,尝试着写第一个go程序,但是默认包报错。如下:  经过探索,发现,go的默认的包名需要为main,修改为main即可。package mainimport "fmt"func main() { fmt.Println("Hello word")}  ...

2019-01-05 20:02:06 4327 2

原创 【PAT】1028 人口普查 (20 分)

1028 人口普查 (20 分)某城镇进行人口普查,得到了全体居民的生日。现请你写个程序,找出镇上最年长和最年轻的人。这里确保每个输入的日期都是合法的,但不一定是合理的——假设已知镇上没有超过 200 岁的老人,而今天是 2014 年 9 月 6 日,所以超过 200 岁的生日和未出生的生日都是不合理的,应该被过滤掉。输入格式:输入在第一行给出正整数 N,取值在(0,10​5​​]...

2019-01-05 19:35:15 1695

原创 【PAT】1019 数字黑洞 (20 分)

1019 数字黑洞 (20 分)给定任一个各位数字不完全相同的 4 位正整数,如果我们先把 4 个数字按非递增排序,再按非递减排序,然后用第 1 个数字减第 2 个数字,将得到一个新的数字。一直重复这样做,我们很快会停在有“数字黑洞”之称的 6174,这个神奇的数字也叫 Kaprekar 常数。例如,我们从6767开始,将得到7766 - 6677 = 10899810 - 018...

2019-01-04 00:04:02 2016

原创 【PAT】1020 月饼 (25 分)

1020 月饼 (25 分)月饼是中国人在中秋佳节时吃的一种传统食品,不同地区有许多不同风味的月饼。现给定所有种类月饼的库存量、总售价、以及市场的最大需求量,请你计算可以获得的最大收益是多少。注意:销售时允许取出一部分库存。样例给出的情形是这样的:假如我们有 3 种月饼,其库存量分别为 18、15、10 万吨,总售价分别为 75、72、45 亿元。如果市场的最大需求量只有 20 万吨,那么...

2019-01-04 00:03:39 1809

原创 【PAT】1021 个位数统计 (15 分)

1021 个位数统计 (15 分)给定一个 k 位整数 N=d​k−1​​10​k−1​​+⋯+d​1​​10​1​​+d​0​​ (0≤d​i​​≤9, i=0,⋯,k−1, d​k−1​​&gt;0),请编写程序统计每种不同的个位数字出现的次数。例如:给定 N=100311,则有 2 个 0,3 个 1,和 1 个 3。输入格式:每个输入包含 1 个测试用例,即一个不超过 1000...

2019-01-04 00:03:17 1983

多模块化的SSM超市管理系统

多模快化的SSM框架。分模块进行框架的搭建,采用SSM教材上的超市管理系统的为例子

2019-01-04

idea快捷键总结

在日常开发过程中,对于Idea开发工具的一个总结,希望能帮助大家

2019-01-04

空空如也

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

TA关注的人

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