微服务涉及到的技术以及需要注意的问题有哪些?
注册中心你了解了哪些?
consul 的可靠性你了解吗?
consul 的机制你有没有具体深入过?有没有和其他的注册中心对比过?
项目用 Spring 比较多,有没有了解 Spring 的原理?AOP 和 IOC 的原理
Spring Boot除了自动配置,相比传统的 Spring 有什么其他的区别?
Spring Cloud 有了解多少?
Spring Bean 的生命周期
HashMap 和 hashTable 区别?
Object 的 hashcode 方法重写了,equals 方法要不要改?
Hashmap 线程不安全的出现场景
线上服务 CPU 很高该怎么做?有哪些措施可以找到问题
JDK 中有哪几个线程池?顺带把线程池讲了个遍
应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描
SQL 索引的顺序,字段的顺序
查看 SQL 是不是使用了索引?(有什么工具)
TCP 和 UDP 的区别?TCP 数据传输过程中怎么做到可靠的?
说下你知道的排序算法吧
查找一个数组的中位数?
二面
你有什么问题想问我的吗?(常规问询)
自我介绍、工作经历、技术栈
项目中你学到了什么技术?
微服务划分的粒度?
微服务的高可用怎么保证的?
负载均衡与反向代理,隔离,限流,降级,超时与重试,回滚,压力测试与应急预案
常用的负载均衡,该怎么用,你能说下吗?
(技术问)
http重定向
DNS负载均衡
反向代理负载均衡
IP负载均衡(LVS-NAT)
直接路由(LVS-DR)
IP隧道(LVS-TUN)
网关能够为后端服务带来哪些好处?
Spring Bean 的生命周期
xml 中配置的 init、destroy 方法怎么可以做到调用具体的方法?
《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》
【docs.qq.com/doc/DSmxTbFJ1cmN1R2dB】 完整内容开源分享
反射的机制
Object 类中的方法
对象比较是否相同
hashmap put 方法存放的时候怎么判断是否是重复的
Object toString 方法常用的地方,为什么要重写该方法
Set 和 List 区别?
ArrayList 和 LinkedList 区别
如果存取相同的数据,ArrayList 和 LinkedList 谁占用空间更大?
Set 存的顺序是有序的吗?
常见 Set 的实现有哪些?
TreeSet 对存入对数据有什么要求呢?
HashSet 的底层实现呢?
TreeSet 底层源码有看过吗?
HashSet 是不是线程安全的?为什么不是线程安全的?
Java 中有哪些线程安全的 Map?
HashTable 你了解过吗?
如何保证线程安全问题?
synchronized、lock
volatile 的原子性问题?为什么 i++ 这种不支持原子性?从计算机原理的设计来讲下不能保证原子性的原因happens before 原理
cas 操作
lock 和 synchronized 的区别?
公平锁和非公平锁
Java 读写锁
读写锁设计主要解决什么问题?
你项目除了写 Java 代码,还有前端代码,那你知道前端有哪些框架吗?
MySQL 分页查询语句
MySQL 事务特性和隔离级别
二、事务的并发问题
不可重复读会出现在什么场景?
sql having 的使用场景
前端浏览器地址的一个 http 请求到后端整个流程是怎么样?
http 默认端口,https 默认端口
DNS 你知道是干嘛的吗?
你们开发用的 ide 是啥?你能说下 idea 的常用几个快捷键吧?
代码版本管理你们用的是啥?
git rebase 和 merge 有什么区别?
你们公司加班多吗?(题外话)
举例回答:
项目用 Spring 比较多,有没有了解 Spring 的原理?AOP 和 IOC 的原理
答:(1). IoC(Inversion of Control)是指容器控制程序对象之间的关系,而不是传统实现中,由程序代码直接操控。控制权由应用代码中转到了外部容器,控制权的转移是所谓反转。 对于Spring而言,就是由Spring来控制对象的生命周期和对象之间的关系;IoC还有另外一个名字——“依赖注入(Dependency Injection)”。从名字上理解,所谓依赖注入,即组件之间的依赖关系由容器在运行期决定,即由容器动态地将某种依赖关系注入到组件之中。
(2). 在Spring的工作方式中,所有的类都会在spring容器中登记,告诉spring这是个什么东西,你需要什么东西,然后spring会在系统运行到适当的时候,把你要的东西主动给你,同时也把你交给其他需要你的东西。所有的类的创建、销毁都由 spring来控制,也就是说控制对象生存周期的不再是引用它的对象,而是spring。对于某个具体的对象而言,以前是它控制其他对象,现在是所有对象都被spring控制,所以这叫控制反转。
(3). 在系统运行中,动态的向某个对象提供它所需要的其他对象。
(4). 依赖注入的思想是通过反射机制实现的,在实例化一个类时,它通过反射调用类中set方法将事先保存在HashMap中的类属性注入到类中。 总而言之,在传统的对象创建方式中,通常由调用者来创建被调用者的实例,而在Spring中创建被调用者的工作由Spring来完成,然后注入调用者,即所谓的依赖注入or控制反转。 注入方式有两种:依赖注入和设置注入; IoC的优点:降低了组件之间的耦合,降低了业务对象之间替换的复杂性,使之能够灵活的管理对象。