随笔分类 -  java

1 2 3 4 5 ··· 9 下一页
JAVA 转型
摘要:我们在使用数据库进行查询时,很多时候会用到分页展示功能,因此除了像mybatis这样的完善的orm框架之外,还有pagehelper这样的插件帮助减轻我们的工作。 pagehelper的实现方式是,不需要我们去编写分页代码,只需要调用一个分页方法,出来的结果就是经过分页处理的。一来,我们的xml中的 阅读全文
posted @ 2022-11-27 15:54 阿牛20 阅读(789) 评论(0) 推荐(0) 编辑
摘要:数据库的重要性和通用性都不用说了,什么sql的通用性,sql优化之类的也不必说了,咱们今天来聊聊另一个有意思的话题:如何取一个筛选的反面案例。 1. 举几个正反案例的例子 为了让大家理解我们的假设场景,什么叫做正反案例?比如: 0. 正向案例为:取出年龄为空的用户,那么反面案例为:取出年龄不为空的用 阅读全文
posted @ 2022-10-23 18:59 阿牛20 阅读(2401) 评论(1) 推荐(3) 编辑
摘要:在之前的文章中,我们有说过bitmap,bitmap在很多场景可以应用,比如黑白名单,快速判定,登录情况等等。总之,bitmap是以其高性能出名。其基本原理是一位存储一个标识,其他衍生知道咱就不说了,而redis就是以这种原生格式存储的。 实际上,redis是基于string的数据结构实现了bitm 阅读全文
posted @ 2022-10-15 21:35 阿牛20 阅读(1030) 评论(0) 推荐(0) 编辑
摘要:在网络请求时,总会有各种异常情况出现,我们需要提前处理这种情况。在完善的rpc组件dubbo中,自然是不会少了这一层东西的。我们只需要通过一些简单的配置就可以达到超时限制的作用了。 dubbo的设计理念是,客户端控制优先,服务端控制兜底。 1. 超时机制的实现思路 要想实现超时,一般有两个思路。一个 阅读全文
posted @ 2022-07-09 13:53 阿牛20 阅读(4460) 评论(2) 推荐(1) 编辑
摘要:现实场景往往是这样,我们应对一个需求,很快就会有一个处理方法了,然后根据需求做了一个还不错的实现。因为实现了功能,业务很happy,老板很开心,all the world is beatiful. 但随着公司的发展,有人实现了一套底层的标准组件,按要求你必须要接入他那个,他的功能与你类似,但你必须要 阅读全文
posted @ 2022-06-26 11:32 阿牛20 阅读(929) 评论(0) 推荐(1) 编辑
摘要:bitmap的表象意义是,使用一个01标识位来表示是否的状态,可以达到节省空间和高效判定的效果。在我们的实际工作中,也有着许多的应用场景,相信了解bitmap定会给你带来一些额外的收获。 1. bitmap使用场景说明 比如,我想记录某用户某天是否登录过,我们有很多做法。简单的,只要用户登录,就在d 阅读全文
posted @ 2022-06-19 16:01 阿牛20 阅读(2067) 评论(0) 推荐(0) 编辑
摘要:如题:请求出两个字符串的差异部分,并以不同的颜色区分显示到浏览器上。 1. 解题思路 1. 找出两字符串中相同的部分,标记; 2. 找出两字符串中不同的部分,标记; 3. 尽可能长的匹配相同部分; 4. 尽可能少的使用复杂度(所有算法的重要目标); 2. 算法实现 算法实现如下:(js实现) <!D 阅读全文
posted @ 2022-04-06 22:01 阿牛20 阅读(358) 评论(0) 推荐(0) 编辑
摘要:wait/notify 机制是解决生产者消费者问题的良药。它的核心逻辑是基于条件变量的锁机制处理。所以,它们到底是什么关系?wait()时是否需要持有锁? notify()是否需要持有锁?先说答案:都需要持有锁。 wait需要持有锁的原因是,你肯定需要知道在哪个对象上进行等待,如果不持有锁,将无法做 阅读全文
posted @ 2022-03-28 06:08 阿牛20 阅读(1553) 评论(0) 推荐(1) 编辑
摘要:我们都用过消息中间件,它的作用自不必多说。但对于消费者却一直有一些权衡,就是使用push,还是pull模式的问题,这当然是各有优劣。当然,这并不是本文想讨论的问题。我们想在不使用长连接的情意下,如何实现实时的消息消费,而不至于让server端压力过大。大体上来说,这是一种主动拉取pull的方式。具体 阅读全文
posted @ 2022-03-24 16:51 阿牛20 阅读(367) 评论(0) 推荐(0) 编辑
摘要:我们知道sql执行是一个复杂的过程,从sql到逻辑计划,到物理计划,规则重组,优化,执行引擎,都是很复杂的。尤其是优化一节,更是内容繁多。那么,是否我们本篇要来讨论这个问题呢?答案是否定的,我们只特定场景的特定优化问题。 1. 应用场景描述 应用场景是:我们提供一个功能,允许用户从提供的字段列表中, 阅读全文
posted @ 2021-12-26 12:32 阿牛20 阅读(772) 评论(1) 推荐(3) 编辑
摘要:语法解析有个核心目标,那就是需要构建抽象语法树。虽然说语法解析框架可以很容易的识别出各节点的结构,但还需要我们按照自行需求,转换成期望的树结构,才能够方便使用。 基本上,所有的表达式,都会进行嵌套组合,从而才能够发挥其强大的作用。但,往往我们在做解析的时候,又是线性的解析。所以,最初,我们能得到的必 阅读全文
posted @ 2021-08-29 17:01 阿牛20 阅读(472) 评论(0) 推荐(0) 编辑
摘要:是一个动态数据管理框架。 它包含许多组成典型数据库管理系统的部分,但省略了存储原语。它提供了行业标准的SQL解析器和验证器,具有可插入规则和成本函数的可自定义优化器,逻辑和物理代数运算符,从SQL到代数(以及相反)的各种转换。 以上是官方描述,用大白话描述就是,calcite实现了一套标准的sql解 阅读全文
posted @ 2021-08-08 17:21 阿牛20 阅读(1634) 评论(0) 推荐(0) 编辑
摘要:用例:有N个文件,每个文件只有一列主键,每个文件代表一种属性。即当如PRI1主键在A文件中,说明PRI1具有A属性。这种场景,一般用于数据的筛选,比如需要既有属性A又有属性B的主键有哪些?就是这类场景。 如何处理该场景? 1. 解题思路 如果抛却如题所说文件限制,那我们如何解决? 比如,我们可以将每 阅读全文
posted @ 2021-06-29 15:38 阿牛20 阅读(329) 评论(0) 推荐(0) 编辑
摘要:害,又是一个炒冷饭的时间。fork/join是在jdk1.7中出现的一个并发工作包,其特点是可以将一个大的任务拆分成多个子任务进行并行处理,最后将子任务结果合并成最后的计算结果,并进行输出。从而达到多线程分发任务,达到高效处理的目的。 1. 关于fork/join的一点想法 以上说法,也许大家没什么 阅读全文
posted @ 2021-06-28 10:41 阿牛20 阅读(1199) 评论(0) 推荐(0) 编辑
摘要:我们知道,当我们对es发起search请求或其他操作时,往往都是随机选择一个coordinator发起请求。而这请求,可能是该节点能处理,也可能是该节点不能处理的,也可能是需要多节点共同处理的,可以说是情况比较复杂。 所以,coordinator的重要工作是,做请求分发与结果收集。那么,如何高性能和 阅读全文
posted @ 2021-06-26 06:45 阿牛20 阅读(796) 评论(0) 推荐(0) 编辑
摘要:用例:有一段sql语句,我们需要从中截取出所有字段部分,以便进行后续的类型推断或者别名字段抽取定义,请给出此解析方法。 想来很简单吧,因为 sql 中的字段列表,使用方式有限,比如 a as b, a, a b... 1. 解题思路 如果不想做复杂处理,最容易想到的,就是直接用某个特征做分割即可。比 阅读全文
posted @ 2021-06-21 09:58 阿牛20 阅读(1490) 评论(4) 推荐(1) 编辑
摘要:java的一大核心特性,即是自动内存回收。这让一些人从繁琐的内存管理中解脱出来,但对大部分人来说,貌似这太理所当然了。因为现在市场上的语言,几乎都已经没有了还需要自己去管理内存这事。大家似乎都以为,语言不就应该干这事吗。 其实在我们现在的编程语言中,从某种角度上,大致可以分为多进程并发模型和多线程并 阅读全文
posted @ 2021-06-14 21:03 阿牛20 阅读(442) 评论(0) 推荐(0) 编辑
摘要:害,别误会,我这里说的stream不是流式编程,不是大数据处理框架。我这里说的是stream指的是jdk中的一个开发工具包stream. 该工具包在jdk8中出现,可以说已经是冷饭了,为何还要你说?只因各家一言,不算得自家理解,如若有空,何多听一版又何妨。 本篇主要从几个方面讲讲:1. 我们常见的s 阅读全文
posted @ 2021-06-12 22:49 阿牛20 阅读(837) 评论(3) 推荐(1) 编辑
摘要:上一篇文章中,我们看了get在es的实现过程,虽只是一个简单的单条查询,但看起来实现却非常之复杂。纠其原因,是我们围绕了太多外围的东西讲了,而其核心则无外乎三点:1. 定义id对应的机器节点; 2. 查找真正的docId; 3. 查找docId对应的field信息; 本篇,我们再看另一个es的重要功 阅读全文
posted @ 2021-06-05 15:24 阿牛20 阅读(613) 评论(0) 推荐(0) 编辑
摘要:前面讲的都是些比较大的东西,即框架层面的东西。今天咱们来个轻松点的,只讲一个点:如题,get单条记录的es查询实现。 1. get语义说明 es中要实现get的查询,直接就是一个url请求即可: curl http://localhost:9200/test/job/1 get是用于搜索单条es的数 阅读全文
posted @ 2021-05-24 10:19 阿牛20 阅读(2104) 评论(0) 推荐(0) 编辑

1 2 3 4 5 ··· 9 下一页