前言
過完年之后就是春招,想面試的小伙伴想必都在著手準備吧!那么今天我們就來看看!
在本篇文章開始之前,我想先來回答一個問題:我為什么要寫這樣一篇關于面試的文章?
原因有三個:第一,我想為每一個為夢想時刻準備著的“有心人”,盡一份自己的力量,提供一份高度精華的Java面試清單,
第二,目前市面上的面試題不是答案不準確就是內容覆寫面太窄,所以提供一份經典而又準確的面試題是非常有必要的,
第三,本文會對部分面試題提供詳細解讀和代碼案例,讓讀者知其然并知其所以然,從而學到更多的知識,

目錄
一、Java基礎(JVM、設計模式、容器、反射、物件拷貝、Java Web、例外、網路)
二、Java多執行緒與并發編程(JMM、HashMap)
三、開源框架(Spring、Spring MVC、MyBatis)
四、Java微服務(Spring Boot、Spring Cloud)
五、分布式中間件(RabbitMQ、Zookeeper、Kafka、Dubbo、Netty、ShardingSphere、FastDFS、Elasticsearch)
六、資料庫(MySQL、Redis、MongoDB)
七、性能調優(SQL、Nginx、Tomcat)
正文

一、Java基礎(JVM、設計模式、容器、反射、物件拷貝、Java Web、例外、網路)
Java基礎
1.JDK和JRE有什么區別?
2.==和equals的區別是什么?
3.兩個物件的hashCode() 相同,則equals() 也一定為true,對嗎?
4.final在Java中有什么作用?
5.String屬于基礎的資料型別嗎?
6.Java中操作字串都有哪些類?它們之間有什么區別?
7.String str="i"與 String str=new String(“i”)一樣嗎?
8.如何將字串反轉?
9.String類的常用方法都有哪些?
10.抽象類必須要有抽象方法嗎?
11.普通類和抽象類有哪些區別?
12.抽象類能使用final修飾嗎?
13.介面和抽象類有什么區別?
14.Java中IO流分為幾種?
15.BIO、NIO、AIO有什么區別?
16.Files的常用方法都有哪些?
17.Files的常用方法都有哪些?
JVM
1.Java中會存在記憶體泄漏嗎,請簡單描述,
2.64位JVM中,int的長度是多數?
3.Serial與Parallel GC之間的不同之處?
4.32位和64位的 JVM,int型別變數的長度是多數?
5.Java中WeakReference與SoftReference的區別?
6.JVM選項-XX:+UseCompressedOops有什么作用?為什么要使用?
7.怎樣通過Java程式來判斷JVM是32位還是64位?
8.JRE、JDK、JVM及JIT之間有什么不同?
9.解釋Java堆空間及GC?
10.JVM記憶體區域

設計模式
1.有哪幾種設計模式?(單例模式、工廠模式、觀察者模式、外觀模式、模版方法模式狀態模式)解釋一下?
2.簡單工廠和抽象工廠有什么區別?(簡單工廠、工廠方法、抽象工廠)解釋一下?

容器
1.Java容器都有哪些?
2.Collection和Collections有什么區別?
3.Collection和Collections有什么區別?
4.List、Set、Map之間的區別是什么?
5.ArrayList和LinkList的區別?
6.List、Set、Map之間的區別是什么?
7.Comparable和Comparator區別?
8.Iterator怎么使用?有什么特點?
9.ArrayList和Vector的區別是什么?
10.HashMap和Hashtable有什么區別?
11.如何一邊遍歷一邊洗掉Collection中的元素?
本質的區別來源于兩者的底層實作:
ArrayList的底層是陣列
LinkedList的底層是雙向鏈表,
12.為什么ArrayList的elementData陣列要加上transient修飾
由于ArrayList有自動擴容機制,所以ArrayList的elementData陣列大小往往比現有的元素數量大,如果不加transient直接序列化的話會把陣列中空余的位置也序列化了,浪費不少的空間,
13.為什么HashMap陣列的長度是2的冪次方?
14.為什么HashMap中適合用Integer,String這樣的基礎型別作為key?
15.為什么要把鏈表轉為紅黑樹,閾值為什么是8?
反射
1.什么是反射?
2.什么是Java序列化?什么情況下需要序列化?
3.動態代理是什么?有哪些應用?
4.什么叫物件序列化,什么是反序列化,實作物件序列化需要做哪些作業?
5.哪里用到反射機制?
6.反射機制的優缺點?
7.Java反射機制的作用
8.如何使用Java的反射?
物件拷貝
1.為什么要使用克隆?
2.如何實作物件克隆?
3.深拷貝和淺拷貝區別是什么?
Java Web
1.JSP和servlet有什么區別?
2.JSP有哪些內置物件?作用分別是什么?
3.說一下JSP的4種作用域?
4.session和cookie有什么區別?
5.說一下session的作業原理?
6.如果客戶端禁止cookie能實作session還能用嗎?
7.spring mvc和struts的區別是什么?
8.如何避免SQL注入?
9.什么是XSS攻擊,如何避免?
10.什么是CSRF攻擊,如何避免?
例外
1.final、finally、finalize有什么區別?
2.try-catch-finally中哪個部分可以省略?
3.try-catch-finally中,如果catch中return了,finally還會執行嗎?
4.常見的例外類有哪些?
網路
1.http回應碼301和302代表的是什么?有什么區別?
2.forward和redirect的區別?
3.簡述tcp和udp的區別?
4.tcp為什么要三次握手,兩次不行嗎?為什么?
5.說一下tcp粘包是怎么產生的?
6.OSI的七層模型都有哪些?
7.get和post請求有哪些區別?
8.如何實作跨域?
9.說一下JSONP實作原理?

二、Java多執行緒與并發編程(多執行緒、JMM、HashMap)
多執行緒
1.并行和并發有什么區別?
2.執行緒和行程的區別?
3.守護執行緒是什么?
4.創建執行緒有哪幾種方式?
5.說一下runnable 和callable有什么區別?
6.執行緒有哪些狀態?
7.sleep() 和wait() 有什么區別?
8.notify()和notifyAll()有什么區別?
9.執行緒的 run() 和start() 有什么區別?
10.創建執行緒池有哪幾種方式?
11.執行緒池中submit() 和execute() 方法有什么區別?
12.在Java程式中怎么保證多執行緒的運行安全?
13.多執行緒中synchronized鎖升級的原理是什么?
14.什么是死鎖?怎么防止死鎖?
15.ThreadLocal是什么?有哪些使用場景?
16.說一下synchronized底層實作原理?
17.synchronized和volatile的區別是什么?
18.synchronized和Lock有什么區別?
19.synchronized和ReentrantLock區別是什么?
20.什么是反射?什么是 Java 序列化?什么情況下需要序列化?
21.動態代理是什么?有哪些應用?
22.在多執行緒中,什么是背景關系切換?
…
JMM
1.什么是Java記憶體模型?
2.CPU和快取一致性
3.處理器優化和指令重排
4.并發編程會帶來什么問題?
5.什么是記憶體模型?
6.記憶體模型怎么解決并發問題的?
HashMap
1.HashMap概要和概念
2.HashMap底層是如何實作的?
3.HashMap和Hashtable的區別是什么?
4.HashMap的長度為什么是2的冪
5.Jdk1.8中滿足什么條件后將鏈表轉化成紅黑樹?
6.為什么String, Interger這樣的wrapper類適合作為鍵?
7.HashMap的作業原理

三、開源框架(Spring、Spring MVC、MyBatis)
Spring
一般問題
1.不同版本的Spring Framework有哪些主要功能?
2.什么是Spring Framework?
3.Spring Framework有哪些不同的功能?
4.列舉Spring Framework的優點,
5.Spring Framework中有多少個模塊,它們分別是什么?
6.什么是Spring組態檔?
7.Spring應用程式有哪些不同組件?
8.使用Spring有哪些方式?
依賴注入(Ioc)
10.什么是Spring IOC容器?
11.什么是依賴注入?
12.可以通過多少種方式完成依賴注入?
13.區分建構式注入和setter注入
14.spring中有多少種IOC容器?
15.區分BeanFactory和ApplicationContext,
16.列舉IoC的一些好處,
17.Spring IoC的實作機制
Beans
18.什么是spring bean?
19.spring提供了哪些配置方式?
20.spring支持集中bean scope?
21.spring支持集中bean scope?
22.什么是spring的內部bean?
23.什么是spring裝配
24.自動裝配有哪些方式?
25.自動裝配有什么局限?
注解
26.什么是基于注解的容器配置?
27.如何在spring中啟動注解裝配?
28.@Component, @Controller, @Repository@, Service有何區別?
29.@Required注解有什么用?
30.@Autowired注解有什么用?
31.@Qualifier注解有什么用?
32.@RequestMapping注解有什么用?
資料訪問
33.spring DAO有什么用?
34.列舉Spring DAO拋出的例外,
35.spring JDBCAPI中存在哪些類?
36.使用Spring訪問Hibernate的方法有哪些?
37.列舉spring支持的事務管理型別
38.spring支持哪些ORM框架?
Spring MVC
1.什么是Spring MVC?簡單介紹下你對Spring MVC的理解?
2.Spring MVC的優點
核心組件
3.Spring MVC的主要組件?
4.什么是DispatcherServlet
5.什么是Spring MVC框架的控制器?
6.Spring MVC的控制器是不是單例模式,如果是,有什么問題,怎么解決?
作業原理
7.請描述Spring MVC的作業流程?描述一下 DispatcherServlet 的作業流程?
MVC框架
8.MVC是什么?MVC設計模式的好處有哪些?
常用注解
9.注解原理是什么?
10.Spring MVC常用的注解有哪些?
11.SpingMvc中的控制器的注解一般用哪個,有沒有別的注解可以替代?
12.@Controller注解的作用
13.@RequestMapping注解的作用
14.@ResponseBody注解的作用
15.@PathVariable和@RequestParam的區別
其他
16.Spring MVC與Struts2區別
17.Spring MVC怎么樣設定重定向和轉發的?
18.Spring MVC怎么和AJAX相互呼叫的?
19.如何解決POST請求中文亂碼問題,GET的又如何處理呢?
20.Spring MVC的例外處理?
21.如果在攔截請求中,我想攔截get方式提交的方法,怎么配置
22.怎樣在方法里面得到Request,或者Session?
23.如果前臺有很多個引數傳入,并且這些引數都是一個物件的,那么怎么樣快速得到這個物件?
24.Spring MVC中函式的回傳值是什么?
25.Spring MVC用什么物件從后臺向前臺傳遞資料的?
26.怎么樣把ModelMap里面的資料放入Session里面?
27.Spring MVC里面攔截器是怎么寫的
28.介紹一下WebApplicationContext

MyBatis
1.什么是Mybatis?
2.Mybaits的優點
3.MyBatis框架的缺點
4.MyBatis框架適用場合
5.MyBatis與Hibernate有哪些不同?
6.#{}和${}的區別是什么?
7.當物體類中的屬性名和表中的欄位名不一樣 ,怎么辦 ?
8.模糊查詢like陳述句該怎么寫?
9.通常一個Xml映射檔案,都會寫一個Dao介面與之對應,請問,這個Dao介面的作業原理是什么?Dao介面里的方法,引數不同時,方法能多載嗎?
10.Mybatis是如何進行分頁的?分頁插件的原理是什么?
11.Mybatis是如何將sql執行結果封裝為目標物件并回傳的?都有哪些映射形式?
12.如何執行批量插入?
13.如何獲取自動生成的(主)鍵值?
14.在mapper中如何傳遞多個引數?
15.Mybatis動態sql有什么用?執行原理?有哪些動態 sql?
16.Xml映射檔案中,除了常見的select|insert|updae|delete標簽之外,還有哪些標簽?
17.為什么說Mybatis是半自動ORM映射工具?它與全自動的區別在哪里?
18.一對一、一對多的關聯查詢 ?
19.MyBatis實作一對一有幾種方式?具體怎么操作的?
20.MyBatis實作一對多有幾種方式,怎么操作的?
21.Mybatis是否支持延遲加載?如果支持,它的實作原理是什么?
22.Mybatis的一級、二級快取
23.什么是MyBatis的介面系結?有哪些實作方式
24.使用MyBatis的mapper介面呼叫時有哪些要求?
25.Mapper撰寫有哪幾種方式?
26.簡述Mybatis的插件運行原理,以及如何撰寫一個插件,

四、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 應用程式的安全性?
10.如何集成 Spring Boot 和 ActiveMQ?
11.如何使用 Spring Boot 實作分頁和排序?
12.什么是 Swagger?你用 Spring Boot 實作了它嗎?
13.什么是 Spring Profiles?
14.什么是 Spring Batch?
15.什么是 FreeMarker 模板?
16.如何使用 Spring Boot 實作例外處理?
17.您使用了哪些 starter maven 依賴項?
18.什么是 CSRF 攻擊?
19.什么是 WebSockets?
…
Spring Cloud
1.什么是Spring Cloud?
2.使用Spring Cloud有什么優勢?
3.服務注冊和發現是什么意思?Spring Cloud如何實作?
4.負載平衡的意義什么?
5.什么是Hystrix?它如何實作容錯?
6.什么是 Hystrix斷路器?我們需要它嗎?
7.什么是Netflix Feign?它的優點是什么?
8.什么是Spring Cloud Bus?我們需要它嗎?
9.springcloud如何實作服務的注冊?
10.springcloud斷路器作用?
11.Spring Cloud Gateway?

五、分布式中間件(RabbitMQ、Zookeeper、Kafka、Dubbo、Netty、ShardingSphere、FastDFS、Elasticsearch)
RabbitMQ
1.什么是rabbitmq
2.為什么要使用rabbitmq
3.使用rabbitmq的場景
4.如何確保訊息正確地發送至 RabbitMQ? 如何確保訊息接收方消費了訊息?
5.如何避免訊息重復投遞或重復消費?
6.訊息基于什么傳輸?
7.訊息如何分發?
8.訊息怎么路由?
9.如何確保訊息不丟失?
10.使用 RabbitMQ有什么好處?
11.RabbitMQ的集群
12.MQ的缺點
13.如何保證高可用的?
14.如何保證訊息的可靠傳輸?如果訊息丟了怎么辦
15.如何保證訊息的順序性
Zookeeper
1.什么是Zookeeper?
2.Zookeeper如何保證了分布式一致性特性?
3.Zookeeper檔案系統
4.ZooKeeper提供了什么?
5.四種型別的資料節點Znode
6.Zookeeper Watcher機制 – 資料變更通知
7.Zookeeper下Server作業狀態
8.zookeeper是如何保證事務的順序一致性的?
9.zk節點宕機如何處理?

10.zookeeper負載均衡和nginx負載均衡區別
11.分布式集群中為什么會有Master?
12.Zookeeper有哪幾種幾種部署模式?
13.集群最少要幾臺機器,集群規則是怎樣的?
14.Zookeeper對節點的watch監聽通知是永久的嗎?為什么不是永久的?
15.Zookeeper的java客戶端都有哪些?
16.chubby是什么,和zookeeper比你怎么看 ?
17.說幾個zookeeper常用的命令,
18.Zookeeper的典型應用場景
19.Zookeeper作業原理(原子廣播)
Kafka
1.Kafka是什么?
2.partition的資料檔案(offffset, MessageSize, data)
3.資料檔案分段segment(順序讀寫、分段命令、二分查找)
4.負載均衡(partition 會均衡分布到不同 broker 上)
5.批量發送
6.壓縮(GZIP 或 Snappy)
7.消費者設計
8.Consumer Group
9.如何獲取topic主題的串列?
10.生產者和消費者的命令列是什么?
11.consumer是推還是拉?
12.講講kafka維護消費狀態跟蹤的方法
13.Kafka與傳統MQ訊息系統之間有三個關鍵區別
14.Kafka判斷一個節點是否還活著有那兩個條件?
15.講一講kafka的ack的三種機制
16.kafka如何不消費重復資料?比如扣款,我們不能重復的扣,
17.kafka如何減少資料丟失?
18.kafka分布式(不是單機)的情況下,如何保證訊息的順序消費?
Dubbo
1.為什么要用Dubbo?
2.Dubbo的整體架構設計有哪些分層?
3.默認使用的是什么通信框架,還有別的選擇嗎?
4.一般使用什么注冊中心?還有別的選擇嗎?
5.默認使用什么序列化框架,你知道的還有哪些?
6.服務提供者能實作失效踢出是什么原理?
7.服務上線怎么不影響舊版本?
8.Dubbo推薦用什么協議?
9.同一個服務多個注冊的情況下可以直連某一個服務嗎?
10.Dubbo集群容錯有幾種方案?
11.Dubbo服務降級,失敗重試怎么做?
12.Dubbo用到哪些設計模式?
13.Dubbo組態檔是如何加載到 Spring 中的?
14.Dubbo SPI和Java SPI區別?
15.Dubbo支持分布式事務嗎?
16.Dubbo可以對結果進行快取嗎?
17.Dubbo必須依賴的包有哪些?
18.Dubbo telnet命令能做什么?
19.Dubbo支持服務降級嗎?
20.Dubbo如何優雅停機?
21.Dubbo和 Dubbox之間的區別?
22.Dubbo和 Spring Cloud的區別?
23.Dubbo默認使用什么注冊中心,還有別的選擇嗎?
24.Dubbo有哪幾種配置方式?
25.Dubbo推薦使用什么序列化框架,你知道的還有哪些?
26.Dubbo有哪幾種負載均衡策略,默認是哪種?
Netty
1.Netty是什么?
2.Netty的特點是什么?
3.Netty的優勢有哪些?
4.Netty的應用場景有哪些?
5.Netty高性能表現在哪些方面?
6.BIO、NIO和AIO的區別?
7.NIO的組成?
8.Netty的執行緒模型?
9.TCP粘包/拆包的原因及解決方法?
10.什么是Netty的零拷貝?
11.Netty中有哪種重要組件?
12.Netty發送訊息有幾種方式?
13.默認情況Netty起多少執行緒?何時啟動?
14.了解哪幾種序列化協議?
15.如何選擇序列化協議?
16.Netty支持哪些心跳型別設定?
17.Netty和Tomcat的區別?
18.NIO Event Loop Group原始碼?
ShardingSphere
1…sharding-jdbc是否支持批量插入
2.Sharding-JDBC適用于哪些場景,不適用于哪些場景?是否有性能評估?
3.Sharding-JDBC的設計初衷是什么?旨在解決什么場景的問題?
4.Sharding-JDBC與Mycat有一定的相似性,區別點在于對于SQL陳述句的自決議上,是否可以這么理解?
5.分庫分表使用like查詢,是否能查詢出來?性能如何?會去查詢所有的庫和表嗎?
6.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索引檔案的程序
6.詳細描述一下Elasticsearch搜索的程序?
7.Elasticsearch在部署時,對Linux的設定有哪些優化方法
8.lucence內部結構是什么?
9.Elasticsearch是如何實作Master選舉的?
10.Elasticsearch中的節點(比如共 20 個),其中的10個選了一個master,另外10個選了另一個master,怎么辦?
11.客戶端在和集群連接時,如何選擇特定的節點執行請求的?
12.詳細描述一下Elasticsearch索引檔案的程序,
13.詳細描述一下Elasticsearch更新和洗掉檔案的程序,
14.詳細描述一下Elasticsearch搜索的程序,
15.在Elasticsearch中,是怎么根據一個詞找到對應的倒排索引的?
16.Elasticsearch在部署時,對Linux的設定有哪些優化方法?
17.對于GC方面,在使用Elasticsearch時要注意什么?
18.Elasticsearch對于大資料量(上億量級)的聚合如何實作?
19.在并發情況下,Elasticsearch如果保證讀寫一致?
20.如何監控Elasticsearch集群狀態?

六、資料庫(MySQL、Redis)
MySQL
1.資料庫存盤引擎、索引
2.InnoDB(B+樹)
3.TokuDB( Fractal Tree-節點帶資料)
4.MyIASM、Memory
5.資料庫引擎有哪些?
6.InnoDB與MyISAM的區別?
7.常見索引原則有?
8.資料庫的三范式是什么?
9.第一范式(1st NF-列都是不可再分)、第二范式(2nd NF- 每個表只描述一件事情)、第三范式(3rd NF-不存在對非主鍵列的傳遞依賴)
10.資料庫是事務
11.SQL優化
12.簡單說一說drop、delete與truncate的區別
13.什么是視圖?
14.什么是行內接、左外聯接、右外聯接?
15.并發事務帶來哪些問題?

16.事務隔離級別有哪些?MySQL的默認隔離級別是?
17.大表如何優化?
18.分庫分表之后,id主鍵如何處理
19.存盤程序(特定功能的SQL陳述句集)
20.MySQL中有哪幾種鎖?
21.MySQL中有哪些不同的表格?
22.簡述在MySQL資料庫中MyISAM和InnoDB的區別
23.MySQL中 InnoDB支持的四種事務隔離級別名稱,以及逐級之間的區別?
Redis
1.什么是Redis?
2.怎么理解Redis事務?
3.Redis的資料型別?
4.Redis Key的過期時間和永久有效分別怎么設定?
5.Redis相比Memcached有哪些優勢?
6.Memcache與Redis的區別都有哪些?
7.Redis回收行程如何作業的?
8.一個字串型別的值能存盤最大容量是多少?
9.Redis的記憶體用完了會發生什么?
10.快取雪崩、快取穿透、快取預熱、快取更新、快取降級等問題
11.一個Redis實體最多能存放多少的Keys?List、Set、Sorted Set他們最多能存放多少元素?
12.Redis集群之間是如何復制的?
13.Redis的資料型別,以及每種資料型別的使用場景
14.Redis的過期策略以及記憶體淘汰機制
15.Redis集群最大節點個數是多少?
16.為什么Redis的操作是原子性的,怎么保證原子性的?
17.Redis集群如何選擇資料庫?
18.使用過Redis分布式鎖么,它是什么回事?
19.怎么測驗Redis的連通性?
20.Redis過期鍵的洗掉策略?
21.Redis的回收策略(淘汰策略)?
22.為什么Redis需要把所有資料放到記憶體中?
23.Redis是一個基于記憶體的高性能key-value資料庫,
24.Reids常用5種資料型別
25.Reids6種淘汰策略:
26.為什么Redis是單執行緒的?
27.Redis記憶體模型
MongoDB
1.NoSQ與RDBMS直接有什么區別?
2.MySQL與MongoDB之間最基本的差別是什么?
3.你怎么比較MongoDB、CouchDB及CouchBase?
4.MongoDB成為最好NoSQL資料庫的原因是什么?
5.分析器在MongoDB中的作用是什么?
6.能否使用日志特征進行安全備份?
7.資料在什么時候才會擴展到多個分片(shard)里?
8.我可以把moveChunk目錄里的舊檔案洗掉嗎?
9.如果塊移動操作(moveChunk)失敗了,我需要手動清除部分轉移的檔案嗎?
10.MongoDB支持存盤程序嗎?如果支持的話,怎么用?
11.MongoDB有哪些特點?

七、性能調優(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的區別?
11.列的字串型別可以是什么?
12.如何獲取當前的Mysql版本?
13.TIMESTAMP在UPDATE CURRENT_TIMESTAMP資料型別上做什么?
14.主鍵和候選鍵有什么區別?
15.如何使用Unix shell登錄Mysql?
16.MYSQL資料庫服務器性能分析的方法命令有哪些?
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?
11.在Nginx中,解釋如何在URL中保留雙斜線?
12.請解釋ngx_http_upstream_module的作用是什么?
13.解釋如何在Nginx服務器上添加模塊?
Tomcat
1.Tomcat有哪幾種Connector運行模式(優化)?
2.Tomcat的預設埠是多少,怎么修改?
3.Tomcat有幾種部署方式?
4.Tomcat容器是如何創建servlet類實體?用到了什么原理?
5.Tomcat如何優化?
6.記憶體調優
7.垃圾回收策略調優
8.共享session處理
9.添加JMS遠程監控
10.專業點的分析工具有
11.監視Tomcat的記憶體使用情況
12.列印類的加載情況及物件的回收情況
13.Tomcat一個請求的完整程序
14.Tomcat作業模式?
Linux
1.絕對路徑用什么符號表示?當前目錄、上層目錄用什么表示?主目錄用什么表示? 切換目錄用什么命令?
2.使用什么命令查看IP地址及介面資訊?
3.怎么清屏?怎么退出當前命令?怎么執行睡眠?怎么查看當
4.通過什么命令指定命令提示符?
5.查看檔案有哪些命令
6.列舉幾個常用的Linux命令
7.怎么對命令進行取別名?
8.建立軟鏈接(快捷方式),以及硬鏈接的命令
9.當你需要給命令系結一個宏或者按鍵的時候,應該怎么做呢?
10.查看檔案內容有哪些命令可以使用?
11.隨意寫檔案命令?怎么向螢屏輸出帶空格的字串,比如”hello world”?
12.你的系統目前有許多正在運行的任務,在不重啟機器的條件下,有什么方法可以把所有正在運行的行程移除呢?
13.移動檔案用哪個命令?改名用哪個命令?
14.復制檔案用哪個命令?如果需要連同檔案夾一塊復制呢?如果需要有提示功能呢?
15.怎樣一頁一頁地查看一個大檔案的內容呢?
16.Linux下命令有哪幾種可使用的通配符?分別代表什么含義?
17.用什么命令對一個檔案的內容進行統計?(行號、單詞數、位元組數)
18.Grep命令有什么用? 如何忽略大小寫? 如何查找不含該串的行?
19.Linux中行程有哪幾種狀態?在ps顯示出來的資訊中分別用什么符號表示的?
20.怎樣查看一個Linux命令的概要與用法?假設你在/bin目錄中偶然看到一個你從沒見過的的命令,怎樣才能知道它的作用和用法呢?

總結
金三銀四即將來臨,來刷刷這份春招面試手冊,有需求即可免費分享下載!
所有的面試題目都不是一成不變的,上面的面試題只是給大家一個借鑒作用,最主要的是給自己增加知識的儲備,有備無患,
文中提到的相關面試題整理成了40多套PDF檔案:
領取方式:Java基礎、演算法、資料庫、資料結構、快取、大資料組件、訊息佇列、多執行緒、大資料組件原理、NIO&RPC,

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/255183.html
標籤:其他
