Q:Set Map 的实现
A:Set就是用Map实现的,Map的Value设置为Present的一个占位符实现。
Q:Map有什么实现
A:LinkedHashMap,HashMap,TreeMap
Q:讲讲LinkedHashMap。
A:就是在HashMap的基础上维护一个List,该list的顺序是以put的顺序为准的。使用场景常用来作为简单的缓存,使用LRU算法淘汰entry
Q:TreeMap什么实现?
A:RB树,(然后说自己没看过JDK的RB源码,但2年前看过C++的STL中RBtree的实现,以及算法导论),说了RBtree的性质什么非红即黑,root和leaf皆为black,Red的子节点必须为Black,所有路径Black数目系统,有四种旋转方式。
Q:哪四种?
A:不会,记不得了。。。
Q:RBtree复杂度?
A:log2N
Q:why?
A:所有路径最短为n个black node,最长为2n个node(n个black+n个Red)。
Q:知道还有哪些平衡数吗?
A:B+,AVL。
Q:下一题是。。。
A:大人,我还没说HashMap呢。
Q:问烂了的东西,没必要浪费时间。。。(一脸不屑)
Q:用过多线程,知道几种锁?
A:实现Lock的锁,主要以ReentrantLock为主,synchronized,还可以使用volatile的现行发生语义。
Q:知道ConcurrentHashMap吗?
A:知道,Java1.7和Java1.8实现不一样。你是问?
Q:1.8,如何实现线程安全的?都是加锁吗?
A:不是呢,初始化的时候以及如果bucket为null的情况,那么这个bucket第一个element不会加锁,会使用CAS算法初始化和赋值。如果已有元素,需要解决hash冲突,会使用开链法,这里和ThreadLocalMap不一样,ThreadLocalMap使用的是线性探测法(此处暗示面试官,ThreadLocalMap源码我也看过哦,并引导面试官往这上面问,可惜没中计)。(顿了顿,看面试官没追问,继续往下)。在使用开链法的时候,会使用synchronized锁,此处和1.7不同,1.7使用Lock(暗示面试官1.7我也hold的住)。此时锁的粒度为bucket,并且在ele的数目超过8时会转换为RBtree。
Q:为什么粒度为bucket?
A:因为锁的粒度越小,其他阻塞的几率越小,相应的并发度就越好。但是粒度太小,有时候也有缺点,就是容易出现死锁问题。比如Mysql中InnoDB里默认为行锁就容易死锁,而MyISAM为表锁就基本不会死锁,还是看业务权衡吧。在举个例子,我们都知道Intel CPU处理器中的高速缓存是以缓存行为最小单位分配的(64B),在多处理器并发是,为了解决缓存一致性问题,在锁的时候也是一缓存行为单位。所以在LinkedTransferQueue的实现中,会对Value值进行填充,直到为64B,以此达到每个节点都可以并发访问的结果,而不会因为一个CPU在access一个节点时,导致紧邻的节点不能用。并且1.7的实现也是将整个hash分为16个segment,来减小锁的粒度。
Q:问了下数据库优化,最近一次怎么做的SQL调优。
A:讲了下选择性,聚簇索引,二级索引,回表查询,随机io,InnoDB使用蒙特卡罗算法进行optimization的过程。扯了下MRR,三星索引的概念。以及使用explain,profile,optimizer trace来作为参考。(内容太多就不写了,此处推荐一些Mysql的学习资料,InnoDB技术内幕,高性能Mysql,阿里数据库内核月报,美团点评沙龙,何登成的blog,彭利勋的blog)
Q:解释下RESTful协议?
A:  百度的到就不写了
Q:RPC用过哪些?知道原理吗?
A:用过dsf,隔壁部门自己造的烂轮子,三天两头出问题,目前已弃置不用,dsf原理没兴趣看。不过准备看下thrift。
Q:安利了我一下GO RPC。然后问了下算法题。
A:一个List<Raw> src,结构为
class Raw {
  String id;
  String parentId;
}
转换为树,
class TreeNode {
  String id;
  List<TreeNode> children;
}
实现函数TreeNode convert(List<Raw> src) {}

北京玉符飞扬科技面经(一面拿到offer)面试官是facebook的大牛相关推荐

  1. java服务器访问接口提示network error_北京JAVA开发三年,拿到美团35K的offer面试心得...

    前言 长文干货提示,文章为大家完整记录了一位在北京做了3年的JAVA开发的朋友,如何通过美团的面试及拿到35K的offer.全篇内容由全程电话录音再手打腾稿,原创手打不易,请记得三连支持! 文章末尾有 ...

  2. 一文读懂零信任架构的概念、现状和挑战(来自玉符科技CEO专访内容)

    2020年,企业高管和CISO们的头号任务就是数据安全和隐私保护,对于拥有海量用户数据的企业来说,数据安全和隐私保护正面临三大挑战:合规.远程办公加速安全边界消失.数字化转型(上云).而零信任正是当下 ...

  3. 腾讯云与玉符科技联合发布“千帆玉符”助力IDaaS行业发展

    6月5日,腾讯云宣布与玉符科技达成战略合作,合作共建"千帆计划"的IDaaS平台.双方联合研发的身份治理服务千帆玉符将于近日上线. 「千帆计划」是腾讯于 2019 年10 月 29 ...

  4. 年薪40-100万 | 北京思无界科技招聘三维重建算法工程师

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 公司信息 北京思无界科技有限公司成立于2017年3月,专注于家居行业数字化建设.坚持以"数字 ...

  5. 2021年1月20日 北京经纬恒润科技有限公司一面

    2021年1月20日 北京经纬恒润科技有限公司一面 岗位:后端开发实习生 自我介绍(这个地方需要自己去提炼自己的自我介绍) 问了为什么不做算法方面的工作 主要用什么语言来做项目呢,然后开始问我相关研究 ...

  6. 【招聘(北京武汉)】北京高远华信科技 .NET 高级工程师

    职位名称:.NET Core 高级工程师 培养方向:架构师.技术总监 月薪:15k-20k 工作地点:北京.武汉 职位信息 1.理解后端架构,与后端工程师配合,为项目提供最优化的.NET Core技术 ...

  7. 2019支持c99吗_德国LYNX携手北京十方融科科技有限公司成功中标2019年中国联通北京市分公司4K超高清视频信号传输设备购置项目...

    2019年7月,德国LYNX携手北京十方融科科技有限公司成功中标2019年中国联通北京市分公司4K超高清视频信号传输设备购置项目. 该项目包括60对4K基带光端机和20对高清基带光端机. 4K光端机采 ...

  8. 北京汉正天成科技有限公司大家听说过没?这家公司怎么样?

    北京汉正天成科技有限公司大家听说过没?这家公司怎么样? 来自 " ITPUB博客 " ,链接:http://blog.itpub.net/29762938/viewspace-12 ...

  9. 北京翰鑫信息科技有限公司怎么样

    北京翰鑫信息科技有限公司基本信息 注册资本 100万(元) 实缴资本 - 法定代表人 李子庚 经营状态 开业 曾用名 - 所属行业 科技推广和应用服务业 统一社会信用代码 91110114MA007C ...

最新文章

  1. 远程服务器的url怎么配置文件,Linux常用命令(5)--SSH访问远程服务器、SCP服务器间文件拷贝...
  2. Windows系统安全管理
  3. DDMS的使用、内存溢出的调试和模拟器的启动命令参数
  4. 091_类数组对象转为数组
  5. 概率论与数理统计中的算子半群 第一讲 Banach-Steinhaus定理1 Baire‘s Category与Banach-Steinhaus定理的证明
  6. 玩转StyleGAN2模型:教你生成动漫人物
  7. 跨界会对电商行业造成什么影响
  8. 故乡与文学:一场别开生面的跨年代文学对话(一)
  9. 如何设置电脑自动锁屏_这个手机锁屏密码竟可以根据时间而变化!密码每分钟都会发生改变...
  10. 基于HBase+ ElasticSearch的海量交通数据实时存取方案设计
  11. matlab com组件 发布,matlab生成com组件
  12. html 文件动态加载.PDI 流程图
  13. kafka实时日志处理
  14. JVM指令集(指令码、助记符、功能描述)(转)
  15. 常规网站模板(flash作div背景)
  16. Hibernate检索策略
  17. NiFi Processors概述
  18. 小工具推荐:tokei(高效统计代码行数)
  19. SSL: error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch
  20. 阅读《人类简史》思考的几个问题。

热门文章

  1. 印象笔记目录导出(失败)
  2. [创业-29]:雪崩与狗,创业者真实写照
  3. 修复pd16虚拟机在big sur 的usb无法使用和无法联网问题!
  4. excel中按出生日期排序公式
  5. Python + PIL 处理支付宝AR红包
  6. 凸包问题--旋转卡壳
  7. ping命令的多种玩法,以前竟然只用它来测试网速!
  8. FPGA——PS/2驱动
  9. TOP金服是钱包项目吗?TOP金服安全吗?TOP金服怎么盈利?
  10. ios13短信如何转移到android,iOS13加入全新数据迁移功能,无需网络也能转移旧手机数据...