下面是2019年的一次腾讯公司的面试题目,分享给大家,希望能对大家有所帮助。
(推荐视频教程:java教学视频)
- 从简历项⽬中选⼀个项⽬,说说你在其中遇到了什么重⼤挑战?以及你的解决问题的思路?
- ⼀段代码要执⾏多个redis命令,不加锁的情况下如何保证原⼦性?
使⽤lua脚本:https://segmentfault.com/a/1190000009811453 - 谈谈数据结构,⽐如⼆叉树、红⿊树?
理解这篇:https://juejin.im/post/5a27c6946fb9a04509096248 - 说说B-tree、B+tree的区别和使⽤场景?
- B-tree:
B-tree 利⽤了磁盘块的特性进⾏构建的树。每个磁盘块⼀个节点,每个节点包含了很关键字。把树的节点关键字增多后树的
层级⽐原来的⼆叉树少了,减少数据查找的次数和复杂度。
B-tree巧妙利⽤了磁盘预读原理,将⼀个节点的⼤⼩设为等于⼀个⻚(每⻚为4K),这样每个节点只需要⼀次I/O就可以完
全载⼊。
B-tree 的数据可以存在任何节点中。 - B+tree:
B+tree 是 B-tree 的变种,B+tree 数据只存储在叶⼦节点中。这样在B树的基础上每个节点存储的关键字数更多,树的层级
更少所以查询数据更快,所有指关键字指针都存在叶⼦节点,所以每次查找的次数都相同所以查询速度更稳定; - mysql哪个版本哪个存储引擎的索引使⽤的B+tree,为什么不使⽤红⿊树?
需要先理解B+tree、红⿊树的实现原理。B+tree带有顺序访问指针,是红⿊树不具备的。 - 说说⼏种常⻅的消息中间件的区别?
- 中⼩型公司⾸选RabbitMQ:管理界⾯简单,⾼并发。
- 更多相关面试题推荐:java面试题及答案
- ⼤型公司可以选择RocketMQ:更⾼并发,可对rocketmq进⾏定制化开发。
- ⽇志采集功能,⾸选kafka,专为⼤数据准备。
- rabbitmq如何保证消息的可靠性?
详⻅“⾯试题库/rabbitmq” - springcloud服务发现原理?
a. 每30s发送⼼跳检测重新进⾏租约,如果客户端不能多次更新租约,它将在90s内从服务器注册中⼼移除。
a. 注册信息和更新会被复制到其他Eureka 节点,来⾃任何区域的客户端可以查找到注册中⼼信息,每30s发⽣⼀次复制来定位他们的服务,并进⾏远程调⽤。
b. 客户端还可以缓存⼀些服务实例信息,所以即使Eureka全挂掉,客户端也是可以定位到服务地址的。 - 介绍下springcloud各个组件?springcloud的注册中⼼除了eureka还可以⽤什么?
springcloud的⼯作原理
特性 ActiveMQ RabbitMQ RocketMQ kafka
开发语⾔ java erlang java scala
单机吞吐量 万级 万级 10万级 10万级
时效性 ms级 us级 ms级 ms级以内
可⽤性 ⾼(主从架构) ⾼(主从架构) ⾮常⾼(分布式架构) ⾮常⾼(分布式架构)
功能特性
成熟的产品,在很多公司得到应⽤;有较多的⽂档;各种协议⽀持较好
基于erlang开发,所以并发能⼒很强,性能极其好,延时很低;管理界⾯较丰富
MQ功能⽐较完备,扩展性佳
只⽀持主要的MQ功能,像⼀些消息查询,消息回溯等功能没有提供,毕竟是为⼤数据准备的,在⼤数据领域应⽤⼴。
springcloud由以下⼏个核⼼组件构成:
Eureka:各个服务启动时,Eureka Client都会将服务注册到Eureka Server,并且Eureka Client还可以反过来从Eureka Server拉取注册表,从⽽知道其他服务在哪⾥
Ribbon:服务间发起请求的时候,基于Ribbon做负载均衡,从⼀个服务的多台机器中选择⼀台
Feign:基于Feign的动态代理机制,根据注解和选择的机器,拼接请求URL地址,发起请求
Hystrix:发起请求是通过Hystrix的线程池来⾛的,不同的服务⾛不同的线程池,实现了不同服务调⽤的隔离,避免了服务雪崩
的问题
Zuul:如果前端、移动端要调⽤后端系统,统⼀从Zuul⽹关进⼊,由Zuul⽹关转发请求给对应的服务
注册中⼼还可以⽤zookeeper。 - 微服务有⼏种限流⽅式?
spring cloud gateway:https://windmt.com/2018/05/09/spring-cloud-15-spring-cloud-gateway-ratelimiter/ - 限流的情况下,服务隔离还有没有必要?
https://www.javazhiyin.com/25964.html - dubbo有⼏种负载均衡?负载均衡是在服务端还是客户端?
Dubbo负载均衡在客户端,dubbo内置了4种负载均衡策略:
a. RandomLoadBalance:随机负载均衡。随机的选择⼀个。是Dubbo的默认负载均衡策略。
b. RoundRobinLoadBalance:轮询负载均衡。轮询选择⼀个。
c. LeastActiveLoadBalance:最少活跃调⽤数,相同活跃数的随机。活跃数指调⽤前后计数差。使慢的 Provider 收到更少请求,
因为越慢的 Provider 的调⽤前后计数差会越⼤。
d. ConsistentHashLoadBalance:⼀致性哈希负载均衡。相同参数的请求总是落在同⼀台机器上。 - 如何实现redis分布式锁?需要注意什么问题?
了解这篇:https://juejin.im/post/5bbb0d8df265da0abd3533a5 - 说说你看过的源码?其中⽤到了什么设计模式或者设计亮点?
具体分析,⾯试前需要熟读⼀些源码,如spring源码。 - 如何实现aop?项⽬中哪些地⽅⽤到了aop?
掌握:https://juejin.im/post/5bf4fc84f265da611b57f906 - 后置处理器的作⽤?
Spring中bean后置处理器BeanPostProcessor:https://www.jianshu.com/p/f80b77d65d39 - spring bean作⽤域,什么时候使⽤request作⽤域。
详读:https://blog.csdn.net/icarus_wang/article/details/51586776 - 说说下⾯这道题的结果?
-
1 package com.giveu.web; 2 3 public class VolatileTest { 4 public static volatile int race = 0; 5 6 public static void increase() { 7 race++; 8 } 9 10 private static final int THREADS_COUNT = 10; 11 12 public static void main(String[] args) { 13 Thread[] threads = new Thread[THREADS_COUNT]; 14 for (int i = 0; i 1) { 26 Thread.yield(); 27 } 28 System.out.println(race); 29 } 30
登录后复制
程序不结束,并且没有打印。
相关推荐:java入门教程
立即学习“Java免费学习笔记(深入)”;
以上就是2019年Java面试题(腾讯)的详细内容,更多请关注慧达安全导航其它相关文章!
免责 声明
1、本网站名称:慧达安全导航
2、本站永久网址:https//www.huida178.com/
3、本站所有资源来源于网友投稿和高价购买,所有资源仅对编程人员及源代码爱好者开放下载做参考和研究及学习,本站不提供任何技术服务!
4、本站所有资源的属示图片和信息不代表本站的立场!本站只是储蓄平台及搬运
5、下载者禁止在服务器和虚拟机下进行搭建运营,本站所有资源不支持联网运行!只允许调试,参考和研究!!!!
6、未经原版权作者许可禁止用于任何商业环境,任何人不得擅作它用,下载者不得用于违反国家法律,否则发生的一切法律后果自行承担!
7、为尊重作者版权,请在下载24小时内删除!请购买原版授权作品,支持你喜欢的作者,谢谢!
8.若资源侵犯了您的合法权益,请持 您的版权证书和相关原作品信息来信通知我们!QQ:1247526623我们会及时删除,给您带来的不便,我们深表歉意!
9、如下载链接失效、广告或者压缩包问题请联系站长处理
10、如果你也有好源码或者教程,可以发布到网站,分享有金币奖励和额外收入!
11、本站资源售价只是赞助,收取费用仅维持本站的日常运营所需
12、因源码具有可复制性,一经赞助,不得以任何形式退款。
13、本文内容由网友自发贡献和站长收集,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系1247526623@qq.com
转载请注明出处: 慧达安全导航 » 2019年Java面试题(腾讯)
发表评论 取消回复