面试

招聘面试—关于Mysql的一点儿总结

感情迁移 提交于 2020-11-24 02:57:16
最近半年,作为部门的面试官之一,参加了许多次招聘面试。数据库知识,尤其是对数据的增删改查等操作是软件测试人员的基本功,是面试过程中的必考项。在这其中,有一道题,是我每次面试的必考题。 题目 以Mysql为例,假设有一张数据库表 user_info ,第一列是id,用作唯一标识;第二列是 user_name ,即用户姓名;第三列是 some_data ,这是一列存储某某数值的列,比如用户的年收入、用户的年龄、用户完成的订单数等等。需求是, 找出这张表中,按第三列的数值降序排列,排在前5的所有用户记录 。 题解 显然,这道题中除了有基本的select语句、还有降序排序的基本用法,以及limit用法,因此,稍微有些基础的人便可以给出答案: select * from user_info order by some_data desc limit 0,5; 即使这道题没有涉及什么难点,但精准回答率也并不高(就我面试的情况,约为60%)。然而,写出如上答案还不算完,我会再次向候选人描述问题并确认是否回答完毕。 如果候选人表示回答完毕不需要修正,我会给出提示和引导—— 答案是否完整?是否遗漏了某些用户记录 ?这时,极个别的候选人会意识到 数值有重复 的情况。这已经不单单是Mysql的面试题了,还涉及到需求理解能力、逻辑思维能力等。 无论是否意识得到,我都会再进一步明确地提问,

1024程序员节!

余生颓废 提交于 2020-11-24 00:00:19
程序员之歌 在那山的那边海的那边有一群程序猿 他们老实又腼腆 他们聪明又有钱 他们一天到晚坐在那里认真地改bug 他们饿了就吃一口方便面 噢~ 可爱的程序员~ 可爱的程序员~ 只要一提需求他们就要重新改一遍 可是时间只剩下最后一天 当这首歌声响起的时候 10.24到了 猿媛专属节日来了 在这个节日 拒绝On Call 24小时 告别debug 是时候在各路需求bug中忙里偷闲 收割一波专供程序员“充电”的惊喜了 薅当当网羊毛的机会又双叒叕来了! 1024程序员节,当当百万自营图书 >> 每满100减50 << >> 每满200减100 << >> 每满300减150 << >> 满400减200 << 以为只有这样了么?我们的原则是——让大家省钱省到家! 机械工业出版社 联合当当网特意为【 机器学习与生成对抗网络 】用户申请了一批 可与满减叠加使用的 「满200减40”」 的图书优惠码,优惠码使用后相当于: 花160元买400元的书! 用160块就可以买到原价400元(大约四五本)的硬核技术书, 4折优惠! 所以这一波优惠,不要错过! 优惠码: 【 EQHTMX 】 (注意区分大小写,建议点击选中复制) 使用时间: 2020年10月20日至11月03日 使用渠道: 当当APP和当当小程序 使用条件 :原有的满减核算后,得出的实际消费金额总价如果超过200元即可以用优惠码再减40。

C语言与C++常见面试题

天涯浪子 提交于 2020-11-23 23:42:59
本篇根据各个公司的面试问的常见问题进行总结。 公众号回复“面试”,获取pdf答案 1 变量的声明和定义有什么区别 2 简述 #ifdef、#else、#endif 和 #ifndef 的作用 3 写出 int 、bool、 float 、指针变量与 “零值”比较的 if 语句 4 结构体可以直接赋值吗 5 sizeof 和 strlen 的区别 6 C 语言的关键字 static 和 C++ 的关键字 static 有什么区别 7 C 语言的 malloc 和 C++ 中的 new 有什么区别 8 写一个 “标准”宏MIN 9 ++i 和 i++ 的区别 10 volatile 有什么作用 11 一个参数可以既是 const 又是 volatile 吗 12 a 和 &a 有什么区别 13 用 C 编写一个死循环程序 14 结构体内存对齐问题 15 全局变量和局部变量有什么区别?实怎么实现的?操作系统和编译器是怎么知道的? 16 简述 C、C++ 程序编译的内存分配情况 17 简述 strcpy、sprintf 与 memcpy 的区别 18 请解析 (*(void (*)( ) )0)( ) 的含义 19 C语言的指针和引用和c++的有什么区别? 20 typedef 和 define 有什么区别 21 指针常量与常量指针区别 22 简述队列和栈的异同 23 设置地址为

美团面试官问我: ZGC 的 Z 是什么意思

我怕爱的太早我们不能终老 提交于 2020-11-23 23:06:57
> 本文的阅读有一定的门槛,请先了解 GC 的基本只知识。 现代垃圾收集器的演进大部分都是往减少停顿方向发展。 像 CMS 就是分离出一些阶段使得应用线程可以和垃圾回收线程并发,当然还有利用回收线程的并行来减少停顿的时间。 基本上 STW 阶段都是利用多线程并行来减少停顿时间,而并发阶段不会有太多的回收线程工作,这是为了不和应用线程争抢 CPU,反正都并发了慢就慢点(不过还是得考虑内存分配速率)。 而 G1 可以认为是打开了另一个方向的大门: 只回收部分垃圾来减少停顿时间 。 不过为了达到只回收部分 reigon,每个 region 都需要 RememberSet 来记录各 region 之间的引用。这个内存的开销其实还是挺大的,可能会占据整堆的20%或以上。 并且 G1 还有写屏障的开销,虽说用了 logging wtire barrier,但也还是有开销的。 当然 CMS 也用了写屏障,不过逻辑比较简单,啥都没判断就单纯的记录。 其实 G1 相对于 CMS 只有在大堆的场景下才有优势,CMS 比较伤的是 remark 阶段,如果堆太大需要扫描的东西太多。 而 G1 在大堆的时候可以选择部分收集,所以停顿时间有优势。 今天的主角 ZGC 和 G1 一样是基于 reigon 的, 几乎所有阶段都是并发的,整堆扫描,部分收集 。 而且 ZGC 还不分代,就是没分新生代和老年代。

30岁开始学编程晚吗?

喜夏-厌秋 提交于 2020-11-23 22:46:22
二哥,说出来不怕你笑话,我和你年纪差不多。之前是干别的,但有点编程的基础,最近想转行程序员,不知道晚不晚,你能不能给我一些建议,或者说有没有一些攻略可以参考。 这是上个月一个读者小郑私信我的问题,我一直置顶着,想不清楚该怎么回答他。最近又遇到三四个读者问我类似的问题,不得不认真思考一下了。 我年纪多大了呢?老读者都心里有数,我就不直说了(反正标题已经直说了,手动狗头)。 30 岁开始学编程,从目前人的平均寿命上来看,显然是不晚的。假如拿一天来对比人的一生,30 岁,无非就是睡了个懒觉。再从心智的成熟度上来说,显然也是不晚的,可以算得上是黄金年龄了。 大文豪苏轼都知道吧,他老爹苏洵 27 岁才开始发愤读书,但仍然成了唐宋八大家之一。关键是两个儿子也教育有方,不得了。 还有之前看的一则新闻,说有个 80 岁(记得不太清了)的老太太,之前一直没搞过写作,然后突然开始创作,并一下子得了很多奖,简直就是励志典范。 这方面的例子再举多一点的话,甚至可以把我也算上。我在 2019 年之前,也算是有点写作上的基础,但是呢,一直不温不火,知道我的读者并不多。靠写作挣的那点钱,的确就像一位读者的留言——根本就没办法养家糊口,打算放弃的次数比天上的星星都要多。直到今年 2 月份开始,情况突然有所好转,并且一下子好转了很多。 就这么说下去的话,你恐怕觉得我又在熬一碗热腾腾的鸡汤,但不好意思,这次是泼冷水。

面试官:MySQL如何实现查询数据并根据条件更新到另一张表?

独自空忆成欢 提交于 2020-11-23 21:46:48
点击上方蓝色“ 冰河技术 ”,关注并 选择“设为星标” 持之以恒,贵在坚持,每天进步一点点! 作者个人研发的在高并发场景下,提供的简单、稳定、可扩展的延迟消息队列框架,具有精准的定时任务和延迟队列处理功能。 自开源半年多以来,已成功为十几家中小型企业提供了精准定时调度方案,经受住了生产环境的考验。 为使更多童鞋受益,现给出开源框架地址: https://github.com/sunshinelyz/mykit-delay PS: 欢迎各位Star源码,也可以pr你牛逼哄哄的代码 。 写在前面 今天,我们来聊聊MySQL实现查询数据并根据条件更新到另一张表的方法,如果文章对你有点帮助,麻烦小伙伴们点个赞,给个在看和转发。另外,文章已收录到:https://github.com/sunshinelyz/technology-binghe。 数据案例 原本的数据库有3张表。 t_user :用户表,存放用户的基本信息。 t_role :角色表,存放角色信息。 t_role_user:存放角色与用户的对应关系。 因为业务逻辑的改变,现在要把它们合并为一张表,把t_role中的角色信息插入到t_user中。 首先获取到所有用户对应的角色,以用户ID分组,合并角色地到一行,以逗号分隔。 SELECT t_user.id, GROUP_CONCAT (t_role.content) FROM t

简单聊聊跨域

倖福魔咒の 提交于 2020-11-23 20:49:02
什么是跨域? 由于浏览器的 同源策略 ,导致一个域的js脚本不能直接和另外一个域的内容进行交互,这就叫 跨域 。 同源策略是浏览器最基本的安全功能,但是近年来,前后端分离项目越来越多,前端和后端可能部署在不同域名下,当前端请求后端接口时,这就会经常出现跨域问题。 什么是浏览器的同源策略? 下面是百度百科上的解释: 同源策略(Same origin policy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现。 浏览器一般是从两个方面来做同源策略的,一个是接口的请求,还有一个是对Dom的查询。 浏览器为什么要有同源策略? 我们都知道大部分网站都会把登录信息放在cookie中,每次请求,浏览器会自动将cookie附加在请求头中,这样服务器就知道这个用户已经登录过了。 有一天,你打开某网盘的网站:pan.xxx.com,登录成功以后,网站将登录成功的token放入cookie中。接着,你就开始欣赏着自己这么多年来收藏的各种资源。 突然,右下角蹦出了一个广告,你习惯性的点右上角的x号,但是这个广告的关闭居然放在的左上角,这导致你不小心打开了这个广告:ad.sss.com。 当你打开广告网站的瞬间,它就在背后做着一些不可描述的事情。由于没有同源策略的限制

面试

随声附和 提交于 2020-11-23 20:32:31
进阿里就像是程序员们的一道“必修课”,里面的人拼了命的想出来,外面的人拼了命的想进去!阿里就像一个大熔炉,重铸、再造、升级、更新,每年给社会输送了大量的IT的精英!如果你也有一个“阿里梦的”话,不妨接着往下看! 最新出炉的阿里面试参考指南V3.0版,更新到了分布式、中间件、大数据与高并发、数据库、设计模式与实践、数据结构与算法、面试题举例!下面一部分一部分来分享!由于文章篇幅有限, 需要这份资料的,点击这里即可查看获取方式 面试之高并发 说一个让程序员又爱又恨的问题,刚刚过去的双十一,今年虽然没有之前那么疯狂,但是依旧疯狂,也创建了一个新的成交记录,你在购物的同时,肯定跟一个 环节离不开 ,那就是12点的那个 秒杀抢购环节,但是你知道在秒杀的背后隐藏的是什么吗? 以淘宝为例,除了 阿里云 兄弟背后的 资源支撑 之外,还有就是工程师 靠消耗头发得来的结果 因为秒杀系统说白了就是一个应对 高并发的系统架构 (在这方面,阿里是真的666,没办法!),但是 秒杀是对这个问题最真实显著的体现 ,但是在日常生活中,像疫情期间的钉钉等等,都是高并发的实际场景,那我们就以 秒杀系统设计 为例,来看一下, 高并发场景该如何处理? 一、秒杀架构设计 二、数据库架构发展历程 三、MySQL的扩展性瓶颈 四、为什么要使用NOSQL NOT ONLY SQL 五、传统RDBMS VS NOSQL 六

应用人格和性格测试来提高自信心!

℡╲_俬逩灬. 提交于 2020-11-23 18:32:50
有自卑心理不奇怪,人的成长经历中,谁都会遇到过,可怕的是有很多朋友 把自卑当成了性格内向。 性格内向本身并无贬义,自然也就被我们认为无害,无关紧要,可以忽略的....长此以往,必将导致更严重的心理疾病,精神疾病..... 想要改变自卑,或者是更好地治愈自己的人格,首先就得知道自己的人格特征,才能够有针对性地进行改善,达到理想的平衡状态。 网上人格测试,性格测试有很多,大部分是娱乐的...这些测试不仅会误导人们,而且还会把原本不自卑的人变得忧心........适得其反。 这里对 人格和性格测试 进行了初步地筛选, 下面选择的都是 最为著名的测评 工具,也是应用历史悠久的,广受好评的....可以放心使用。 1、利用MBTI进行人格测试,寻找建立自信的方法 很多人从mbti中找到了自己的归属,从中受益,而有些朋友从mbti的人格类型中区分优劣,其实每种人格都有优势,在做mbti测评的时候,更多的是关注自己的优势,弥补自己的不足,mbti的16中人格类型中,每一种都存在无数名人,伟人,擅用自己的人格特征,就是获取成就的最佳途径。 MBTI职业性格测试简洁版 https://www.zxgj.cn/g/mbti28 2、尝试用“九型人格”分析自己的优势和不足 人格测试的理论有很多种,而九型人格属于最经典之一,九型人格测试被广泛采用,有自卑心的人,很容易就能从中找到属于自己的优势特征

Java程序员工作三年,月薪达到38K,只因他掌握了这七大技能树

可紊 提交于 2020-11-23 09:55:04
Java架构师,首先要是一个高级java攻城狮,熟练使用各种框架,并知道它们实现的原理。jvm虚拟机原理、调优,懂得jvm能让你写出性能更好的代码;池技术,什么对象池,连接池,线程池…… Java构架师需要掌握的技术: 1、熟练使用各种框架,并知道它们实现的原理。 2、jvm虚拟机原理、调优,懂得jvm能让你写出性能更好的代码; 3、池技术,什么对象池,连接池,线程池……Java反射技术,写框架必备的技术,遇到有严重的性能问题,替代方案java字节码技术; 4、nio,没什么好说的,值得注意的是"直接内存"的特点,使用场景;java多线程同步异步;java各种集合对象的实现原理,了解这些可以让你在解决问题时选择合适的数据结构,高效的解决问题,比如hashmap的实现原理,好多五年以上经验的人都弄不清楚,还有为什扩容时有性能问题?不弄清楚这些原理,就写不出高效的代码,还会认为自己做的很对; 总之一句话,越基础的东西越重要,很多人认为自己会用它们写代码了,其实仅仅是知道如何调用api而已,离会用还差的远。 5、熟练使用各种数据结构和算法,数组、哈希、链表、排序树…,一句话要么是时间换空间要么是空间换时间,这里展开可以说一大堆,需要有一定的应用经验,用于解决各种性能或业务上的问题。 6、熟练使用linux操作系统,必备,没什么好说的 。 7、熟悉tcp协议