Java⾯试题!5年经验Java程序员⾯试27天,看看这篇⽂章吧!
Kafka宕机引发的⾼可⽤问题
问题要从⼀次Kafka的宕机开始说起。
笔者所在的是⼀家⾦融科技公司,但公司内部并没有采⽤在⾦融⽀付领域更为流⾏的RabbitMQ,⽽是采⽤了设计之初就为⽇志处理⽽⽣的Kafka,所以我⼀直很好奇Kafka的⾼可⽤实现和保障。从Kafka部署后,系统内部使⽤的Kafka⼀直运⾏稳定,没有出现不可⽤的情况。
但最近系统测试⼈员常反馈偶有Kafka消费者收不到消息的情况,登陆管理界⾯发现三个节点中有⼀个节点宕机挂掉了。但是按照⾼可⽤的理念,三个节点还有两个节点可⽤怎么就引起了整个集的消费者都接收不到消息呢?
要解决这个问题,就要从Kafka的⾼可⽤实现开始讲起。
⾯试准备
不论是校招还是社招都避免不了各种⾯试、笔试,如何去准备这些东西就显得格外重要。 运筹帷幄之后,决胜千⾥之外!不打毫⽆准备的仗,我觉得⼤家可以先从下⾯⼏个⽅⾯来准备⾯试:
1. ⾃我介绍。(介绍⾃⼰的项⽬经历以及⼀些特长⽽不是简单⾃我介绍喜好等)
2. ⾃⼰⾯试中可能涉及哪些知识点、那些知识点是重点。
3. ⾯试中哪些问题会被经常问到、⾯试中⾃⼰该如何回答。
4. ⾃⼰的简历该如何写。
“80%的offer掌握在20%的⼈⼿中” 这句话也不是不⽆道理的。决定你⾯试能否成功的因素中实⼒固然占有很⼤⼀部 分⽐例,但是如果你的⼼态或者说运⽓不好的话,依然⽆法拿到满意的 offer。运⽓暂且不谈,就拿⼼态来说,千万 不要因为⾯试失败⽽⽓馁或者说怀疑⾃⼰的能⼒,⾯试失败之后多总结⼀下失败的原因,后⾯你就会发现⾃⼰会越来 越强⼤。
另外,⼤家要明确的很重要的⼏点是:
1. 写在简历上的东西⼀定要慎重,这可能是⾯试官⼤量提问的地⽅;
2. 将⾃⼰的项⽬经历完美的展⽰出来⾮常重要。
常见⾯试问题及范围如下
c语言sqrt函数用法
Java基础
1. 重载和重写的区别
2. String 和 StringBuffer、StringBuilder 的区别是什么?String 为什么是不可变的?
3. ⾃动装箱与拆箱
4. == 与 equals
5. final 关键字
6. Object类的常见⽅法
7. Java 中的异常处理
8. 获取⽤键盘输⼊常⽤的的两种⽅法
9. 接⼝和抽象类的区别是什么
集合框架
jboss下载1. Arraylist 与 LinkedList 异同
2. ArrayList 与 Vector 区别
3. HashMap的底层实现
4. HashMap 和 Hashtable 的区别
5. HashMap 的长度为什么是2的幂次⽅
6. HashMap 多线程操作导致死循环问题
7. HashSet 和 HashMap 区别
8. ConcurrentHashMap 和 Hashtable 的区别
9. ConcurrentHashMap线程安全的具体实现⽅式/底层具体实现
多线程与并发
1. AQS 原理
css样式display
2. AQS 对资源的共享⽅式
3. AQS底层使⽤了模板⽅法模式
4. 说⼀说⾃⼰对于 synchronized 关键字的了解
5. 说说⾃⼰是怎么使⽤ synchronized 关键字,在项⽬中⽤到了吗
6. 讲⼀下 synchronized 关键字的底层原理
在线网页代码翻译器
7. 说说 JDK1.6 之后的synchronized 关键字底层做了哪些优化,可以详细介绍⼀下这些优化吗
8. 谈谈 synchronized和ReenTrantLock 的区别
9. 说说 synchronized 关键字和 volatile 关键字的区别
10. 为什么要⽤线程池?
11. 实现Runnable接⼝和Callable接⼝的区别
12. 执⾏execute()⽅法和submit()⽅法的区别是什么呢?
13. 如何创建线程池
14. 介绍⼀下Atomic 原⼦类
15. JUC 包中的原⼦类是哪4类?
java常见笔试题16. 讲讲 AtomicInteger 的使⽤
17. 能不能给我简单介绍⼀下 AtomicInteger 类的原理
JVM
1. Java 中会存在内存泄漏吗,简述⼀下?
2. 描述⼀下 JVM 加载 Class ⽂件的原理机制?
3. 什么是tomcat类加载机制?
4. 类加载器双亲委派模型机制?
5. 垃圾回收常见问题
6. 什么是GC? 为什么要有 GC?
7. 简述⼀下Java 垃圾回收机制?
8. 如何判断⼀个对象是否存活?
9. 垃圾回收的优点和原理,并考虑 2 种回收机制?
10. Java 中垃圾收集的⽅法有哪些?
11. 讲讲你理解的性能评价及测试指标?
12. 常⽤的性能优化⽅式有哪些?
⽹络编程与操作系统
1. TCP、UDP 协议的区别
2. 在浏览器中输⼊url地址 ->> 显⽰主页的过程
3. 各种协议与HTTP协议之间的关系
4. HTTP长连接、短连接
5. TCP 三次握⼿和四次挥⼿(⾯试常客)
6. 简单介绍⼀下 Linux ⽂件系统?
7. ⼀些常见的 Linux 命令了解吗?
MySQL
艾静和grunt番外1. 说说⾃⼰对于 MySQL 常见的两种存储引擎:MyISAM与InnoDB的理解?
2. 数据库索引了解吗?
3. 为什么索引能提⾼查询速度?
4. Mysql如何为表字段添加索引?
5. 对于⼤表的常见优化⼿段说⼀下?
Spring
1. Spring Bean 的作⽤域
2. Spring 事务中的隔离级别
3. Spring 事务中的事务传播⾏为
4. AOP是什么?
5. IOC是什么?
分布式
1. 为什么要⽤ redis缓存?
2. 为什么要⽤ redis ⽽不⽤ map/guava 做缓存?
3. redis 和 memcached 的区别?
4. redis 常见数据结构以及使⽤场景分析?(String,Hash,List,Set,Sorted Set)
5. redis 设置过期时间
6. redis 内存淘汰机制(MySQL⾥有2000w数据,Redis中只存20w的数据,如何保证Redis中的数据都是热点数据?)
7. redis 持久化机制(怎么保证 redis 挂掉之后再重启数据可以进⾏恢复)?
8. redis 事务
9. 缓存雪崩和缓存穿透问题解决⽅案
10. 如何解决 Redis 的并发竞争 Key 问题
11. 如何保证缓存与数据库双写时的数据⼀致性?
12. 什么是消息队列?为什么要⽤消息队列?
13. 通过异步处理提⾼系统性能(削峰、减少响应所需时间)
14. 降低系统耦合性
15. 使⽤消息队列带来的⼀些问题
16. JMS两种消息模型
17. JMS 五种不同的消息正⽂格式
18. 常见的消息队列对⽐
19. 什么是 Dubbo?为什么要⽤ Dubbo?
20. 什么是 RPC?RPC原理是什么?
21. Dubbo ⼯作原理?
22. 解释⼀下什么是负载均衡?
23. 看看 Dubbo 提供的负载均衡策略?
24. zookeeper宕机与dubbo直连的情况?
总结
总体来说,如果你想转⾏从事程序员的⼯作,Java开发⼀定可以作为你的第⼀选择。但是不管你选择什么编程语⾔,提升⾃⼰的硬件实⼒才是拿⾼薪的唯⼀⼿段。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。