
面试
文章平均质量分 89
你知道的越多 你不知道的也就越多
数据与算法架构提升之路
我是一名专注于AI和数据架构的技术专家,拥有扎实的编程与数学基础。在大数据框架重构和底层源码开发方面积累了丰富经验,擅长自动驾驶、数据架构和深度学习等领域的研究与实践。目前,我主要从事数据AI架构相关工作,并曾在新能源汽车行业积累了深厚的技术背景。对技术创新和持续学习充满热情,致力于推动前沿技术的应用与发展。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
BitMap和RoaringBitmap:极致高效的大数据结构
随着数据量持续增长,理解和利用这些高效数据结构对于使用大数据系统的开发人员和数据工程师变得越来越重要。RoaringBitmap在主要大数据框架中的广泛采用证明了其在解决实际性能挑战方面的有效性。原创 2025-04-12 19:27:10 · 710 阅读 · 0 评论 -
AI时代算法面试:揭秘高频算法问题与解答策略
本文深入探讨了三种决策树算法:ID3、C4.5和CART,各自适用于不同复杂度的分类问题。同时,分析了梯度消失问题及其解决方案,以及K折交叉验证和K-means聚类算法的原理和应用。此外,还介绍了SVM、PCA、KPCA和t-SNE等降维技术,通过这些方法可以优化模型性能和提高数据可视化效果。原创 2024-07-05 10:21:31 · 1237 阅读 · 1 评论 -
数据指标体系建设思路
数据指标体系建设思路原创 2023-11-16 16:30:01 · 297 阅读 · 0 评论 -
LeetcCode146之LRU 缓存机制(相关话题:双向链表,哈希表)
我们维护一个有序单链表,越靠近链表尾部的结点是越早之前访问的。当有一个新的数据被访问时,我们从链表头开始顺序遍历链表。1. 如果此数据之前已经被缓存在链表中了,我们遍历得到这个数据对应的结点,并将其从原来的位置删除,然后再插入到链表的头部。2. 如果此数据没有在缓存链表中,又可以分为两种情况:2.1如果此时缓存未满,则将此结点直接插入到链表的头部;2.2如果此时缓存已满,则链表尾结点删除,将新的数据结点插入链表的头部原创 2021-01-25 12:18:22 · 488 阅读 · 0 评论 -
Coding面试题之手写线程池
用Java设计一个面试版的线程池原创 2023-11-11 01:25:44 · 649 阅读 · 1 评论 -
Java 8更新:新特性与优化一览
Java8新特性总结原创 2022-01-11 21:23:52 · 2584 阅读 · 1 评论 -
PrepareStatement和Statement的对比
PrepareStatement和Statement的对比原创 2021-12-30 11:18:34 · 1508 阅读 · 0 评论 -
深入探索 MySQL Binlog:原理、工作机制与实践应用
binlog是记录所有数据库表结构变更(例如CREATE、ALTER TABLE…)以及表数据修改(INSERT、UPDATE、DELETE…)的二进制日志。原创 2019-03-26 12:54:43 · 56740 阅读 · 4 评论 -
构建HBase知识网络:深入理解LSM、MemTable与HFile的工作原理
Hbase是如何实现LSM的memtable的。或者说,hbase查询的时候如何在内存中命中kv的,和hfile有啥联系原创 2021-04-09 09:58:12 · 537 阅读 · 0 评论 -
线程池内运行的线程抛异常,线程池会怎么办
当线程池中线程执行任务的时候,任务出现未被捕获的异常的情况下,线程池会将允许该任务的线程从池中移除并销毁,且同时会创建一个新的线程加入到线程池中;可以通过ThreadFactory自定义线程并捕获线程内抛出的异常,也就是说甭管我们是否去捕获和处理线程池中工作线程抛出的异常,这个线程都会从线程池中被移除。转载 2021-08-16 23:04:06 · 6066 阅读 · 2 评论 -
InheritableThreadLocal跨线程传递变量
通过 InheritableThreadLocal 可以在父子线程之间传递 ThreadLocal ,父线程为当前线程,而子线程即为在当前线程中声明的线程。如果 ThreadLocal 为 InheritableThreadLocal ,子线程就可以拿到父线程在 ThreadLocal 中设置的值。原创 2021-08-12 17:19:41 · 1516 阅读 · 0 评论 -
深入探究Kafka:高吞吐量与低延迟背后的技术原理
1.kafka 吞吐量高的原因1、页缓存技术 + 磁盘顺序写操作系统本身有一层缓存,叫做page cache,是在内存里的缓存,我们也可以称之为os cache,意思就是操作系统自己管理的缓存。你在写入磁盘文件的时候,可以直接写入这个os cache里,也就是仅仅写入内存中,接下来由操作系统自己决定什么时候把os cache里的数据真的刷入磁盘文件中接着另外一个就是kafka...原创 2019-07-16 11:35:45 · 1135 阅读 · 0 评论 -
20道Hive SQL经典训练提升题
20道经典hive sql基础面试题原创 2021-08-01 15:21:35 · 2877 阅读 · 12 评论 -
谓词下推原理和数据框架的应用
将过滤表达式尽可能移动至靠近数据源的位置,以使真正执行时能直接跳过无关的数据。原创 2021-08-01 12:59:33 · 663 阅读 · 0 评论 -
Hive常见开窗函数的实际应用
在15道Hive SQL经典面试题里我们对hive的实战常用法,有了较为全面的认知。本文将围绕开窗函数进行升入的探讨原创 2021-04-08 21:08:27 · 682 阅读 · 0 评论 -
64匹马,8个赛道,找出跑得最快的4匹马
64匹马,8个赛道,找出跑得最快的4匹马,至少比赛几场?第一步全部马分为8组,每组8匹,每组各跑一次,然后淘汰掉每组的后四名,如下图(需要比赛8场)第二步取每组第一名进行一次比赛,然后淘汰最后四名所在组的所有马,如下图(需要比赛1场)这个时候总冠军已经诞生,它就是A1,蓝色区域(它不需要比赛了),而其他可能跑得最快的三匹马只可能是下图中的黄色区域了(A2,A3,A4,B1,B2,B3,C1,C2,D1,共9匹马)第三步只要从上面的9匹马中找出跑得最快的三匹马就可以了,但是现在只转载 2021-04-26 08:45:54 · 4476 阅读 · 0 评论 -
一致性哈希算法的领悟
1、一致性哈希算法经典使用场景在数据库存储领域如果单表数据量很大,通常会采用分库分表,在缓存领域同样需要分库,下面以一个非常常见的Redis分库架构为例进行阐述。将上述3个Redis节点称之为分片,每一个节点存储部分数据,需要使用负载均衡算法,将数据尽量分摊到各个节点,充分发挥分布式的优势,提升系统缓存访问的性能。在分布缓存领域,对数据存在新增与查询,即数据通过路由算法存储在某一个节点后,查询时需要尽量路由到同一个节点,否则会出现查询未命中缓存的情况,这也是与分布式服务调用领域的负载算法一个转载 2021-02-01 10:22:56 · 543 阅读 · 0 评论 -
大数据框架和数仓高频面试题总结
优化面试题和排版,更加聚焦目标首先map task会从本地文件系统读取数据,转换成key-value形式的键值对集合使用的是hadoop内置的数据类型,比如longwritable、text等将键值对集合输入mapper进行业务处理过程,将其转换成需要的key-value在输出之后会进行一个partition分区操作,默认使用的是hashpartitio...原创 2019-02-15 18:17:08 · 2210 阅读 · 0 评论 -
Apache Spark 基础知识总结及应用示例
对比与FlinkSpark 基于微批量处理,Spark 对 SQL 支持更好,Spark 的社区更加活跃,Spark 对机器学习的支持很好原创 2019-07-09 08:20:20 · 1971 阅读 · 0 评论 -
彻底搞清楚unicode编码
Unicode 中可能存在一个字符对应多个字节的问题原创 2020-05-25 07:28:55 · 771 阅读 · 0 评论 -
大型定时任务数据结构HashedWheelTimer
一、缘起很多时候,业务有定时任务或者定时超时的需求,当任务量很大时,可能需要维护大量的timer,或者进行低效的扫描。例如:58到家APP实时消息通道系统,对每个用户会维护一个APP到服务器的TCP连接,用来实时收发消息,对这个TCP连接,有这样一个需求:“如果连续30s没有请求包(例如登录,消息,keepalive包),服务端就要将这个用户的状态置为离线”。其中,单机TC...转载 2019-10-15 21:23:18 · 1384 阅读 · 0 评论 -
Java中高级面试题总览(二)
高频面试考点总结和梳理原创 2019-04-08 18:43:23 · 2013 阅读 · 0 评论 -
Spring事务不能回滚的深层次原因
非PROPAGATION_NESTED的标注的嵌套事务不使用动态代理的方式来调用会导致子方法里的事务失效原创 2019-03-14 18:28:10 · 1299 阅读 · 0 评论 -
微观理解: 探索ZooKeeper的工作机制和领导者选举原理
原子广播,这个机制保证了各个Server之间的同步。实现这个机制的协议叫做Zab协议。Zab协议有两种模式,它们分别是恢复模式(选主)和广播模式(同步)原创 2019-03-26 07:55:29 · 1446 阅读 · 0 评论 -
Java集合性能测试:理解HashMap, LinkedHashMap, 和 TreeMap的速度差异
这些测试结果对于选择合适的数据结构以优化Java应用程序的性能提供了实际的指导意见,尤其是在需要考虑数据访问模式(随机访问 vs. 有序访问)时。在实际开发中,选择合适的Map实现可以根据具体的使用场景和性能要求来决定。原创 2019-03-15 16:59:04 · 7482 阅读 · 0 评论 -
单机限流和分布式应用限流
单机限流算法主要有:令牌桶(Token Bucket)、漏桶(leaky bucket)和计数器算法是最常用的三种限流的算法;分布式限流需要一个第三方组件来记录请求的次数。原创 2019-03-11 13:04:57 · 4435 阅读 · 0 评论 -
Redis分布式锁的原理以及如何续期
redis 分布式锁的原理原创 2019-03-11 09:21:21 · 34156 阅读 · 42 评论 -
线程池的核心参数和运行机制
常见的三种工厂类线程池线程池设计原理线程池常用阻塞队列线程池拒绝策略如何合理设计线程池里的线程数线程池内运行的线程抛异常,线程池会怎么办线程池状态如何合理设置线程池队列长度原创 2019-03-05 23:08:18 · 4120 阅读 · 0 评论 -
揭秘Redis性能优化:从批量操作到集群读写分离的全面指南
深入探讨Redis在高流量场景下的性能优化策略,包括批量操作、事务管理、Pipeline技术、多数据库机制、集群读写分离,以及序列化和异步队列的最佳实践Redis中,如果一个事务被提交,那么事务中的所有操作将会被顺序执行,且在事务执行期间,其他client的操作将会被阻塞;Redis采取了这种简单而“粗鲁”的方式来确保事务的执行更加的快速和更少的外部干扰因素。Redis Cluster集群架构,不同的key是有可能分配在不同的Redis节点上的,在这种情况下Redis的事务机制是不生效的。 ...原创 2019-02-11 09:45:47 · 1152 阅读 · 0 评论 -
Java中高级面试题总览(一)
高频面试题深入剖析原创 2017-03-29 10:29:11 · 28784 阅读 · 2 评论 -
Java中高级面试题总览(三)
常见面试题深度解析原创 2016-10-10 13:57:40 · 2022 阅读 · 0 评论