2021秋季校招面试——Java大数据面经总结

2021秋季校招面试——Java/大数据面经总结

web服务器

Apache 和 Nginx的区别与比较:

Apache:

Apache HTTP Server(简称apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端软件之一,它快速、可靠并且通过简单的API扩展,将Perl/Python等解释器编译到服务器中。

Apache是以进程为基础的结构,进程要比线程消耗更多的系统开支,不太适用于多处理器环境,因此,在一个apache Web站点扩容时,通常是增加服务器或扩充群集节点而不是增加处理器。

Nginx:

Nginx是一个高性能的HTTP和反向代理服务器。

是一款轻量级的web服务器/反向代理服务器/电子邮件(IMAP/POP3)代理服务器。

1、优缺点比较:

(1)nginx相对于apache的优点:

* 轻量级,同样起web服务,比apache占用更少的内存及资源

* 抗并发,nginx处理请求是异步非阻塞的,而apache是阻塞型的

在高并发下,nginx能保持低资源低消耗高性能

* 高度模块化的设计,编写模块相对简单

(2)apache相对于nginx的优点:

* Rewrite比nginx的rewrite强大 ###rewrite的主要功能就是实现统一资源定位符(URL)的跳转

* 模块多,基本想到的都可以找到

* 少bug,nginx的bug相对较多

* 超稳定

**存在的理由:**一般来说,需要性能的web服务,用nginx。若不需要性能只求稳定,就选用apache。

2、作为web服务器:

相比apache,nginx使用更少的资源,支持更多的并发连接,体现更高的效率。

Nginx作为负载均衡服务器:nginx既可以在内部直接支持rails和php程序对外进行服务,也可以支持http代理服务器对外进行服务。Nginx采用C进行编写,不论是系统资源开销还是CPU使用效率都比较好。

作为邮件代理服务器:最早开发这个产品的目的之一也是作为邮件代理服务器。

3、nginx配置简洁, apache较复杂

Nginx静态处理性能比apache高3倍以上

**4、最核心的区别在于:**apache是同步多进程模型,一个连接对应一个进程,nginx是异步的,多个连接可以对应一个进程。

Nginx处理静态文件好,耗费内存少,只适合静态和反向。Apache在处理动态有优势,nginx并发性比较好,CPU占用内存低,如果rewrite频繁,选用apache最佳。

数据库

mysql:

数据类型

ACID(原子性、一致性、隔离性,持久性)必会

事务(分布式事务解决需要知道)

隔离级别:脏读,可重复读,幻读(可以结合秒杀思考),mysql默认隔离级别为什么是3级,而Oracle是二级

vchar和char的区别

mysql的索引和引擎

mysql连接(内连接,左连接,有连接)

SQL语句书写也会问到,通常会让口述SQL

redis

数据类型(五种)

持久化(AOF,RDB)

redis过期策略

redis为什么速度这么快原理

缓存穿透,缓存击穿,缓存雪崩(好多场景也比较常见)

Linux

面试常用命令以及相应的配置

JVM

重点看,基本上每一次面试都会问到(jdk1.8)

GC算法原理,操作。

老年代和新生代算法选择的原因

强弱软虚

网络

TCP和UDP区别

三次握手和四次挥手

DNS域名解析原理,怎么查找二级域名

网络模型(3种,七层、五层和四层)

HTTP和HTTPS区别

HTTP与TCP直接的关系

JAVA知识

java基础

悲观锁和乐观锁

java内存模型(jmm)

线程(JUC包)实现方式

线程池存在的作用

java日志框架和五种日志级别的区别

中间件(Mycat等)

HashMap和Hashtable区别

HashMap和ArrayList的扩容原理

接口和抽象类的区别

Jdk8的新特性也不要忽略

这部分知识很多,大部分在面试宝典上都有,面试宝典有的一定要会

阿里编程规范主要是针对java,之前华为HR打电话问我,还知道这个给了一个面试和笔试机会。虽然我很菜。

综上:java基础必须很熟悉,现在校招面试挖的很深,你不会的,别人会,这就很尴尬了。你必须证明你比别人强才有机会在java面试中脱颖而出。

java框架

spring:AOF和IOC

springMVC:原理和流程要搞明白

Mybatis:原理和流程熟悉。再去了解一下JPA和Mybatis的区别

拦截器和过滤器的区别

跨域解决方案

SSM整合也需要知道

版本控制需要知道Git常用的命令

SpringMVC和Springboot的区别

MQ和java自带的定时器的区别

ElasticSearch :倒排索引 ,写入数据和查询数据的原理

REST ful风格:四种方法,形式(主要是前后端分离)

微服务框架:

springboot:特点,缺点;

springcloud:优点,缺点;

springboot和springcloud的联系

大数据其他框架

Hadoop:

zookeeper与Hadoop直接的联系与区别:
原理需要了解

Storm

原理需要了解

Spark

原理需要了解

Flink

原理需要了解
附上:GitHub博主的面试宝典链接:https://github.com/OUYANGSIHAI/JavaInterview

总之:别人会的,你不会,你就会错失offer。竞争越来越大,望诸君早做打算,加油。

你可能感兴趣的:(java,spring,面试)