大二开始这样刷题后,“我”成了同学们眼中的 offer 收割机

前言

进大厂是大部分程序员的梦想,而进大厂的门槛也是比较高的,所以这里整理了一份阿里、美团、滴滴、头条等大厂面试大全,其中概括的知识点有:Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、Redis、MySQL、Spring、Spring Boot、Spring Cloud、RabbitMQ、Kafka、Linux 等技术栈共有1000+道面试题。对于Java后端的朋友来说应该是最全面最完整的面试备战仓库,为了更好地整理每个模块,我也参考了很多网上的优质博文和项目,力求不漏掉每一个知识点!

Java基础

  • 1.JDK和JRE有什么区别?
  • 2.==和equals的区别是什么?
  • 3.两个对象的hashCode() 相同,则equals() 也一定为true,对吗?
  • 4.final在Java中有什么作用?
  • 5.String属于基础的数据类型吗?
  • .........

JVM

  • 1.Java中你怎样唤醒一个阻塞的线程?
  • 2.在 Java中CycliBarriar和CountdownLatch有什么区别?
  • 3.为什么我们调用start()方法时会执行 run()方法,为什么我们不能直接调用 run()方法?
  • 4.垃圾回收与算法、如何确定垃圾、标记清除算法、复制算法、标记整理算法、分代收集算法
  • 5.GC分代收集算法VS分区收集算法、分代收集算法、分区收集算法
  • 6.程序计数器(线程私有)、虚拟机栈(线程私有)

设计模式

  • 有哪几种设计模式?(单例模式、工厂模式、观察者模式、外观模式、模版方法模式状态模式)解释一下?
  • 2.简单工厂和抽象工厂有什么区别?(简单工厂、工厂方法、抽象工厂)解释一下?

容器

  • 1.Java容器都有哪些?
  • 2.Collection和Collections有什么区别?
  • 3.Collection和Collections有什么区别?
  • 4.List、Set、Map之间的区别是什么?
  • 5.ArrayList和LinkList的区别?

反射

  • 1.什么是反射?
  • 2.什么是Java序列化?什么情况下需要序列化?
  • 3.动态代理是什么?有哪些应用?
  • 4.什么叫对象序列化,什么是反序列化,实现对象序列化需要做哪些工作?
  • 5.哪里用到反射机制?

对象拷贝

  • 1.为什么要使用克隆?
  • 2.如何实现对象克隆?
  • 3.深拷贝和浅拷贝区别是什么?

Java Web

  • 1.JSP和servlet有什么区别?
  • 2.JSP有哪些内置对象?作用分别是什么?
  • 3.说一下JSP的4种作用域?
  • 4.session和cookie有什么区别?
  • 5.说一下session的工作原理?

异常

  • 1.final、finally、finalize有什么区别?
  • 2.try-catch-finally中哪个部分可以省略?
  • 3.try-catch-finally中,如果catch中return了,finally还会执行吗?

网络

  • 1.http响应码301和302代表的是什么?有什么区别?
  • 2.forward和redirect的区别?
  • 3.简述tcp和udp的区别?
  • 4.tcp为什么要三次握手,两次不行吗?为什么?
  • 5.说一下tcp粘包是怎么产生的?

二、Java多线程与并发编程(多线程、JMM、HashMap)

多线程

  • 1.并行和并发有什么区别?
  • 2.线程和进程的区别?
  • 3.守护线程是什么?
  • 4.创建线程有哪几种方式?
  • 5.说一下runnable 和callable有什么区别?

JMM

  • 1.什么是Java内存模型?
  • 2.CPU和缓存一致性
  • 3.处理器优化和指令重排
  • 4.并发编程会带来什么问题?
  • 5.什么是内存模型?

HashMap

  • 1.HashMap概要和概念
  • 2.HashMap底层是如何实现的?
  • 3.HashMap和Hashtable的区别是什么?
  • 4.HashMap的长度为什么是2的幂
  • 5.Jdk1.8中满足什么条件后将链表转化成红黑树?

三、开源框架(Spring、Spring MVC、MyBatis)

Spring

一般问题

  • 1.不同版本的Spring Framework有哪些主要功能?
  • 2.什么是Spring Framework?
  • 3.Spring Framework有哪些不同的功能?
  • 4.列举Spring Framework的优点。
  • 5.Spring Framework中有多少个模块,它们分别是什么?

依赖注入(Ioc)

  • 1.什么是Spring IOC容器?
  • 2.什么是依赖注入?
  • 3.可以通过多少种方式完成依赖注入?
  • 4.区分构造函数注入和setter注入
  • 5.列举IoC的一些好处。

Beans

  • 1.什么是spring bean?
  • 2.spring提供了哪些配置方式?
  • 3.spring支持集中bean scope?
  • 4.spring支持集中bean scope?
  • 5.什么是spring的内部bean?

注解

  • 1.什么是基于注解的容器配置?
  • 2.如何在spring中启动注解装配?
  • 3.@Component, @Controller, @Repository@, Service有何区别?
  • 4.@Required注解有什么用?
  • 5.@Autowired注解有什么用?

数据访问

  • 1.spring DAO有什么用?
  • 2.spring JDBCAPI中存在哪些类?
  • 3.使用Spring访问Hibernate的方法有哪些?
  • 4.列举spring支持的事务管理类型

Spring MVC

  • 1.什么是Spring MVC?简单介绍下你对Spring MVC的理解?
  • 2.Spring MVC的优点

核心组件

  • 1.Spring MVC的主要组件?
  • 2.什么是DispatcherServlet
  • 3.什么是Spring MVC框架的控制器?

MVC框架

  • 1.SpringMvc的控制器是不是单例模式,如果是,有什么问题,怎么解决?
  • 2.如果你也用过 struts2简单介绍下 springMVC和struts2的区别有哪些?
  • 3.SpringMVC怎么样设定重定向和转发的?
  • 4.SpringMvc里面拦截器是怎么写的?

其他

  • 1.Spring MVC与Struts2区别
  • 2.Spring MVC怎么样设定重定向和转发的?

MyBatis

  • 1.什么是Mybatis?
  • 2.Mybaits的优点
  • 3.MyBatis框架的缺点
  • 4.MyBatis框架适用场合
  • 5.MyBatis与Hibernate有哪些不同?
  • 6.#{}和${}的区别是什么?

四、Java微服务(Spring Boot、Spring Cloud)

Spring Boot

  • 1.什么是 Spring Boot?
  • 2.Spring Boot 有哪些优点?
  • 3.什么是 JavaConfig?
  • 4.如何重新加载 Spring Boot 上的更改,而无需重新启动服务器?
  • 5.Spring Boot 中的监视器是什么?
  • 6.如何在 Spring Boot 中禁用 Actuator 端点安全性?
  • 7.如何在自定义端口上运行 Spring Boot 应用程序?
  • 8.什么是 YAML?
  • 9.如何实现 Spring Boot 应用程序的安全性?

Spring Cloud

  • 1.什么是Spring Cloud?
  • 2.使用Spring Cloud有什么优势?
  • 3.服务注册和发现是什么意思?Spring Cloud 如何实现?
  • 4.负载平衡的意义什么?
  • 5.什么是Hystrix?它如何实现容错?
  • 6.什么是 Hystrix断路器?我们需要它吗?
  • 7.什么是Netflix Feign?它的优点是什么?

五、分布式中间件(RabbitMQ、Zookeeper、Kafka、Dubbo、Netty、ShardingSphere、FastDFS、Elasticsearch)

RabbitMQ

  • 1.什么是rabbitmq
  • 2.为什么要使用rabbitmq
  • 3.使用rabbitmq的场景
  • 4.如何确保消息正确地发送至 RabbitMQ? 如何确保消息接收方消费了消息?
  • 5.如何避免消息重复投递或重复消费?

Zookeeper

  • 1.什么是Zookeeper?
  • 2.Zookeeper如何保证了分布式一致性特性?
  • 3.Zookeeper文件系统
  • 4.ZooKeeper提供了什么?
  • 5.四种类型的数据节点Znode

Kafka

  • 1.Kafka是什么?
  • 2.partition的数据文件(offffset, MessageSize, data)
  • 3.数据文件分段segment(顺序读写、分段命令、二分查找)
  • 4.负载均衡(partition 会均衡分布到不同 broker 上)
  • 5.批量发送
  • 6.压缩(GZIP 或 Snappy)
  • 7.消费者设计
  • 8.Consumer Group

Dubbo

  • 1.为什么要用Dubbo?
  • 2.Dubbo的整体架构设计有哪些分层?

  • 3.默认使用的是什么通信框架,还有别的选择吗?
  • 4.一般使用什么注册中心?还有别的选择吗?
  • 5.默认使用什么序列化框架,你知道的还有哪些?

Netty

  • 1.Netty是什么?
  • 2.Netty的特点是什么?
  • 3.Netty的优势有哪些?
  • 4.Netty的应用场景有哪些?
  • 5.Netty高性能表现在哪些方面?
  • 6.BIO、NIO和AIO的区别?
  • 7.NIO的组成?

ShardingSphere

  • 1..sharding-jdbc是否支持批量插入
  • 2.Sharding-JDBC适用于哪些场景,不适用于哪些场景?是否有性能评估?
  • 3.Sharding-JDBC的设计初衷是什么?旨在解决什么场景的问题?

FastDFS

  • 1.什么是FastDFS?
  • 2.FastDFS的工作原理是什么?
  • 3.fastDSF架构(Tracker、Storage、Storage状态收集、

Elasticsearch

  • 1.Elasticsearch了解多少,说说你们公司es的集群架构,索引数据大小,分片有多少,以及一些调优手段 。
  • 2.Elasticsearch的倒排索引是什么?
  • 3.Elasticsearch索引数据多了怎么办,如何调优,部署?
  • 4.Elasticsearch是如何实现master选举的?
  • 5.详细描述一下Elasticsearch索引文档的过程

六、数据库(MySQL、Redis)

MySQL

  • 1.数据库存储引擎、索引
  • 2.InnoDB(B+树)
  • 3.TokuDB( Fractal Tree-节点带数据)
  • 4.MyIASM、Memory

  • 5.数据库引擎有哪些?
  • 6.InnoDB与MyISAM的区别?
  • 7.常见索引原则有?
  • 8.数据库的三范式是什么?

Redis

  • 1.什么是Redis?
  • 2.怎么理解Redis事务?
  • 3.Redis的数据类型?
  • 4.Redis Key的过期时间和永久有效分别怎么设置?
  • 5.Redis相比Memcached有哪些优势?
  • 6.Memcache与Redis的区别都有哪些?
  • 7.Redis回收进程如何工作的?
  • 8.一个字符串类型的值能存储最大容量是多少?
  • 9.Redis的内存用完了会发生什么?
  • 10.缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题

MongoDB

  • 1.NoSQ与RDBMS直接有什么区别?
  • 2.MySQL与MongoDB之间最基本的差别是什么?
  • 3.你怎么比较MongoDB、CouchDB及CouchBase?
  • 4.MongoDB成为最好NoSQL数据库的原因是什么?
  • 5.分析器在MongoDB中的作用是什么?
  • 6.能否使用日志特征进行安全备份?

七、性能调优(SQL、Nginx、Tomcat)

SQL

  • 1.Mysql的技术特点是什么?
  • 2.Heap表是什么?
  • 3.Mysql服务器默认端口是什么?
  • 4.与Oracle相比,Mysql 有什么优势?
  • 5.如何区分FLOAT和DOUBLE?
  • 6.区分CHAR_LENGTH和LENGTH?
  • 7.Federated表是什么?
  • 8.在Mysql中ENUM的用法是什么?
  • 9.如何定义REGEXP?
  • 10.CHAR和VARCHAR的区别?

Nginx

  • 1.什么是Nginx?
  • 2.请列举Nginx的一些特性
  • 3.请列举Nginx和Apache 之间的不同点
  • 4.请解释Nginx如何处理HTTP请求
  • 5.在Nginx中,如何使用未定义的服务器名称来阻止处理请求?
  • 6.使用“反向代理服务器”的优点是什么?
  • 7.请列举Nginx服务器的最佳用途。
  • 8.请解释Nginx服务器上的Master和Worker进程分别是什么?
  • 9.请解释代理设计中的正向代理和反向代理?
  • 10.请解释是否有可能将Nginx的错误替换为502错误、503?

Tomcat

  • 1.Tomcat有哪几种Connector运行模式(优化)?
  • 2.Tomcat的缺省端口是多少,怎么修改?
  • 3.Tomcat有几种部署方式?
  • 4.Tomcat容器是如何创建servlet类实例?用到了什么原理?
  • 5.Tomcat如何优化?

最后

最后针对于上面的面试问到的知识点我总结出了互联网公司Java程序员面试涉及到的绝大部分面试题及答案做成了文档和架构视频资料免费分享给大家。

资料获取方式:关注小编+转发文章+私信【面试题】获取上述资料~

资料获取方式:关注小编+转发文章+私信【面试题】获取上述资料~

资料获取方式:关注小编+转发文章+私信【面试题】获取上述资料~



发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章