欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

一般java面試都會問些什么問題

張吉惟2年前25瀏覽0評論

一般java面試都會問些什么問題?

初級Java開發面試知識點及題目

Java開發面試真題

九種基本數據類型的大小,以及他們的封裝類。

Switch能否用string做參數? jdk7以后

equals與==的區別:要比較兩個基本類型的數據或兩個引用變量是否相等,只能用操作符

Object有哪些公用方法?

clone

equals

hashCode

getClass

wait

notify

notifyAll

toString

Java的四種引用,強弱軟虛,用到的場景。

Hashcode的作用。

ArrayList、LinkedList、Vector的區別。

String、StringBuffer與StringBuilder的區別。

Map、Set、List、Queue、Stack的特點與用法。

HashMap和HashTable的區別。

HashMap和ConcurrentHashMap的區別,HashMap的底層源碼。

TreeMap、HashMap、LindedHashMap的區別。

Collection包結構,與Collections的區別。

try catch finally,try里有return,finally還執行么?

Excption與Error包結構。OOM你遇到過哪些情況,SOF你遇到過哪些情況。

Java面向對象的三個特征與含義。

Override和Overload的含義去區別。

Interface與abstract類的區別。

Static class 與non static class的區別。

java多態的實現原理。

實現多線程的兩種方法:Thread與Runable。

線程同步的方法:sychronized、lock、reentrantLock等。

鎖的等級:方法鎖、對象鎖、類鎖。

寫出生產者消費者模式。

ThreadLocal的設計理念與作用。

ThreadPool用法與優勢。

Concurrent包里的其他東西:ArrayBlockingQueue、CountDownLatch等等。

wait()和sleep()的區別。

foreach與正常for循環效率對比。

Java IO與NIO。

反射的作用于原理。

泛型常用特點,List能否轉為List。

解析XML的幾種方式的原理與特點:DOM、SAX、PULL。

Java1.7與1.8新特性。

設計模式:單例、工廠、適配器、責任鏈、觀察者等等。

JNI的使用。

JVM

內存模型以及分區,需要詳細到每個區放什么。

堆里面的分區:Eden,survival from to,老年代,各自的特點。

對象創建方法,對象的內存分配,對象的訪問定位。

GC的兩種判定方法:引用計數與引用鏈。

GC的三種收集方法:標記清除、標記整理、復制算法的原理與特點,分別用在什么地方,如果讓你優化收集方法,有什么思路?

GC收集器有哪些?CMS收集器與G1收集器的特點。

Minor GC與Full GC分別在什么時候發生?

幾種常用的內存調試工具:jmap、jstack、jconsole。

類加載的五個過程:加載、驗證、準備、解析、初始化。

雙親委派模型:Bootstrap ClassLoader、Extension ClassLoader、ApplicationClassLoader。

分派:靜態分派與動態分派。

TCP

OSI與TCP/IP各層的結構與功能,都有哪些協議。

TCP與UDP的區別。

TCP報文結構。

TCP的三次握手與四次揮手過程,各個狀態名稱與含義,TIMEWAIT的作用。

TCP擁塞控制。

TCP滑動窗口與回退N針協議。

Http的報文結構。

Http的狀態碼含義。

Http request的幾種類型。

Http1.1和Http1.0的區別

Http怎么處理長連接。

Cookie與Session的作用于原理。

電腦上訪問一個網頁,整個過程是怎么樣的:DNS、HTTP、TCP、OSPF、IP、ARP。

C/S模式下使用socket通信,幾個關鍵函數。

Ping的整個過程。ICMP報文是什么。

數據結構與算法

鏈表與數組。

隊列和棧,出棧與入棧。

鏈表的刪除、插入、反向。

字符串操作。

Hash表的hash函數,沖突解決方法有哪些。

各種排序:冒泡、選擇、插入、希爾、歸并、快排、堆排、桶排、基數的原理、平均時間復雜度、最壞時間復雜度、空間復雜度、是否穩定。

快排的partition函數與歸并的Merge函數。

對冒泡與快排的改進。

二分查找,與變種二分查找。

二叉樹、B+樹、AVL樹、紅黑樹、哈夫曼樹。

二叉樹的前中后續遍歷:遞歸與非遞歸寫法,層序遍歷算法。

圖的BFS與DFS算法,最小生成樹prim算法與最短路徑Dijkstra算法。

KMP算法。

排列組合問題。

動態規劃、貪心算法、分治算法。(一般不會問到)

大數據處理:類似10億條數據找出最大的1000個數

JAVA基礎概念方面

1、String 是最基本的數據類型嗎

答:不是。Java中的基本數據類型只有8個:byte、short、int、long、float、double、char、boolean;除了基本類型(primitive type),剩下的都是引用類型(reference type)。 其在內存中的引用包括棧內引用和堆引用兩種方式。

2、解釋內存中的棧(stack)、堆(heap)和方法區(method area)的用法

答:通常我們定義一個基本數據類型的變量,一個對象的引用,還有就是函數調用的現場保存都使用JVM中的棧空間;而通過new關鍵字和構造器創建的對象則放在堆空間,堆是垃圾收集器管理的主要區域,由于現在的垃圾收集器都采用分代收集算法,所以堆空間還可以細分為新生代和老生代,再具體一點可以分為Eden、Survivor(又可分為From Survivor和To Survivor)、Tenured;方法區和堆都是各個線程共享的內存區域,用于存儲已經被JVM加載的類信息、常量、靜態變量、JIT編譯器編譯后的代碼等數據。

3、構造器(constructor)是否可被重寫(override)

答:構造器不能被繼承,因此不能被重寫,但可以被重載。

4、重載(Overload)和重寫(Override)的區別。重載的方法能否根據返回類型進行區分

答:方法的重載和重寫都是實現多態的方式,區別在于前者實現的是編譯時的多態性,而后者實現的是運行時的多態性。重載發生在一個類中,同名的方法如果有不同的參數列表(參數類型不同、參數個數不同或者二者都不同)則視為重載;重寫發生在子類與父類之間,重寫要求子類被重寫方法與父類被重寫方法有相同的返回類型,比父類被重寫方法更好訪問,不能比父類被重寫方法聲明更多的異常(里氏代換原則)。重載對返回類型沒有特殊的要求。

5、抽象類(abstract class)和接口(interface)有什么異同?

答:抽象類和接口都不能夠實例化,但可以定義抽象類和接口類型的引用。一個類如果繼承了某個抽象類或者實現了某個接口都需要對其中的抽象方法全部進行實現,否則該類仍然需要被聲明為抽象類。接口比抽象類更加抽象,因為抽象類中可以定義構造器,可以有抽象方法和具體方法,而接口中不能定義構造器而且其中的方法全部都是抽象方法。抽象類中的成員可以是private、默認、protected、public的,而接口中的成員全都是public的。抽象類中可以定義成員變量,而接口中定義的成員變量實際上都是常量。有抽象方法的類必須被聲明為抽象類,而抽象類未必要有抽象方法。

6、同步方法和同步代碼塊的區別是什么

在Java語言中,每一個對象有一把鎖。線程可以使用synchronized關鍵字來獲取對象上的鎖。synchronized關鍵字可應用在方法級別(粗粒度鎖)或者是代碼塊級別(細粒度鎖)。

類的成員不寫訪問修飾時默認為default。默認對于同一個包中的其他類相當于公開(public),對于不是同一個包中的其他類相當于私有(private)。受保護(protected)對子類相當于公開,對不是同一包中的沒有父子關系的類相當于私有。Java中,外部類的修飾符只能是public或默認,類的成員(包括內部類)的修飾符可以是以上四種。

系統設計與部署方面

1、數據庫設計原則, 通俗地理解三個范式

通俗地理解三個范式,對于數據庫設計大有好處。在數據庫設計中,為了更好地應用三個范式,就必須通俗地理解

三個范式(通俗地理解是夠用的理解,并不是最科學最準確的理解):

第一范式:1NF是對屬性的原子性約束,要求屬性具有原子性,不可再分解;

第二范式:2NF是對記錄的惟一性約束,要求記錄有惟一標識,即實體的惟一性;

第三范式:3NF是對字段冗余性的約束,即任何字段不能由其他字段派生出來,它要求字段沒有冗余。

沒有冗余的數據庫設計可以做到。但是,沒有冗余的數據庫未必是最好的數據庫,有時為了提高運行效率,就必須降

低范式標準,適當保留冗余數據。具體做法是:在概念數據模型設計時遵守第三范式,降低范式標準的工作放到物理

數據模型設計時考慮。降低范式就是增加字段,允許冗余。

2、主要了解對方參與的項目,以及在項目中承擔的角色。

如果是開發角色,需重點詢問其開發的模塊,實現了那些功能、使用的是什么框架或技術、有沒有遇到什么難忘的坑。

如果是架構和設計角色,需要重點了解其參與模塊的功能架構、部署架構、運行時架構和數據流圖等。還可以問一下對系統可用性、數據一致性、性能等的考慮。

java分層,一般java面試都會問些什么問題