
Algorithms
carl-zhao
I never grew up, but i never stop growing.
展开
-
Netty 源码分析之 Java NIO
Java NIO(新的IO)是Java(来自Java 1.4)的可选IO API,意味着可选标准Java IO和Java连网API。Java NIO提供了一种不同于标准IO API的IO工作方式。为什么会出现 Java NIO 呢?下面我们来比较一下 Java IO 也 JDK 1.4 之后出现的 Java NIO 有什么区别.1、IO 与 NIO下面就是 IO 与 NIO 的对比:IONIO面向流面向缓冲阻塞 IO非阻塞 IO无选择器1.1 面向流与面向缓原创 2020-09-09 21:36:04 · 327 阅读 · 1 评论 -
Quartz 源码分析
``Quartz`` 是运用最广的任务调度框架,它最核心的组成部分是 ``Scheduler``、``Trigger``、``JobDetail``。在 ``Scheduler`` 初始化的时候会启动线程``QuartzSchedulerThread``,当``Scheduler`` 启动的时候,也就是调用 ``Scheduler#start`` 方法,就会从 ``JobStore`` 里拿到最近需要触发的``Trigger``,以线程等待的方式等到 `` trigger`` 触发时间点,之后就是执行原创 2020-08-15 11:28:09 · 1437 阅读 · 0 评论 -
系统日志中敏感字段掩码处理
做为金融业务开发,很多接口都需要使用到用户信息,而在用户信息当中难免会有一些敏感字段,比如:用户姓名,银行卡号等等。所以在用户敏感信息保存以及日志打印的时候就不能把这些敏感信息明文的保存起来。对于数据库保存用户敏感信息的时候,一般系统中会有一个加/解密的系统。当需要保存用户敏感信息的时候会把用户信息进行加密,然后保存到数据库当中。原创 2020-05-28 08:24:00 · 4640 阅读 · 3 评论 -
分库分表后,测试人员如何面对多库多表中数据
最近工作的重心是容量规划,当系统数据量上来之后。对系统就需要使用分库分表了,分库分表选型的是 apache sharding jdbc,他是通过客户端来对数据源进行分库分表的。1、遇到问题但是在分库分表之后,不管是开发还是测试,当遇到问题需要查询数据库的时候面对多个库多个表那就比较痛苦了。如何透明化分库分表所带来的影响,让使用方尽量像使用一个数据库一样使用水平分片之后的数据库集群。我们需要解决这个问题。我们在开发的时候使用了 ShardingSphere 的客户端中间件,sharding-jdbc原创 2020-05-25 00:05:34 · 1506 阅读 · 0 评论 -
apache dubbo 源码分析系列汇总
Dubbo(读音[ˈdʌbəʊ])是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 Spring框架无缝集成。后面捐献给了知名的开源社区 apache。Dubbo是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。1、dubbo 架构以下是 du...原创 2020-03-27 23:06:03 · 2157 阅读 · 0 评论 -
二分查找 -- 代码之美
二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以上过程,直到找到满足条件的记录,使查找成功,或直到子表不存在为止,此时查找不成功。原创 2016-06-05 22:14:06 · 1355 阅读 · 0 评论 -
内存递归生成树形结构
我们常常在数据库中存在这样的数据,就是id,parent_id.但是我们在页面显示的时候通常需要展现树形结构。在我的项目中我看到小伙伴是用递归查找数据库来生成树的,这样就太恐怖了。IO操作很耗费资源的,我们优化项目减少IO操作就是常用的一种手段。原创 2016-07-06 21:44:10 · 5244 阅读 · 4 评论