自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(53)
  • 资源 (16)
  • 问答 (2)
  • 收藏
  • 关注

原创 LeetCode每日一题-验证二叉搜索树

题目给定一个二叉树,判断其是否是一个有效的二叉搜索树。假设一个二叉搜索树具有如下特征:节点的左子树只包含小于当前节点的数。节点的右子树只包含大于当前节点的数。所有左子树和右子树自身必须也是二叉搜索树来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/validate-binary-search-tree分析这道题不细心的话容易踩坑,一般惯性思维都会只比较当前节点与左右子节点的值,一开始我认为这是一道简单题,快速

2021-07-27 20:23:03 92

原创 LeetCode每日一题-接雨水-执行时间击败100%的用户

题目给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。输入:height = [0,1,0,2,1,0,1,3,2,1,2,1]输出:6解释:上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水),详细见下图。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/trapping-rain-wat

2021-07-26 13:10:31 278

原创 LeetCode每日一题-滑动窗口最大值

题目给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。返回滑动窗口中的最大值。示例 1:输入:nums = [1,3,-1,-3,5,3,6,7], k = 3输出:[3,3,5,5,6,7]分析这道题先用暴力求解演练一遍对解题是有帮助的,因为它并没其它奇思妙想,都是在暴力法上加速。先过一遍暴力法的过程:窗口每向前滑动一格,剔除最左边元素后再求窗口内最大值,过程

2021-07-25 21:31:37 359

原创 spring源码解析-aop下篇

引子上一篇 spring源码解析-aop第一篇 主要是为读aop代码做技术准备, 一方面了解spring aop与aspectJ之间的关系,另一方面通过多种使用示例了解spring aop工作方式,接下来我们开始分析spring aop的代码。示例老规矩,读源码从用例断点开始,虽然spring实现aop有多种方式,但由于springboot使用越来越广泛,开发者也越来越喜欢用注解进行开发,所以我们例子也是纯注解。//创建一个被代理类,spring aop将它称作为advicepack..

2021-07-23 00:27:39 150 3

原创 spring源码解析-aop第一篇

引子上一篇spring源码解析-启动流程与循环依赖分析了spring ioc部分的源码,这一篇则分析aop源码,但aop需要先准备面向切面编程的相关知识,否则学起来会很吃力,所以aop第一篇是先看一下spring aop用到的面向切面的相关知识,为下篇读源码做准备。aspectJ与spring aop区别spring核心包里引入aspectJ,而aspectJ是一个完整的aop框架,那是不是spring直接使用aspectJ来实现aop相关功能呢?我们先简单了解一下aspectJ..

2021-07-22 20:20:58 170 1

原创 spring ioc源码解析-启动流程与循环依赖

使用示例读源码先从最简单的使用示例入手,然后一层一层往下探索,下面先写一个典型的spring小例子,来看一下它的入口与使用方法://创建User类public class User { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; }}

2021-07-22 20:19:48 132 1

原创 Caffeine源码解读-缓存过期淘汰相关算法

引子:上一篇通过使用示例讲解了Caffeine的框架部分 Caffeine源码解读-架构篇,这一篇继续通过示例讲解缓存过期相关算法部分,来看看它与guava cache有什么不一样的设计。使用示例:继续使用相同的例子,不过是从PUT、GET开始说起,了解了它的工作流程自然会知道它的缓存过期逻辑://初始化 Cache<String, String> cache = Caffeine.newBuilder().maximumSize(100) .expireA

2021-07-11 18:09:18 3092

原创 flink1.12通过sql实时写redis

插件名称:flink-connector-redis插件地址:https://github.com/jeff-zou/flink-connector-redis.git项目介绍基于bahir-flink二次开发,使它支持SQL直接定义写入redis,用户通过DDL指定自己需要保存的字段。使用方法:命令行执行 mvn package -DskipTests=true打包后,将生成的包flink-connector-redis_2.12-1.11.1.jar引入flink lib中即可,无需

2021-07-07 16:59:46 1746

原创 LeetCode每日一题-三数之和

题目:给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。注意:答案中不可以包含重复的三元组。示例 1:输入:nums = [-1,0,1,2,-1,-4]输出:[[-1,-1,2],[-1,0,1]]示例 2:输入:nums = []输出:[]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/3sum

2021-07-05 20:34:41 136

原创 LeetCode每日一题-三数之和

题目:给你一个包含 n 个整数的数组nums,判断nums中是否存在三个元素 a,b,c ,使得a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。注意:答案中不可以包含重复的三元组。示例 1:输入:nums = [-1,0,1,2,-1,-4]输出:[[-1,-1,2],[-1,0,1]]示例 2:输入:nums = []输出:[]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/3sum...

2021-07-05 20:27:05 132

原创 mybatis insert后返回主键ID实现方法及源码分析

引子:mybatis这类ORM在往数据库insert对象后,会顺带将数据库中的自增主键值赋值给对象的id,这个功能给我们的开发带来了很多方便,那它是怎么实现的呢?源码分析:利用mybatis实现这一功能非常简单,网络上有一大把资料,今天我们主要看它是怎么实现的?通过断点insert可以跟踪到这个类:PreparedStatementHandler.java的update方法。public int update(Statement statement) throws SQLExcepti

2021-07-02 13:28:18 1131 2

原创 LeetCode每日一题-盛最多水的容器

题目:给你 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器。示例 2:输入:height = [1,1]输出:1示例 3:输入:height = [4,3,2,1,4]输出:16来源:力扣(LeetCode)链接:https://leetcod

2021-07-01 22:52:51 149 1

原创 flink 1.11 基于SQL向redis更新多维度状态(多字段)

在实时计算平台接入业务过程中,经常遇到这样一个问题: 第一个任务获得的最新状态需要提供给后续一个或者多个任务使用。解决这个问题有很多方法,将状态序列化到消息队列中或者持久化到数据库中,但这些方法要么实时性不足要么使用上有oom问题,当这些最新状态数量达到亿级或者更大时,有比较合适一点的方法来解决这个问题吗? 我的解决方案是将状态存入redis-cluster中,这样在容量上及速度上满足了业务的需求,当然容量大小还是有限制的,不过现有大部分业务需求可以完全满足,当然这个方案还是有几个关键问题的,具体...

2020-11-15 23:32:25 1426 2

数据库中间件设计与实现

数据库中间件设计与实现

2017-05-12

MYSQL安装步骤-5.7.17

centos 7.1下编译安装mysql 5.7.17

2017-03-16

centos7下编译安装mysql5.7.17

centos7下编译安装mysql5.7.17

2017-02-18

U3D基础中文教程.pdf

U3D 基础中文教程.pdf

2014-02-09

Unity3D_V3.X中文快速入门教程

Unity3D_V3.X中文快速入门教程

2014-02-09

NGUI Next-Gen UI 3.0.7 f1

NGUI Next-Gen UI 3.0.7 f1

2014-02-09

NGUI Next-Gen UI 3.0.8 f7

NGUI Next-Gen UI 3.0.8 f7

2014-01-21

Keepalived+HAProxy配置高可用负载均衡,解决keepalived无法安装问题

Keepalived+HAProxy配置高可用负载均衡,解决keepalived无法安装问题,公司项目总结,经过压力测试。

2012-03-15

Linux下TOMCAT SSL支持设置

linux环境中设置tomcat支持SSL,使用keytool生成安全密钥。前段时间客户要求增加项目安全性,通过实践与网络学习,总结文档与大家分享。

2012-02-15

Oracle11g安装文档_SUSE_11_server_sp1

这次因项目需要,前几天我和另一同事在客户机房安装了SUSE 11以及ORCLE 11G. 现将ORACLE安装所需的注意事项与步骤总结成文档. 安装ORACLE时需要在内存及性能上做一些设置,这些在文档里都有提到.虽然网络上可以查到已有的配置,但那些大多是网友根据自己实际情况设置或者直接拷贝他人,没有说明为什么那样设置.现结合官方文档及安装实践以及一些网友经验,总结成文档供大家分享,

2011-09-15

Xerces-J-bin.2.11.0.zip

最新Xerces JAVA包。因官方下载慢,所以弄下来方便大家。

2011-01-11

MLDN (我的智囊团)源代码

个人已在本地运行成功。我的智囊团》,整个项目分为:问题模块、用户模块、管理员模块、栏目模块等。 为了尽可能还原真实的项目开发,在讲解的过程之中为读者重点强调了在项目开发中可能出现的各种问题。   在项目讲解中为了让用户更好的理解SSH(Struts + Spring + Hibernate)技术,所以对于每一个模块都有详细的操作及开发过程,在项目代码中为了提高项目的真实性,加入了在线编辑器、MD5验证、联动菜单等开发中的常见组件。

2009-04-26

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

TA关注的人

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