200道Java灵魂考题:全部掌握拿下阿里P7腾讯T3.2

在技术面试中都会对面试者硬实力进行考查呢,主要从2个角度进行:

  • 宽度:掌握的知识是否全面
  • 深度:掌握的能力是否深入

宽度在一定程度上决定了你是否能够进入一家公司,深度则决定了你offer的等级。对于BAT,甚至更好的公司来说,有时候深度甚至可能决定你是否能够进入这家公司。

在过去几个月里,经过深度思考和总结最终整理出了如下知识点详细解析,只要你认真看完,并牢记在心里,但是要掌握还得在实践中使用。

具体整理知识点如下:

  • Java基础 32 题及答案解析
  • JVM与调优 20 题及答案解析
  • 多线程&并发编程 22 题及答案解析
  • Spring源码必问 13 题及答案解析
  • Mybatis源码必问 12 题及答案解析
  • Spring Boot实战 14 题及答案解析
  • MySQL优化 10 题及答案解析
  • Redis实战 11 题及答案解析
  • Spring Cloud微服务 10 题及答案解析
  • Nginx 面试题及答案解析
  • MQ面试题及答案解析
  • 数据结构与算法 面试题及答案解析
  • linux 面试题及答案解析
  • ......

第一、java基础

  1. Java语言有哪些特点
  2. 面向对象和面向过程的区别
  3. 八种基本数据类型的大小,以及他们的封装类
  4. 标识符的命名规则。
  5. instanceof 关键字的作用
  6. Java自动装箱与拆箱
  7. 重载和重写的区别
  8. equals与==的区别
  9. Hashcode的作用
  10. String、String StringBuffer 和 StringBuilder 的区别是什么?
  11. ArrayList和linkedList的区别
  12. HashMap和HashTable的区别
  13. Collection包结构,与Collections的区别
  14. Java的四种引用,强弱软虚
  15. 泛型常用特点
  16. Java创建对象有几种方式?
  17. 有没有可能两个不相等的对象有相同的hashcode
  18. 深拷贝和浅拷贝的区别是什么?
  19. final有哪些用法?
  20. static都有哪些用法?
  21. 3*0.1==0.3返回值是什么
  22. a=a+b与a+=b有什么区别吗?
  23. try catch finally,try里有return,finally还执行么?
  24. Excption与Error包结构
  25. OOM你遇到过哪些情况,SOF你遇到过哪些情况
  26. 简述线程、程序、进程的基本概念。以及他们之间关系是什么?
  27. 线程有哪些基本状态?
  28. Java 序列化中如果有些字段不想进行序列化,怎么办?
  29. Java 中 IO 流
  30. Java IO与 NIO的区别
  31. java反射的作用于原理
  32. 说说List,Set,Map三者的区别?

200道Java灵魂考题:全部掌握拿下阿里P7腾讯T3.2

已整理成文档

二、JVM

200道Java灵魂考题:全部掌握拿下阿里P7腾讯T3.2

JVM记忆脑图

  • 简述一下JVM的内存模型
  • 堆和栈的区别
  • 什么时候会触发FullGC
  • 什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”?
  • Java内存结构
  • 对象分配规则
  • 描述一下JVM加载class文件的原理机制?
  • Java对象创建过程
  • 类的生命周期
  • 简述Java的对象结构
  • 如何判断对象可以被回收?
  • JVM的永久代中会发生垃圾回收么?
  • 垃圾收集算法
  • 调优命令有哪些?
  • 调优工具
  • Minor GC与Full GC分别在什么时候发生?
  • 你知道哪些JVM性能调优
  • .........

200道Java灵魂考题:全部掌握拿下阿里P7腾讯T3.2

已整理成文档

三、多线程&并发

  • Java中实现多线程有几种方法
  • 如何停止一个正在运行的线程
  • notify()和notifyAll()有什么区别?
  • sleep()和wait() 有什么区别?
  • volatile 是什么?可以保证有序性吗?
  • Thread 类中的start() 和 run() 方法有什么区别?
  • 为什么wait, notify 和 notifyAll这些方法不在thread类里面?
  • 为什么wait和notify方法要在同步块中调用?
  • Java中interrupted 和 isInterruptedd方法的区别?
  • Java中synchronized 和 ReentrantLock 有什么不同?
  • 有三个线程T1,T2,T3,如何保证顺序执行?
  • SynchronizedMap和ConcurrentHashMap有什么区别?
  • 什么是线程安全
  • Thread类中的yield方法有什么作用?
  • Java线程池中submit() 和 execute()方法有什么区别?
  • 说一说自己对于 synchronized 关键字的了解
  • 说说自己是怎么使用 synchronized 关键字,在项目中用到了吗synchronized关键字最主要的三种使用方式:
  • 什么是线程安全?Vector是一个线程安全类吗?
  • volatile关键字的作用?
  • 常用的线程池有哪些?
  • 简述一下你对线程池的理解
  • Java程序是如何执行的

200道Java灵魂考题:全部掌握拿下阿里P7腾讯T3.2

已整理成文档

四、Spring源码

  1. Spring的IOC和AOP机制?
  2. Spring中Autowired和Resource关键字的区别?
  3. 依赖注入的方式有几种,各是什么?
  4. 讲一下什么是Spring
  5. Spring MVC流程
  6. SpringMVC怎么样设定重定向和转发的?
  7. SpringMVC常用的注解有哪些?
  8. Spring的AOP理解:
  9. Spring的IOC理解
  10. 解释一下spring bean的生命周期
  11. 解释Spring支持的几种bean的作用域。
  12. Spring基于xml注入bean的几种方式:
  13. Spring框架中都用到了哪些设计模式?
  14. ..........

200道Java灵魂考题:全部掌握拿下阿里P7腾讯T3.2

Spring源码答案解析

五、MyBatis源码

  • 什么是MyBatis
  • MyBatis的优点和缺点
  • #{}和${}的区别是什么?
  • 当实体类中的属性名和表中的字段名不一样 ,怎么办 ?
  • Mybatis是如何进行分页的?分页插件的原理是什么?
  • Mybatis是如何将sql执行结果封装为目标对象并返回的?都有哪些映射形式?
  • 如何执行批量插入?
  • Xml映射文件中,除了常见的select|insert|updae|delete标签之外,还有哪些标签?
  • MyBatis实现一对一有几种方式?具体怎么操作的?
  • Mybatis是否支持延迟加载?如果支持,它的实现原理是什么?
  • Mybatis的一级、二级缓存
  • .......

200道Java灵魂考题:全部掌握拿下阿里P7腾讯T3.2

MyBatis源码答案解析

六、Spring Boot

  • 为什么要用SpringBoot
  • Spring Boot 的核心注解是哪个?它主要由哪几个注解组成的?
  • 运行Spring Boot有哪几种方式?
  • 如何理解 Spring Boot 中的 Starters?
  • 如何在Spring Boot启动的时候运行一些特定的代码?
  • Spring Boot 需要独立的容器运行吗?
  • Spring Boot中的监视器是什么?
  • 如何使用Spring Boot实现异常处理?
  • 你如何理解 Spring Boot 中的 Starters?
  • springboot常用的starter有哪些
  • SpringBoot 实现热部署有哪几种方式?
  • 如何理解 Spring Boot 配置加载顺序?
  • Spring Boot 的核心配置文件有哪几个?它们的区别是什么?
  • 如何集成 Spring Boot 和 ActiveMQ?
  • .....

200道Java灵魂考题:全部掌握拿下阿里P7腾讯T3.2

Spring Boot答案解析

七、MySQL优化

  • 数据库的三范式是什么
  • 数据库引擎有哪些
  • InnoDB与MyISAM的区别
  • 数据库的事务
  • 索引问题
  • SQL优化
  • 简单说一说drop、delete与truncate的区别
  • 什么是视图
  • 什么是内联接、左外联接、右外联接?
  • 并发事务带来哪些问题?
  • 事务隔离级别有哪些?MySQL的默认隔离级别是?
  • 大表如何优化?
  • 分库分表之后,id 主键如何处理?
  • ......

200道Java灵魂考题:全部掌握拿下阿里P7腾讯T3.2

MySQL答案解析

八、Redis实战

  • Redis持久化机制
  • 缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题
  • 热点数据和冷数据是什么
  • Memcache与Redis的区别都有哪些?
  • 单线程的redis为什么这么快
  • redis的数据类型,以及每种数据类型的使用场景
  • redis的过期策略以及内存淘汰机制
  • Redis 为什么是单线程的
  • Redis 常见性能问题和解决方案?
  • 为什么Redis的操作是原子性的,怎么保证原子性的?
  • Redis事务
  • .....

200道Java灵魂考题:全部掌握拿下阿里P7腾讯T3.2

Redis答案解析

九、Spring Cloud微服务

  • 什么是SpringCloud
  • 什么是微服务
  • SpringCloud有什么优势
  • 什么是服务熔断?什么是服务降级?
  • Eureka和zookeeper都可以提供服务注册与发现的功能,请说说两个的区别?
  • SpringBoot和SpringCloud的区别?
  • 负载平衡的意义什么?
  • 什么是Hystrix?它如何实现容错?
  • 什么是Hystrix断路器?我们需要它吗?
  • 说说 RPC 的实现原理
  • ......

200道Java灵魂考题:全部掌握拿下阿里P7腾讯T3.2

Spring Cloud微服务答案解析

十、Nginx

  • 简述一下什么是Nginx,它有什么优势和功能?
  • Nginx是如何处理一个HTTP请求的呢?
  • 列举一些Nginx的特性
  • 请列举Nginx和Apache 之间的不同点
  • 在Nginx中,如何使用未定义的服务器名称来阻止处理请求?
  • 请解释Nginx服务器上的Master和Worker进程分别是什么?
  • 请解释代理中的正向代理和反向代理
  • 解释Nginx用途
  • .....

200道Java灵魂考题:全部掌握拿下阿里P7腾讯T3.2

Nginx答案解析

十一、MQ

  • 为什么使用MQ
  • MQ优缺点
  • Kafka、ActiveMQ、RabbitMQ、RocketMQ 都有什么区别?
  • 如何保证高可用的?
  • 如何保证消息的可靠传输?如果消息丢了怎么办
  • 如何保证消息的顺序性
  • 如何解决消息队列的延时以及过期失效问题?消息队列满了以后该怎么处理?有几百万消息持续积压几小时,说说怎么解决?
  • 设计MQ的思路
  • ......

200道Java灵魂考题:全部掌握拿下阿里P7腾讯T3.2

MQ答案解析

十二、数据结构与算法

200道Java灵魂考题:全部掌握拿下阿里P7腾讯T3.2

  1. 数据里有{1,2,3,4,5,6,7,8,9},请随机打乱顺序,生成一个新的数组(请以代码实现)
  2. 写出代码判断一个整数是不是2的阶次方(请代码实现,谢绝调用API方法)
  3. 假设今日是2015年3月1日,星期日,请算出13个月零6天后是星期几,距离现在多少天(请用代码实现,谢绝调用API方法)
  4. 有两个篮子,分别为A 和 B,篮子A里装有鸡蛋,篮子B里装有苹果,请用面向对象的思想实现两个篮子里的物品交换(请用代码实现)
  5. ......

200道Java灵魂考题:全部掌握拿下阿里P7腾讯T3.2

算法题解析

需要学习的小伙伴可以前往公众号200道Java灵魂考题:全部掌握拿下阿里P7腾讯T3.2

 

上一篇:Net Core 中WebAPI有关 Session的设置,及获取


下一篇:P7岗必备基础知识点,Android移动开发WebView常见的问题和解决方案