面试

阿里二面惨败,痛定思痛狂刷1000+面试题,成功五面上岸滴滴(面经+面试题分享)

◇◆丶佛笑我妖孽 提交于 2020-11-05 09:01:49
阿里一面 突如其来的一面 1.电话预约:阿里的电话总是那么突然, 经常在上班上的好好的时候, 就突然来了说个杭州的座机电话,接的多了看到就可以猜到。大家习惯就好, 一般面试官会提前打电话预约时间,可以预约一个自己合适的时间,因为阿粉我加班比较多,所以预约的都是晚上9, 10点~ ,不得不说,阿里的面试官也挺辛苦的。 2.介绍自己:常规流程,简单介绍自己的毕业院校,工作经历以及一些兴趣爱好, 提交准备好,多背几遍。 3.介绍自己做的项目:按照己熟悉的项目流程框架去逐步介绍,项目主要做了什么,用了什么,这里-定要讲己熟悉的部分,因为面试官会根据你提到的技术点展开后续的问题,千万不要给自己挖填不了的坑。我这边介绍的时候提到了Kafka ,所以后面面试官问了好几个Kafka的问题,所以-定要说自己熟悉的技术。 4.项目中最有难度和记忆最深刻的项目: 这个问题按照实际去回答就好,可以说自己做过的但不一定是最难的,可以是自己最熟悉的,觉得有亮点可以说的,避免讲不了几句就没话可说的情况。 5. Hashmap原理: Java面试的必问问题,不需要多说什么了。这里需要注意,不能只看到表面现象, 需要学会多延伸问题,从Hashmap可以延伸到HashTable , ConcurrentHash ,以及线程安全等问题。 6.底层红黑树是什么?什么是红黑树:这个问题就是对上面问题-个很好的补充

京东出来的java工程师,竟然不知道分布式、高并发、多线程的区别?

自作多情 提交于 2020-11-05 09:01:31
当提起这三个词的时候,是不是很多人都认为分布式=高并发=多线程? 当面试官问到高并发系统可以采用哪些手段来解决,或者被问到分布式系统如何解决一致性的问题,是不是一脸懵逼? 确实,在一开始接触的时候,不少人都会将三者混淆,误以为所谓的分布式高并发的系统就是能同时供海量用户访问,而采用多线程手段不就是可以提供系统的并发能力吗?实际上, 他们三个总是相伴而生,但侧重点又有不同。 什么是分布式? 分布式更多的一个概念, 是为了解决单个物理服务器容量和性能瓶颈问题而采用的优化手段 。该领域需要解决的问题极多,在不同的技术层面上,又包括:分布式文件系统、分布式缓存、分布式数据库、分布式计算等,一些名词如Hadoop、zookeeper、MQ等都跟分布式有关。从理念上讲,分布式的实现有两种形式: 水平扩展: 当一台机器扛不住流量时,就通过添加机器的方式,将流量平分到所有服务器上,所有机器都可以提供相当的服务; 垂直拆分: 前端有多种查询需求时,一台机器扛不住,可以将不同的需求分发到不同的机器上,比如A机器处理余票查询的请求,B机器处理支付的请求。 什么是高并发? 相对于分布式来讲,高并发在解决的问题上会集中一些,其反应的是同时有多少量 :比如在线直播服务,同时有上万人观看。 高并发可以通过分布式技术去解决,将并发流量分到不同的物理服务器上。但除此之外,还可以有很多其他优化手段:比如使用缓存系统

网络分层之TCP/IP五层模型

橙三吉。 提交于 2020-11-05 08:13:43
1、TCP/IP五层模型分别是 : TCP/IP通讯协议采用了5层的层级结构,每一层都传输到它的下一层所提供的网络来完成自己的需求 。 物理层:负责光/电信号的传递方式. 比如现在以太网通用的网线(双绞 线)、早期以太网采用的的同轴电缆(现在主要用于有线电视)、光纤, 现在的wifi无线网使用电磁波等都属于物理层的概念。物理层的能力决定了最大传输速率、传输距离、抗干扰性等. 集线器(Hub)工作在物理层. 数据链路层: 负责设备之间的数据帧的传送和识别. 例如网卡设备的驱动、帧同步(就是说从网线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作. 有以太网、令牌环网, 无线LAN等标准. 交换机(Switch)工作在数据链路层. 网络层: 负责地址管理和路由选择. 例如在IP协议中, 通过IP地址来标识一台主机, 并通过路由表的方式规划出两台主机之间的数据传输的线路(路由). 路由器(Router)工作在网路层. 传输层: 负责两台主机之间的数据传输. 如传输控制协议 (TCP), 能够确保数据可靠的从源主机发送到目标主机. 应用层: 负责应用程序间沟通,如超文本传输协议(HTTP) 、简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等. 我们的网络编程主要就是针对应用层. 2、各层代表硬件 :

值得一看!关于Python的模块!(附网盘链接)

醉酒当歌 提交于 2020-11-05 06:25:44
今天跟大家分享的是关于Python模块的知识点, 下拉文末获取网盘链接 一、概述 1.1模块 1.2引入模块 1.3探索路径 1.4BIF 二、包 2.1VS 2.2内涵 2.3访问 2.4导入 三、补充 3.1第三方模块安装 3.2技巧 3.3运行测试 3.4使用future 四、作用域 4.1正常变量 4.2特殊变量 4.3私有变量 五、标准文件模板 5.1前两行 5.2第四行 5.3第六行 六、名称空间 6.1字典 6.2载入顺序 6.3名称查找 6.4使用 点击链接获取全文 链接: https://pan.baidu.com/s/1d5gaorSvp_HgomB0LS6LyA 提取码:kcfi ※部分文章来源于网络,如有侵权请联系删除;更多文章和资料|点击后方文字直达 ↓↓↓ 100GPython自学资料包 阿里云K8s实战手册 [阿里云CDN排坑指南] CDN ECS运维指南 DevOps实践手册 Hadoop大数据实战手册 Knative云原生应用开发指南 OSS 运维实战手册 云原生架构白皮书 Zabbix企业级分布式监控系统源码文档 10G大厂面试题戳领 来源: oschina 链接: https://my.oschina.net/u/4601114/blog/4702555

Java中的微信支付(3):API V3对微信服务器响应进行签名验证

佐手、 提交于 2020-11-05 04:44:20
1. 前言 牢记一句话:公钥加密,私钥解密;私钥加签,公钥验签。 微信支付V3版本前两篇分别讲了如何对请求做签名和如何获取并刷新微信平台公钥,本篇将继续展开如何对微信支付响应结果的验签。 2. 为什么要对响应验签 微信支付会在回调的HTTP头部中包括回调报文的签名。商户 必须 验证响应的签名,保证响应确实来自微信支付服务器,避免中间人攻击。而验证响应签名除了需要 微信平台的公钥 外还需要从请求头的其它参数。 假设以下就是微信支付服务器的响应: HTTP/1.1 200 OK Server: nginx Date: Tue, 02 Apr 2019 12:59:40 GMT Content-Type: application/json; charset=utf-8 Content-Length: 2204 Connection: keep-alive Keep-Alive: timeout=8 Content-Language: zh-CN Request-ID: e2762b10-b6b9-5108-a42c-16fe2422fc8a Wechatpay-Nonce: c5ac7061fccab6bf3e254dcf98995b8c Wechatpay-Signature:

再谈谈软件测试职业发展

前提是你 提交于 2020-11-05 01:59:21
再谈谈测试职业发展 有这么个普遍现象 测试招聘者,特别是一、二线互联网公司的招聘者最苦恼的事儿就是招人。想找到一个合适的人难于上青天,每天各种撒网,简历看几百份,面大几十人,能捞到一个中意的小伙伴就谢天谢地了。但同时很多测试小伙伴发现找工作很难,特别是进大一点的厂,他们特别挑:代码要会写,要有软件架构能力,问一大坨平时根本用不到的技术问题,还挑经验,挑沟通能力,挑这挑那,有时候还特么挑学历、挑年龄。。。供求总难以匹配起来,造成了双方都很痛苦。 Why? 能力要求不匹配是最核心的问题。软件、互联网近 20 年来飞速成长,其实也经历了很多阶段。行业软件兴盛阶段和外包兴盛阶段(2000-2010 年)行业进入了大量的测试人员,当时最主流的测试实践是:重心放在系统验收阶段。测试人员的主要工作基本都投入在了基于业务的黑盒测试上,对代码能力、系统理解的能力要求不多。2010 年后,互联网行业的真正兴起让国内软件开发模式开始缓慢调头,快速迭代的模式逐步兴起,开发周期越来越短,迭代越来越快,但系统越来越越庞大、复杂。原来的测试工作模式和工作范围越来越无法满足要求了。但大量从业人员技能范围转变是一件很难的事情,行业是有巨大惯性的。 从宏观上看大量 QA 技能转变跟不上需求转变是造成市场供求不匹配的主要原因。 So What? 三个观点: 只做手工测试,不懂系统实现的测试工程师的职业发展会越来越受限。

Redis面试总结

混江龙づ霸主 提交于 2020-11-05 00:33:54
一、Redis介绍 C语言开发的高性能k-v缓存中间件,支持string、set、sorted set、list、hash数据结构。 二、Redis优势 大部分操作都是纯内存操作,速度非常快 数据结构简单,操作方便 单线程,避免了频繁的上下文切换和竞争 多路IO复用模型,非阻塞IO 三、应用场景 计数器、常用缓存、回话缓存、消息队列(lpush、rpop)、分布式锁 四、Redis持久化 两种模式都开启的情况下,重启会优先选择AOF恢复。 RDB(默认):按照一定时间,将内存数据以快照形式保存到硬盘中 优点:只有一个文件,方便持久化;fork子线程来进行持久化,保证了高性能;大数据集时启动比AOF快。 缺点:安全性低、每隔一段时间进行持久化,若持久化过程中出现故障,会导致数据丢失,适合对数据严谨要求不高的场合。 AOF:Redis将每次写命令记录到单独的日志文件中,当重启Redis会从日志文件的命令执行一遍恢复数据 优点:安全性高,每一个写操作都会记录到aof文件中,即使备份过程中出现故障,也可通过redis-check-aof工具修复。aof文件过大时可以进行重写合并一些操作命令。 缺点:比RDB文件大,恢复效率低 五、key删除策略 定时删除+惰性删除 定时删除:定期扫描随机获取一些key,如果过期进行删除。 惰性删除:在访问的时候,发现key已经过期,再删除。 六

28岁华为员工工资表曝光,牛逼的人注定会牛逼

旧街凉风 提交于 2020-11-04 19:53:38
前两天,一位前华为的朋友,在他的朋友圈晒出了他一年前,在华为工作时候的工资表。 同样20来岁的年纪,为什么人家可以年入百万, 一个项目奖金就比得上别人一年的工资? 需要知道,在职场中越往上走,拼得越不是技术,而是能力。 华为始终贯彻“以项目为中心”,项目管理能力被认为是华为的最核心竞争力。在华为,有能力做好项目的员工自然收入更高。 事实上不只华为,几乎所有行业,都稀缺独当一面的项目管理人才。 据新华社报道:到2027年, 中国的项目管理职位空缺将达到 4600万 。 如果现在, 仅需0.01元 ,清华资深项目管理名师,手把手带你入门, 每年多赚20万 ,你来不来? 立即加入—— PMP项目管理训练营 18节项目管理课+1场项目规划直播课 3场干货分享+5天社群服务 原价399元 现在仅需0.01元 长按下方二维码 先人一步抢名额 ▼ (不用发朋友圈,不用集赞,直接听课) 你能收获 1.理论与实操相结合,无缝对接工作场景,学完就能用 清华名师手把手教学,0基础也能学会,轻松解决工作难题。 2.收获一项受用终身的项目管理知识体系 从全局角度思考问题,从项目的启动到收尾规范流程,过程更清晰。 3. 超过90%同龄人 ,多一个年薪百万的职业选择 为什么推荐你加入 ● 01. 大咖 老师+实用方法 【PMP项目管理训练营】 是 清华大学副教授 杨述老师,结合 京东、万科、华为

非常有用的 Python 技巧

谁说我不能喝 提交于 2020-11-04 19:53:04
Python实战社群 Java实战社群 长按识别下方二维码, 按需求添加 扫码关注添加客服 进Python社群▲ 扫码关注添加客服 进Java社群 ▲ 作者丨苏生不惑 https://mp.weixin.qq.com/s/ATvPzfLHwp0wEH5-tMW2cg 函数连续调用 def add(x): class AddNum(int): def __call__(self, x): return AddNum(self.numerator + x) return AddNum(x) print add(2)(3)(5) # 10 print add(2)(3)(4)(5)(6)(7) # 27 # javascript 版 var add = function(x){ var addNum = function(x){ return add(addNum + x); }; addNum.toString = function(){ return x; } return addNum; } add(2)(3)(5)//10 add(2)(3)(4)(5)(6)(7)//27 默认值陷阱 >>> def evil(v=[]): ... v.append(1) ... print v ... >>> evil() [1] >>> evil() [1, 1] 读写csv文件

面试官:如何写出让 CPU 跑得更快的代码?

∥☆過路亽.° 提交于 2020-11-04 19:52:27
Python实战社群 Java实战社群 长按识别下方二维码, 按需求添加 扫码关注添加客服 进Python社群▲ 扫码关注添加客服 进Java社群 ▲ 作者丨小林coding 来源丨小林coding(ID:CodingLin) 前言 代码都是由 CPU 跑起来的,我们代码写的好与坏就决定了 CPU 的执行效率,特别是在编写计算密集型的程序,更要注重 CPU 的执行效率,否则将会大大影响系统性能。 CPU 内部嵌入了 CPU Cache(高速缓存),它的存储容量很小,但是离 CPU 核心很近,所以缓存的读写速度是极快的,那么如果 CPU 运算时,直接从 CPU Cache 读取数据,而不是从内存的话,运算速度就会很快。 但是,大多数人不知道 CPU Cache 的运行机制,以至于不知道如何才能够写出能够配合 CPU Cache 工作机制的代码,一旦你掌握了它,你写代码的时候,就有新的优化思路了。 那么,接下来我们就来看看,CPU Cache 到底是什么样的,是如何工作的呢,又该写出让 CPU 执行更快的代码呢? 正文 CPU Cache 有多快? 你可能会好奇为什么有了内存,还需要 CPU Cache?根据摩尔定律,CPU 的访问速度每 18 个月就会翻倍,相当于每年增长 60% 左右,内存的速度当然也会不断增长,但是增长的速度远小于 CPU,平均每年只增长 7% 左右。于是,CPU