 下面是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 < THREADS_COUNT; i++) {
15 threads[i] = new Thread(new Runnable() {
16 @Override
17 public void run() {
18 for (int i = 0; i < 10000; i++) {
19 increase();
20 }
21 }
22 });
23 threads[i].start();
24 }
25 while (Thread.activeCount() > 1) {
26 Thread.yield();
27 }
28 System.out.println(race);
29 }
30
程序不结束,并且没有打印。 相关推荐:java入门教程 以上就是2019年Java面试题(腾讯)的详细内容,更多请关注模板之家(www.mb5.com.cn)其它相关文章! |