美的面经汇总

基础

  • Java参数传递是值传递还是引用传递并举例说明。
  • 有哪些常见的Exception,怎么避免空指针异常
  • 拆箱跟装箱是什么
  • Java中最顶层的父类?
  • object里有什么方法
  • 类的概念?面向对象的特性?
  • java是值传递还是引用传递?在java函数中把对象传入到参数,在函数中可以修改对象的属性,为什么(记不得是问为什么还是问怎么做的)?
  • 抽象类和接口区别及应用场景。
  • BIO、NIO、AIO
  • i++和i=i+1的区别(我只说了赋值顺序不同,后面面试官提醒后面的形式能强转类型前面的那种不能)

集合

  • HashMap和HashTable的区别
  • 什么是rehash?重新哈希(hashmap)
  • JAVA中有哪些集合,ArrayList和LinkedList的区别?
  • HashMap用过吗?底层怎么实现的(1.7和1.8)?线程安全吗?不安全用什么?
  • ConcurrentHashMap怎么实现线程安全(1.7和1.8),和HashTable的区别?

sql

  • 我看你学过SQL,那你讲讲sql有哪些语句?那你说一下select怎么查询?那sql后跟的属性还有哪些?
  • 一个表有姓名、年龄、班级,成绩,查询班级中最高成绩、中间成绩、最低成绩,然后按照最高成绩倒序排列
  • 高并发访问数据库怎么负载均衡
  • 数据库索引
  • 对数据库三范式的理解,并举例实际的例子说明为什么不满足
  • MySQL中有一张表,id和name,name有很多重复行,怎么去除重复的数据?
  • 怎么防止SQL注入,举一个SQL注入的实例
  • 数据库怎么防止死锁
  • 客户端用sql查询得到结果,经历哪些过程,数据库引擎怎么处理
  • sql查询慢怎么排查,什么情况下会设置了索引但又不走索引
  • MySQL优化说一下你的理解
  • 存储引擎的隔离级别

框架

  • springboot核心注解
  • spring框架特点
  • 数据库连接池
  • 讲一下SpringMVC的理解
  • springmvc流程
  • SpringMVC有几种注入方式
  • SpringMVC的生命周期?
  • SpringCloud用过吗?怎么搭建一个微服务系统?
  • JDBC跟数据库的交互过程
  • sping的IOC、AOP原理说一下,AOP基于JDK动态代理实现和CgLib的实现的区别,CgLib具体怎么用
  • sping事务的几种实现方式、xml和注解同时配置哪个生效
  • mybatis里面#和$的区别
  • bean的生命周期

一些微服务问题的总结和作者的答案:

作者:12301928hoiefa
链接:https://www.nowcoder.com/discuss/382073
来源:牛客网

微服务:
1)常用的组件
我就说了注册中心(eureka,zookeeper,nacos),配置中心(springcloud config apollo nacos),服务网关(zuul gateway)
2)服务通信方式
http——fegin  rpc
3)rpc调用原理
就说了下客户端从注册中心获取到服务端的地址,然后通过动态代理把要调用的方法信息序列化发送到对应的服务端,服务端反序列化后执行对应的方法把结果返回给客户端,具体可以上网搜一下
4)eureka服务注册一般需要多久
有一个30秒的心跳机制,大概1分钟左右吧(没答到核心)其实这里要结合他的三级缓存和心跳机制来说,具体介绍—— https://blog.csdn.net/weixin_34345560/article/details/88723331

JVM

  • 讲一下对JVM的理解
  • JVM的内存模型,各个内存的作用
  • gc算法
  • java虚拟机是怎么工作的
  • JVM跟JIT的区别
  • 类的加载流程
  • 类加载器【最后说到了双亲委派】
  • 垃圾收集器

多线程与高并发

  • Java多线程 多线程同步
  • 进程和线程区别
  • Java有哪些锁?这些锁的区别
  • 讲一下Java的进程
  • 线程的生命周期
  • 创建线程有几种方式?
  • 线程安全问题,如果是分布式的情况呢,分布式锁原理
  • 实现callable和runnable的区别,get方法是否阻塞?
  • 多线程时,想让多个任务在某一时刻同时执行怎么实现?(答:cyclicBarrier,以及其实现原理)
  • 线程的同步如何实现?synchronized关键字底层实现原理,和ReentrantLock的区别
  • Volatile关键字作用以及原理、CAS算法说一下
  • 线程池的底层工作原理、饱和策略
  • 乐观锁【CAS】
  • 保证线程安全方式?

redis

  • Redis怎么解决并发
  • Redis使用的一些问题
  • redis持久化

一些redis问题的总结和作者的答案:

作者:12301928hoiefa
链接:https://www.nowcoder.com/discuss/382073
来源:牛客网

redis:
1)redis是单线程吗?
只是处理客户请求模块是单线程,其他模块也有使用多线程,比如redis6.0以后用多线程来处理网络数据的读写和协议解析
2)redis快的原理是什么?
io多路复用,监听多个文件描述符,通过系统函数比如epoll select等监听相关的文件描述符,当发生事件后回调文件描述符绑定的事件处理器(当然还有基于内存操作那些,当时没答上来)
3)要你设计,你会设计为多线程吗?
看情况,cpu多核时可以设计为多线程,单核时因为线程切换有代价,所以不会设计为多线程。
4)缓存雪崩
建立本地缓存+限流,键过期时间设置分散一些
5)热点数据过多redis撑不住怎么办
当时回答的不是很好,只是说建立集群,其实如果数据不重要的话,可以配置数据淘汰策略。

计算机网络

  • 关闭浏览器之后重新输入url后,还会保存登录信息吗
  • cookie和session的区别

项目或场景题

  • 登录时输入用户名和密码的时候怎么进行加密
  • 介绍项目开发流程,讲了2分半钟左右
  • 做java项目前做了哪些准备
  • 介绍项目,说了下遇到的难点
  • 哪些项目对你的成长比较大,具体哪方面
  • 如果客户买的东西加入购物车 但是 点按钮没响应 客户把这个问题反应给你 你首先怎么做 然后怎么做

有的没的

  • 学习Java多久了?
  • 你对Java有什么看法,你觉得Java语言比其他语言的优点在哪?
  • 实习时候团队合作问题。团队合作出现分歧应该怎么处理?
  • 有合作解决过哪些问题
  • 介绍一下你的实习或者项目
  • 项目中你是怎么进行统筹规划的
  • 问平时如何学习java新技术的?
  • 现在博客充斥着转载的文章,你是如何分辨并且化为己用的?请结合项目回答。
  • 学了哪些计算机基础课
  • 平时如何学习的,看了什么书
posted @ 2021-02-17 22:54  猫坚果NutCat  阅读(252)  评论(0编辑  收藏  举报