面試問題收藏

https://github.com/liuzhengyang/interview

面試問題收藏

這些是我最近想到的一些問題,比較基礎。回答的不一定完全準確,一些自己還不是很明白,需要思考學習。

計算機基礎方面

網絡

TCP/IP協議是什麼

TCP/IP是指由TCP、UDP、IP、ICMP等協議組成的協議簇

TCP握手過程、關閉和狀態變化,對應到程序中是哪些函數調用

常說的三次握手,四次揮手。還是用圖來表示最清楚了。

TCP是怎麼保證可靠性的

超時重連

TCP和UDP的區別

TCP: 面向連接,提供可靠性機制 UDP: 不保證可靠性

IP層的作用

IP層負責主機路由 TCP層負責端到端的傳輸,主機上的每個程序都可以是一個端。用一個端口號表示

tcpdump、wireshark使用

tcpdump -i eth1 tcp port 2222 and src 122.222.22 wireshark界面和命令行

ping命令使用了哪些協議

ICMP UDP

ARP和RARP

ip和網卡地址的互相解析

Connection reset by peer的原因, RST包發生的時機。

表示連接錯誤,一般發生的原因有

  • 對方設置SO_LINGER爲啓用且到時了,對方會發送一個RST包,表示連接已經被重置,對方的端口不會表示成TIME_WAIT狀態
  • 中間如果有代理服務,代理服務可能會判斷連接會話超時,同時向雙方發送RST
  • RST包: 在向一個沒有監聽的端口發送SYN時,也會返回

TCP 連接參數 TCP_NO_DELAY, TCP_KEEPALIVE, TCP_SO_LINGER

NO_DELAY是是否啓用Nagle,TODO

TCP延遲確認 200ms問題

TODO

HTTP協議

文本傳輸協議

HTTP請求過程。

DNS解析域名到ip映射 獲得ip後通過ip和端口號請求 依次通過TCP、IP層 鏈路層傳輸到下一個主機,MAC地址是下一站的MAC地址

DNS是什麼

domain naming service 解析域名到ip地址

HTTPS是什麼,HTTPS握手過程,對稱加密、非對稱加密是什麼,有哪些加密算法。

http over SSL/TLS

NGINX是什麼,負載均衡原理,負載均衡算法

反向代理、負載均衡

操作系統

操作系統的作用

進程作用,進程切換需要保存哪些內容

線程和協程

內核空間

IO

數據結構

鏈表

倒排索引

算法

排序算法

Java方面

常用的linux命令

日常操作

  • cp
  • mv
  • ls ll
  • grep
  • |
  • cat less head tail
  • vim 操作
  • scp
  • awk
  • sort uniq
  • nc

監控類

  • top
  • uptime
  • sar
  • ps
  • dstat
  • vmstat
  • iostat
  • df
  • du
  • ss
  • netstat
  • lsof

java的命令

jdk bin目錄下的工具

Java字節碼、jvm相關

jvm是什麼,作用是什麼

java virtual machine Java運行bytecode的地方,通過JVM抽象,可以實現平臺無關性,一次編寫到處運行(write once, run everywhere or write one, debug everywhere) 字節碼這一層抽象也實現了語言無關性,只要能夠編譯出符合JVM規範的字節碼,無論是scala、groovy等語言的代碼都能在JVM上運行

收集器和垃圾收集算法

動態代理有哪些方式

java運行時內存分佈

java class文件結構

  • u2 magiccode
  • u2 minor version
  • u2 major version
  • u2 constant pool count
  • constant pool[constant pool count -1]
  • access flag
  • this class
  • super class
  • interface count
  • [count] interfaces
  • field count
  • [count] fields
  • method count
  • [count] methods
  • attributes

java 字節碼指令集包括哪些

操作數棧與局部變量操作

  • aload_0
  • astore_0
  • iconst_0
  • bipush 100
  • pop
  • swap
  • dup, dup_x1
  • inc
  • getfield
  • putfield
  • getstatic
  • putstatic

方法調用

  • invokestatic 調用靜態方法
  • invokevirtual 調用虛方法,動態分派
  • invokespecial 調用構造器,私有方法,父類方法
  • invokeinterface 調用接口方法
  • invokedynamic java7增加的動態語言特性TODO

運算

  • iadd
  • TODO

流程控制

  • goto
  • ifcom TODO

類操作

  • new
  • check instance
  • cast TODO

ClassLoader, Class關係,Class的加載、驗證、準備、解析、初始化

java 如何實現多態

如何實現動態加載、熱部署

收藏資料

JRebel發佈的

java語言

java優點和缺點

java集合框架有哪些類

java併發集合框架,原子類,Executor

AQS, Future, Lock, Semaphore等。

Java線程狀態

多線程的需要注意的地方

原子、可見性、重排序。 性能,死鎖。 偏向鎖、輕量級鎖、自旋鎖、重量級鎖。

實現異步等待的方式

IO

字節流的概念,網絡中傳輸的都是字節流

字符集

文件操作

BIO和NIO區別,阻塞的含義

read write 阻塞需要單獨一個線程來負責一個連接,非阻塞可以更很少的線程來管理

Channel, Selector, ByteBuffer

ServerSocketChannel, SocketChannel SelectionKey ByteBuffer clear, position, limit, flip, remaining等

  • 推薦Doug Lea的nio.pdf * ### 異步IO Future, Listener ### Netty netty是什麼 非阻塞的、事件驅動的快速網絡開發框架,很快的開發出健壯高效的網絡應用。 netty結構 大體包括Bootstrap啓動模塊 ChannelHandler 中實現我們的業務邏輯,或者一些Codec編碼解碼器 Channel 代表一個連接 ChannelPipeline, 每個Channel會有一個ChannelPipeline ChannelHandlerContext, pipeline和handler關聯起來 ByteBuf Netty裏的ByteBuffer實現

收藏資料

Jetty Tomcat

Servlet的作用,Servlet生命週期 Jetty結構,Jetty啓動過程,一個請求從接收到返回的中間步驟

Redis

redis 數據結構 redis 數據結構實現 redis cluster redis 實現計數器 redis 實現緩存,緩存如何失效,緩存一致性,如何保證緩存和數據庫的一致性 redis 實現發佈訂閱 redis 實現報警,判斷一分鐘達到閾值

MQ

kafka,rabbitmq

延遲隊列

rabbitmq、activemq, redis實現,beanstalk

日誌收集監控

Spring

Spring是什麼,Spring作用

常說的IOC和AOP是什麼,作用。

Spring 啓動過程, Spring Bean加載過程和處理過程 BeanPostProcessor

Spring如何實現生命式事務的

Spring如何實現Aspect AOP的

Spring MVC結構,一個http request在spring中是如何流轉的

spring boot

數據庫

事務是什麼、作用

事務的幾個特點 ACID

mysql 存儲引擎

mysql默認隔離級別

innodb 索引,B-Tree,B+Tree 結構

主鍵、索引、數據存儲方式

索引的最左匹配原則、聚簇索引、非聚簇索引。覆蓋索引。

explain, full scan, tmp file. file sort. join .in.

字段選擇,int, bigint, varchar, char, datetime

鎖範圍,行級鎖,表級鎖,鎖索引。間隙鎖(Gap).全表掃描

書籍記錄

強烈推薦

  • Java併發編程實踐
  • 深入理解Java虛擬機
  • java虛擬機規範7、8
  • 高性能mysql
  • TCP/IP詳解
  • Netty In Action(英文版的)
  • 計算機程序的構造與解釋

推薦

  • Clean Code( 代碼整潔知道)
  • EffectiveJava
  • 重構( 我剛看了一點,羞愧,要補一補)
  • Thinking In Java( 我剛看了一點,羞愧,要補一補)
  • 代碼大全

比較推薦的書籍

  • 大型網站xxx(淘寶出的一些書,技術演進等等,能對互聯網常用技術、發展有一個大概瞭解)
  • Spring揭祕
  • 從Paxos到Zookeeper
  • Go語言編程
  • Java併發編程的藝術
  • Docker的一些書(介紹用就可以了,主要靠實踐)
  • 深入分析javaWeb內幕

拓展視野的書籍

  • 軟技能
  • 人月神話 *

選擇讀的書籍(一般推薦,有時間讀一讀)

  • Java特種兵
  • ElasticSearch服務器開發
  • Spring 3.x 企業應用開發
  • spring技術內幕

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章