- 博客(68)
- 资源 (5)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Spring Bean生命周期与循环依赖等源码学习笔记
前言最近通过看b站培训机构的Spring和SpringBoot源码教程视频学习Spring&SpringBoot的原理和思想,视频是以源码讲解的方式演示,这里分享一些关键点的笔记。概述 Spring的核心思想是IOC和AOP,IOC是控制反转,是将程序中需要用到的对象创建过程交给容器实现,让容器根据xml的配置实现对对象的创建和依赖注入。AOP是面向切面编程,是对一系列纵向请求做横向的拦截处理,Spring里面使用到AOP的地方主要是......
2022-05-26 00:41:21
249
原创 2022.11.17 阿里钉钉数据开发岗位一面
我心里一乐,这不就是一直以来有所准备的么。缓存穿透是大量不存在的key落到了数据库上,解决的方式有两种,一种是预设空值也就是缓存中预设置不存在的key值为null,另一种是使用布隆过滤器,简单地介绍下布隆过滤器就是通过哈希计算存储合法的值到布隆过滤器中,这样可以过滤掉不合法的值。我说桥接模式就是抽象和实现的分析,接口可以是一致的,然后通过方法可以改变内部的实现,例如java中的数据库连接JDBC,可以通过设置不同数据库的Driver来改变内部实现,但是接口还是一样的,程序中使用的时候还是一样调用的。
2024-07-25 11:41:24
521
原创 SparkSql近期使用经验分享
近期在公司使用了SparkSql重构一个由Java开发的ETL程序,因为Java模块不易于修改和部署,而由于SparkSql脚本是由Python开发,便于根据业务需求来开发维护,特别是不需要编译、打包部署。
2024-06-01 23:51:30
475
原创 Springboot踩坑-request body重复读问题
在一次业务开发中,由于需要在拦截器中对一个http请求中request body内容做解析和判断,所以用了的getInputStream解析了request body内容,之后导致了拦截器处理成功后,原来的业务接口处报request body not found的错误。
2023-10-21 10:38:06
712
原创 基于Kylin的数据统计分析平台架构设计与实现
前言此项目是我在TP-LINK公司云平台部门做的一个项目,总体包括云上数据自动化统计流程的设计和组件的开发。目的是为了对云平台上的设备和用户数据做多维度的统计和分析,以及便于观察设备数据的历史趋势,让业务部门更好地做业务决策。整体的架构与数据流向如下图所示,采用Hive做数据仓库,使用Spark实现一个ETL组件,完成数据的抽取、转换和加载,引入kylin做数据预计算,另外开发报表模块和数据可视化系统,对接kylin获取统计数据。每天Hive的新增数据量20多个G,kylin预计算之后的数据压缩比为
2023-10-05 18:00:07
5413
3
原创 2023-04-17移动云苏州研究所java开发面试
这篇文章是记录一次移动苏州研究院java开发岗位的面试经过。问的问题基本上是大数据相关的或者是java基础的,这应该是和我的过往项目经历相关的。
2023-06-13 23:34:31
1230
原创 【牛客刷题】java编程笔试题(更新)
思路:用hashmap保存每个字符串的出现次数,每次输入一个字符串,判断该字符串是否在hashmap中,没有就插入value为1key为该字符串的值,存在则更新value+1。这里的有效序列定义为S中的每个字符在L中都存在,并且顺序一致,例如“ace”是“abcde”的有效序列,“aec”不是“abcde”的有效序列,但是ae是最长的有效序列,e是最后一个有效字符。如果匹配失败一次,则母串下标+1,继续匹配,当子串或母串下标超出长度则停止,输入记录的最后有序字符下标。............
2022-08-28 13:37:29
3514
原创 大数据组件Hive性能测试和性能优化
项目介绍这是我在华为做的最后一个项目,当时在华为海思部门。部门主要是给一些国产芯片做服务器的软件性能测试,包括大数据生态软件Hadoop、Hbase、Hive等。测试方法使用业界sql性能测试工具tpc-ds,选择个别SQL做性能分析优化。TPC-DS是与真实场景非常接近的一个测试集,它包含7张事实表,17张纬度表,平均每张表含有18列。用这个数据集能够很好的模拟企业数据查询、报表生成以及数据挖掘等复杂应用。下面是测试的数据集部分表的关系图:测试用例举例:-- 1.符合
2022-04-01 20:53:47
4219
3
原创 2022-01-13shopee金融大数据产品面试经验
首先是自我介绍和项目介绍。1、hdfs通过命令put一个文件的流程服务端接受到写数据请求后,发送写数据请求到namenode生成元数据并写入,然后服务端根据元数据往datanode写具体的数据块。然后被问如果写datanode失败数据不一致怎么解决,这里回答采用两阶段提交的方式去写元数据和实际数据,然后被怼那这样客户端崩了还是会存在问题。那我就说用zookeeper存储最后的数据,反正是key value的形式,然后被怼zookeeper同步效率很低。2、讲述了一个项目,选择了数据统计分析可
2022-01-13 22:38:20
851
原创 2022-01-10 SHEIN大数据java开发岗位
面试该岗位,主要问了以下几个问题:1、MapReduce 的shuffle过程回答:map线程数据首先会复制到一个环形缓冲区,在环形缓冲区中进行分区和排序,当环形缓冲区达到一个阈值时数据会溢写到磁盘,这个过程可能会有conbine操作,最终每个分区的数据生成一个数据已经排序的文件。之后是reduce的shuffle过程,reduce线程将磁盘中每个分区的数据复制到内存缓冲区,进行排序,按照key进行聚合,然后输出数据作为reduce线程的输入数据,经过reduce计算之后生成文件存放到hdfs上。
2022-01-10 20:48:48
907
原创 阿里巴巴java面试经验
前阵子面试了阿里巴巴java开发工程师的岗位,因为准备不充分一面就挂了,面试过后回顾了整个面试过程,记录了面试题目,基本包含了java开发相关的基础知识,在这里做一次分享。面试题目:1、hashmap get和put方法实现及扩容的过程 get方法:首先判断输入的key是否为空,如果为空,从hashmap数组下标为0的位置获取值返回如果不为空,根据key的值,从hashmap数组中获取对应的entry对象,判断这个对象是否为空,为空返回null,不为空返回对应的value值, 获取va.
2021-09-25 23:55:20
275
原创 Kylin配置开启Cube Planner
Cube Planner功能通过计算同步Cuboid的构建成本和收益,并结合用户查询的统计数据挑选出更精简、更高效的维度组合,从而减少构建Cube耗费的时间和空间,提高查询效率。配置开启步骤如下:一、开启System Cube首先,在kylin.properties中设置以下参数以开启Metrics功能:kylin.server.query-metrics2-enabled=truekylin.metrics.reporter-query-enabled=truekylin.metr
2021-05-31 21:15:56
397
原创 LeetCode. 拿硬币
题目:桌上有 n 堆力扣币,每堆的数量保存在数组 coins 中。我们每次可以选择任意一堆,拿走其中的一枚或者两枚,求拿完所有力扣币的最少次数。示例 1:输入:[4,2,1]输出:4解释:第一堆力扣币最少需要拿 2 次,第二堆最少需要拿 1 次,第三堆最少需要拿 1 次,总共 4 次即可拿完。示例 2:输入:[2,3,10]输出:8限制:1 <= n <= 41 <= coins[i] <= 10思路:直接遍历优先拿两枚,最后剩下一枚
2020-11-30 22:26:05
238
原创 LeetCode.拥有最多糖果的孩子
题目:给你一个数组candies和一个整数extraCandies,其中candies[i]代表第 i 个孩子拥有的糖果数目。对每一个孩子,检查是否存在一种方案,将额外的extraCandies个糖果分配给孩子们之后,此孩子有 最多的糖果。注意,允许有多个孩子同时拥有 最多的糖果数目。示例 1:输入:candies = [2,3,5,1,3], extraCandies = 3输出:[true,true,true,false,true]解释:孩子 1 有 2 个糖...
2020-11-28 09:46:31
123
原创 LeetCode.查找重复的电子邮箱
题目:编写一个 SQL 查询,查找Person 表中所有重复的电子邮箱。示例:+----+---------+| Id | Email |+----+---------+| 1 | a@b.com || 2 | c@d.com || 3 | a@b.com |+----+---------+根据以上输入,你的查询应返回以下结果:+---------+| Email |+---------+| a@b.com |+---------+说明:所有电子...
2020-11-11 22:49:00
340
原创 LeetCode.求解二叉树的深度
题目:输入一棵二叉树的根节点,求该树的深度。从根节点到叶节点依次经过的节点(含根、叶节点)形成树的一条路径,最长路径的长度为树的深度。例如:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最大深度3 。提示:节点总数 <= 10000解题思路:解题思路有两种,一种是用递归求解,一种是用非递归求解。用递归,一颗二叉树的深度等于它的左子树和右子树的深度的最大值,根据此...
2020-11-08 19:36:01
177
原创 LeetCode.左旋转字符串
题目:字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。示例 1:输入: s = "abcdefg", k = 2输出:"cdefgab"示例 2:输入: s = "lrloseumgh", k = 6输出:"umghlrlose"限制:1 <= k < s.length <= 10000...
2020-11-04 23:00:22
206
原创 LeetCode.猜数字
题目:小A 和 小B 在玩猜数字。小B 每次从 1, 2, 3 中随机选择一个,小A 每次也从 1, 2, 3 中选择一个猜。他们一共进行三次这个游戏,请返回 小A 猜对了几次?输入的guess数组为 小A 每次的猜测,answer数组为 小B 每次的选择。guess和answer的长度都等于3。示例 1:输入:guess = [1,2,3], answer = [1,2,3]输出:3解释:小A 每次都猜对了。示例 2:输入:guess = [2,2,3], answe..
2020-11-03 22:52:47
723
原创 LeetCode.返回倒数第 k 个节点
题目:实现一种算法,找出单向链表中倒数第 k 个节点。返回该节点的值。注意:本题相对原题稍作改动示例:输入: 1->2->3->4->5 和 k = 2输出: 4说明:给定的 k保证是有效的。解题思路:题目要求返回链表倒数第k个节点,可以采用两步遍历的方法,即用两个指针遍历该链表,其中第一个指针比第二个指针快k-1的节点,之后两步指针同时遍历链表,当第一个指针到达链表的尾部,此时第二个指针所指的节点就是倒数第k个节点。代码如下:publ.
2020-11-02 22:53:30
215
原创 LeetCode.黑白方格画
题目:小扣注意到秋日市集上有一个创作黑白方格画的摊位。摊主给每个顾客提供一个固定在墙上的白色画板,画板不能转动。画板上有 n * n 的网格。绘画规则为,小扣可以选择任意多行以及任意多列的格子涂成黑色,所选行数、列数均可为 0。小扣希望最终的成品上需要有 k 个黑色格子,请返回小扣共有多少种涂色方案。注意:两个方案中任意一个相同位置的格子颜色不同,就视为不同的方案。示例 1:输入:n = 2, k = 2输出:4解释:一共有四种不同的方案:第一种方案:涂第一列;第二种方案:涂
2020-11-01 15:35:00
1086
2
原创 google校招在线测试题---2048
先附代码:(简单地说就是给出一个矩阵代表2048游戏的一个状态以及一个方向,输出往这个方向移动之后的矩阵)#include#include#includeusing namespace std;int main(){ int T; ifstream ifile("B-large-practice.in"); ofstream ofile("out1.txt"); int nu
2014-10-29 10:54:28
1685
原创 hihocoder--数字三角形
问题描述小Hi和小Ho在经历了螃蟹先生的任务之后被奖励了一次出国旅游的机会,于是他们来到了大洋彼岸的美国。美国人民的生活非常有意思,经常会有形形色色、奇奇怪怪的活动举办,这不,小Hi和小Ho刚刚下飞机,就赶上了当地的迷宫节活动。迷宫节里展览出来的迷宫都特别的有意思,但是小Ho却相中了一个其实并不怎么像迷宫的迷宫——因为这个迷宫的奖励非常丰富~于是小Ho找到了小Hi,让小Hi帮助他获取尽可能
2014-10-29 10:01:06
1004
原创 Google Code Jam在线测试题目--Alien Language
ProblemAfter years of study, scientists at Google Labs have discovered an alien language transmitted from a faraway planet. The alien language is very unique in that every word consists of exactly L
2014-10-16 22:43:25
3239
原创 Google2015校招在线测试题1----扫雷最少点击次数
ProblemMinesweeper is a computer game that became popular in the 1980s, and is still included in some versions of the Microsoft Windows operating system. This problem has a similar idea, but it does
2014-10-16 11:30:34
1806
1
原创 google在线测试练习题2
ProblemGiven a list of space separated words, reverse the order of the words. Each line of text contains L letters and W words. A line will only consist of letters and space characters. There will
2014-10-12 11:23:47
1297
1
原创 google在线测试练习题3
ProblemThe Latin alphabet contains 26 characters and telephones only have ten digits on the keypad. We would like to make it easier to write a message to your friend using a sequence of keypresses t
2014-10-12 11:23:02
1239
原创 google在线测试练习题1
ProblemYou receive a credit C at a local store and would like to buy two items. You first walk through the store and create a list L of all available items. From this list you would like to buy tw
2014-10-12 11:17:44
1090
原创 csdn第五届在线编程大赛-完全平方
题目详情给定整数区间[A,B]问其中有多少个完全平方数。输入格式:多组数据,包含两个正整数A,B 1输出格式:每组数据输出一行包含一个整数,表示闭区间[A,B]中包含的完全平方数的个数。答题说明输入样例1 11 23 103 3输出样例:1120
2014-10-07 21:32:02
1037
原创 C++实现hash_set
头文件:#includeusing namespace std;templateclass hash_set{private: hash_type array[100000]; int hash_fun(hash_type original);public: hash_set();//构造函数 void insert(hash_type value);//插入一个元素 v
2014-10-07 21:10:35
2611
原创 csdn编程挑战-----书本转移
题目详情小强有 3 个箱子 A,B,C 用来装书,所有的书(一共n本)都按序号由小到大的顺序堆在 A上,现在他想把所有的书全都放到 C 里面去。每次他从 A 书架拿 a 本书(不够就全拿完)到 B,A 箱子翻转,然后从 B 拿 b 本书(不够就全拿完)到 C,B 箱子翻转。然后重复操作,直到所有书都到了 C,求最后的C 里面书的顺序,详细见样例。输入描述:输入由多组
2014-10-01 11:57:21
851
原创 csdn高校编程挑战数字填充
题目详情peter喜欢玩数字游戏,但数独这样的游戏对他来说太简单了,于是他准备玩一个难的游戏。游戏规则是在一个N*N的表格里填数,规则:对于每个输入的N,从左上角开始,总是以对角线为起点,先横着填,再竖着填。这里给了一些样例,请在样例中找到规律并把这个N*N的表格打印出来吧。输入描述:多组测试数据(数据量在100组以内)。每组测试数据只有一行为一个整数N(1输出描述:对于每
2014-09-30 14:32:51
878
1
原创 csdn高校编程挑战Peter的X
题目详情Peter是个小男孩,他总是背不清26个英文字母。于是,刁钻的英语老师给他布置了一个非常奇怪的作业,老师给了他一个由26个英文字母构成的N*N 的矩阵(我们保证N一定是一个奇数),问他这个矩阵构成的图案是否是一个标准的“X”。一个标准的X的定义:1、对角线上所有元素都是同一个字母。2、所有非对角线上的元素也都是同一个字母,且字母与对角线上的字母不同。如果是则输出“YES”,
2014-09-30 14:20:00
696
原创 微软面试题2
#include#include#includeusing namespace std;struct node{ int value; node* left; node* right; node(int v) { value = v; left = NULL; right = NULL; }};class bintree{private: node* r
2014-09-30 11:10:04
622
大数据平台化技术以及业界大数据平台介绍
2020-11-26
开发win8应用时可用的一个C#类,功能主要是xml数据文件的创建,读写和删除。
2014-01-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人