上古时代的应用 用户访问请求通过各级负载均衡到达了反向代理层,反向代理层会把访问请求转到服务器集群中,这就是经典的单体应用 + 水平扩展 缺点: 牵一发而动全身 每台服务器部署的代码都一样,每一个小的改动都很有可能影响到其它的功能点,所以每次改动都要做一个全链路回归 回滚很痛苦 所有代码一起上线……
高档-进入景区 2022钱江(海宁)观潮节 活动时间:2022年09月08日-9月17日 **观潮景区:**海宁盐官旅游度假区,浙江省嘉兴市海宁市盐官镇古邑路1号 **门票价格:**观潮节期间实行旺季票价90元/位(线上提前购票仅需80元/位);景区淡季观潮胜地公园挂牌价30元/位 购票入……
题目:找出数组中出现次数超过一半的数,现在有一个数组,已知一个数出现的次数超过了一半,请用O(n)的复杂度的算法找出这个数。 出题人:阿里巴巴新零售技术质量部 参考答案: 遍历数组的同时用Object来储存每个元素出现的个数,每次遍历都跟max比较 参考代码: const arr =[1,2,3,4,5,6,7,8,89,9,9,9,9,99]; const maxNumObj =(arr)=>{ return arr.reduce((obj,cur)=>{ if(!obj['max']){ obj['max']=arr[0]; } obj[cur] = ++obj[cur]||1;……
题目: 找出被修改过的数字 出题人:阿里巴巴新零售技术质量部 参考答案: emmm假设背景是寻找数组中被修改的数字或者元素,我使用代理的方式来监听数组中元素的变化,并将变化的最后数值和次数储存在额外空间中 参考代码: const arr =[1,2,3,4,5,6,7,8,89,9,9,9,9,99]; const saveModifyNum={ } const watchNumChangeProxy=new Proxy(arr,{ set:function(target,key,value){ let {count} = Reflect.get(saveModifyNum,target[key])||{count:0,value}; ++count; return Reflect.set(saveModifyNum,target[key],{ count, value }); } }) watchNumChangeProxy[0]=2; watchNumChangeProxy[0]=3; watchNumChangeProxy[0]=4; //{ '1': { count: 3, value: 4 } }……
题目:浅复制和深复制?怎样实现深复制? 出题人:阿里巴巴新零售技术质量部 参考答案: 参考代码; const isObject = (item)=>{ return Object.prototype.toString.call(item) === '[object Object]'; } const isArray = (item)=>{ return Object.prototype.toString.call(item) === '[object Array]'; } const deepClone=(obj)=>{ const cloneObj=isArray(obj)?[]:isObject(obj)?{}:''; for(let key in obj){ if(isObject(obj[key])||isArray(obj[key])){ Object.assign(cloneObj,{ [key]: deepClone(Reflect.get(obj,key)) }); } else{ cloneObj[key] = obj[key]; } } return cloneObj; } PS:可以处理这样的格式,仅处理了对象类型和数组类型 const obj111 ={ a:1, b:{ c:2, d:{ e:3 }, f:[1,{a:1,b:2},3] } }……
题目:一棵二叉树,求最大通路长度(即最大左右子树高度之和) 参考答案: 该题与leetcode第104题同题型,定义TreeNode结构如下: 1 2 3 4 5 6 7 8 9 10 class TreeNode { int val; TreeNode left; TreeNode right; public TreeNode(int val) { this.val = val; } } 解法一(递归求解) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 class Solution { public int maxHeight(TreeNode root) { if (root == null) { return 0; }……
问题:简单说一下hadoop和spark的shuffle过程 出题人:京东出题专家:阿昀/京东数据中台 参考答案: Hadoop:map端保存分片数据,通过网络收集到reduce端。 Spark:spark的shuffle实在DAGSchedular划分Stage的时候产生的,TaskS……
题目:主键 超键 候选键 外键是什么 定义 超键(super key): 在关系中能唯一标识元组的属性集称为关系模式的超键 候选键(candidate key): 不含有多余属性的超键称为候选键。也就是在候选键中,若再删除属性,就不是键了! 主键(primary key): 用户选作元组标识的一个候选键程序主键 外键(foreig……
题目:数据库事务的四个特性及含义 参考答案: 数据库事务transanction正确执行的四个基本要素。ACID,原子性(Atomicity)、一致性(Correspondence)、隔离性(Isolation)、持久性(Durability)。 原子性:整个事务中的所有操作,要么全部……
题目:视图的作用,视图可以更改么? 参考答案: 视图是虚拟的表,与包含数据的表不一样,视图只包含使用时动态检索数据的查询;不包含任何列或数据。使用视图可以简化复杂的sql操作,隐藏具体的细节,保护数据;视图创建后,可以使用与表相同的方式利用它们。 视图不能被索引,也不能有关联的触发器或……