{eval=Array;=+count(Array);}

国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

問答專欄Q & A COLUMN

你遇到過哪些質(zhì)量很高的Java面試?

2shou2shou 回答0 收藏2
問題描述:你遇到過哪些質(zhì)量很高的Java面試?
收藏問題

5條回答

chenatu

chenatu

回答于2022-06-28 15:58

筆者曾就職與ucloud,ucloud,samsung,是一個(gè)資深碼農(nóng)

如果大家想了解更多程序員的生活或者Java與android技術(shù)可以關(guān)注我哦

1. java基礎(chǔ)以及多個(gè)“比較”

1.Collections.sort排序內(nèi)部原理

在Java 6中Arrays.sort()和Collections.sort()使用的是MergeSort,而在Java 7中,內(nèi)部實(shí)現(xiàn)換成了TimSort,其對對象間比較的實(shí)現(xiàn)要求更加嚴(yán)格

2.hashMap原理,java8做的改變

從結(jié)構(gòu)實(shí)現(xiàn)來講,HashMap是數(shù)組+鏈表+紅黑樹(JDK1.8增加了紅黑樹部分)實(shí)現(xiàn)的。HashMap最多只允許一條記錄的鍵為null,允許多條記錄的值為null。HashMap非線程安全。ConcurrentHashMap線程安全。解決碰撞:當(dāng)出現(xiàn)沖突時(shí),運(yùn)用拉鏈法,將關(guān)鍵詞為同義詞的結(jié)點(diǎn)鏈接在一個(gè)單鏈表中,散列表長m,則定義一個(gè)由m個(gè)頭指針組成的指針數(shù)組T,地址為i的結(jié)點(diǎn)插入以T(i)為頭指針的單鏈表中。Java8中,沖突的元素超過限制(8),用紅黑樹替換鏈表。

3.String 和 StringBuilder 的區(qū)別

1)可變與不可變:String不可變,每一次執(zhí)行“+”都會新生成一個(gè)新對象,所以頻繁改變字符串的情況中不用String,以節(jié)省內(nèi)存。

2)是否多線程安全:StringBuilder并沒有對方法進(jìn)行加同步鎖,所以是非線程安全的。StringBuffer和String均線程安全。

4.Vector 與 Array 的區(qū)別

1)ArrayList在內(nèi)存不夠時(shí)默認(rèn)是擴(kuò)展50% + 1個(gè),Vector是默認(rèn)擴(kuò)展1倍。2)Vector屬于線程安全級別的,但是大多數(shù)情況下不使用Vector,因?yàn)榫€程安全需要更大的系統(tǒng)開銷。

5.HashMap 與 Hashtable 的區(qū)別

1) 歷史原因: Hashtable繼承Dictonary類, HashMap繼承自abstractMap

2) HashMap允許空的鍵值對, 但最多只有一個(gè)空對象,而HashTable不允許。 3) HashTable同步,而HashMap非同步,效率上比HashTable要高

6.ConncurrentHashMap和hashtable比較

兩個(gè)線程并發(fā)訪問map中同一條鏈,一個(gè)線程在尾部刪除,一個(gè)線程在前面遍歷查找,問為什么前面的線程還能正確的查找到后面被另一個(gè)線程刪除的節(jié)點(diǎn))

ConcurrentHashMap融合了hashtable和hashmap二者的優(yōu)勢。hashtable是做了同步的,即線程安全,hashmap未考慮同步。所以hashmap在單線程情況下效率較高。hashtable在的多線程情況下,同步操作能保證程序執(zhí)行的正確性。但是hashtable是阻塞的,每次同步執(zhí)行的時(shí)候都要鎖住整個(gè)結(jié)構(gòu),ConcurrentHashMap正是為了解決這個(gè)問題而誕生的,

ConcurrentHashMap允許多個(gè)修改操作并發(fā)進(jìn)行,其關(guān)鍵在于使用了鎖分離技術(shù)(一個(gè)Array保存多個(gè)Object,使用這些對象的鎖作為分離鎖,get/put時(shí)隨機(jī)使用任意一個(gè))。它使用了多個(gè)鎖來控制對hash表的不同部分進(jìn)行的修改。在JDK 1.6中,有HashEntry結(jié)構(gòu)存在,每次插入將新添加節(jié)點(diǎn)作為鏈的頭節(jié)點(diǎn)(同HashMap實(shí)現(xiàn)),而且每次刪除一個(gè)節(jié)點(diǎn)時(shí),會將刪除節(jié)點(diǎn)之前的所有節(jié)點(diǎn)拷貝一份組成一個(gè)新的鏈,而將當(dāng)前節(jié)點(diǎn)的上一個(gè)節(jié)點(diǎn)的next指向當(dāng)前節(jié)點(diǎn)的下一個(gè)節(jié)點(diǎn),從而在刪除以后有兩條鏈存 在,因而可以保證即使在同一條鏈中,有一個(gè)線程在刪除,而另一個(gè)線程在遍歷,它們都能工作良好,因?yàn)楸闅v的線程能繼續(xù)使用原有的鏈。

Java8中,采用volatile HashEntry保存數(shù)據(jù),table元素作為鎖;從table數(shù)組+單向鏈表加上了紅黑樹。紅黑樹是一種特別的二叉查找樹,特性為:1.節(jié)點(diǎn)為紅或者黑 2.根節(jié)點(diǎn)為黑 3.葉節(jié)點(diǎn)為黑 4.一節(jié)點(diǎn)為紅,則葉節(jié)點(diǎn)為黑 5.一節(jié)點(diǎn)到其子孫節(jié)點(diǎn)所有路徑上的黑節(jié)點(diǎn)數(shù)目相同。

7.ArrayList與 LinkedList 的區(qū)別?

最明顯的區(qū)別是ArrrayList 底層的數(shù)據(jù)結(jié)構(gòu)是數(shù)組,支持隨機(jī)訪問,而 LinkedList 的底層數(shù)據(jù)結(jié)構(gòu)書鏈表,不支持隨機(jī)訪問。使用下標(biāo)訪問一個(gè)元素,ArrayList 的時(shí)間復(fù)雜度是 O(1),而 LinkedList 是 O(n)。LinkedList是雙向鏈表

8.Java 中,Comparator 與Comparable 有什么不同?

Comparable 接口用于定義對象的自然順序,是排序接口,而 comparator 通常用于定義用戶定制的順序,是比較接口。我們?nèi)绻枰刂颇硞€(gè)類的次序,而該類本身不支持排序(即沒有實(shí)現(xiàn)Comparable接口),那么我們就可以建立一個(gè)“該類的比較器”來進(jìn)行排序。Comparable 總是只有一個(gè),但是可以有多個(gè) comparator 來定義對象的順序。

9.抽象類是什么?它與接口有什么區(qū)別?你為什么要使用過抽象類?

抽象類是指不允許被實(shí)例化的類;一個(gè)類只能使用一次繼承關(guān)系。但是,一個(gè)類卻可以實(shí)現(xiàn)多個(gè)interface。

abstract class和interface所反映出的設(shè)計(jì)理念不同。其實(shí)abstract class表示的是"is-a"關(guān)系,interface表示的是"like-a"關(guān)系

實(shí)現(xiàn)抽象類和接口的類必須實(shí)現(xiàn)其中的所有方法。抽象類中可以有非抽象方法。接口中則不能有實(shí)現(xiàn)方法。但在Java8中允許接口中有靜態(tài)默認(rèn)的方法。

用抽象類是為了重用。減少編碼量,降低耦合性。

10.描述 Java 中的重載和重寫?

重載和重寫都允許你用相同的名稱來實(shí)現(xiàn)不同的功能,但是重載是編譯時(shí)活動,而重寫是運(yùn)行時(shí)活動。你可以在同一個(gè)類中重載方法,但是只能在子類中重寫方法。重寫必須要有繼承

重寫:1、在子類中可以根據(jù)需要對從基類中繼承來的方法進(jìn)行重寫。2、重寫的方法和被重寫的方法必須具有相同方法名稱、參數(shù)列表和返回類型。3、重寫方法不能使用比被重寫的方法更嚴(yán)格的訪問權(quán)限。

重載的時(shí)候,方法名要一樣,但是參數(shù)類型和個(gè)數(shù)不一樣,返回值類型可以相同也可以不相同。無法以返回型別作為重載函數(shù)的區(qū)分標(biāo)準(zhǔn)。

11.Collection與Collections的區(qū)別是什么?

Collection<E>是Java集合框架中的基本接口;

Collections是Java集合框架提供的一個(gè)工具類,其中包含了大量用于操作或返回集合的靜態(tài)方法。

12.Java中多態(tài)的實(shí)現(xiàn)原理

所謂多態(tài),指的就是父類引用指向子類對象,調(diào)用方法時(shí)會調(diào)用子類的實(shí)現(xiàn)而不是父類的實(shí)現(xiàn)。多態(tài)的實(shí)現(xiàn)的關(guān)鍵在于“動態(tài)綁定”。

13.object中定義了哪些方法?

clone(), equals(), hashCode(), toString(), notify(), notifyAll(),wait(), finalize(), getClass()

14. Java泛型和類型擦除

泛型即參數(shù)化類型,在創(chuàng)建集合時(shí),指定集合元素的類型,此集合只能傳入該類型的參數(shù)。類型擦除:java編譯器生成的字節(jié)碼不包含泛型信息,所以在編譯時(shí)擦除:1.泛型用最頂級父類替換;2.移除。

15.說出 5 個(gè) JDK 1.8 引入的新特性?

Java 8 在 Java 歷史上是一個(gè)開創(chuàng)新的版本,下面 JDK 8 中 5 個(gè)主要的特性:Lambda 表達(dá)式;允許像對象一樣傳遞匿名函數(shù) Stream API,充分利用現(xiàn)代多核 CPU,可以寫出很簡潔的代碼 ;Date 與 Time API,最終,有一個(gè)穩(wěn)定、簡單的日期和時(shí)間庫可供你使用 擴(kuò)展方法,現(xiàn)在,接口中可以有靜態(tài)、默認(rèn)方法; 重復(fù)注解,現(xiàn)在你可以將相同的注解在同一類型上使用多次。

16.java中public,private,protected以及默認(rèn)關(guān)鍵字的訪問范圍:

Protected可在包內(nèi)及包外子類訪問,default只能同一包內(nèi)訪問,prvate只能同一類

17. 常用數(shù)據(jù)結(jié)構(gòu):

集合,線性結(jié)構(gòu)(數(shù)組,隊(duì)列,鏈表和棧),樹形結(jié)構(gòu),圖狀結(jié)構(gòu)

18.Java 中的 TreeMap 是采用什么樹實(shí)現(xiàn)的?(答案)

Java 中的 TreeMap 是使用紅黑樹實(shí)現(xiàn)的。

19. 匿名內(nèi)部類是什么?如何訪問在其外面定義的變量?

匿名內(nèi)部類也就是沒有名字的內(nèi)部類,匿名內(nèi)部類只能使用一次,它通常用來簡化代碼編寫。

匿名內(nèi)部類只能訪問外部類的Final變量. Java 8更加智能:如果局部變量被匿名內(nèi)部類訪問,那么該局部變量相當(dāng)于自動使用了final修飾。

20. 如何創(chuàng)建單例模式?說了雙重檢查,他說不是線程安全的。如何高效的創(chuàng)建一個(gè)線程安全的單例?

一種是通過枚舉,一種是通過靜態(tài)內(nèi)部類。

21.poll() 方法和 remove() 方法的區(qū)別?

poll() 和remove() 都是從隊(duì)列中取出一個(gè)元素,但是 poll() 在獲取元素失敗的時(shí)候會返回空,但是 remove() 失敗的時(shí)候會拋出異常。

22.寫一段代碼在遍歷 ArrayList 時(shí)移除一個(gè)元素

使用迭代器。

Iterator itr = list.iterator();while(itr.hasNext()) {if(...) { itr.remove();} }

2. JVM

1.JVM如何加載一個(gè)類的過程,雙親委派模型中有哪些方法

類加載過程:加載、驗(yàn)證(驗(yàn)證階段作用是保證Class文件的字節(jié)流包含的信息符合JVM規(guī)范,不會給JVM造成危害)、準(zhǔn)備(準(zhǔn)備階段為變量分配內(nèi)存并設(shè)置類變量的初始化)、解析(解析過程是將常量池內(nèi)的符號引用替換成直接引用)、初始化。

雙親委派模型中方法:雙親委派是指如果一個(gè)類收到了類加載的請求,不會自己先嘗試加載,先找父類加載器去完成。當(dāng)頂層啟動類加載器表示無法加載這個(gè)類的時(shí)候,子類才會嘗試自己去加載。當(dāng)回到最開的發(fā)起者加載器還無法加載時(shí),并不會向下找,而是拋出ClassNotFound異常。

方法:啟動(Bootstrap)類加載器,標(biāo)準(zhǔn)擴(kuò)展(Extension)類加載器,應(yīng)用程序類加載器(Application ),上下文(Custom)類加載器。意義是防止內(nèi)存中出現(xiàn)多份同樣的字節(jié)碼 。

2.GC算法(什么樣的對象算是可回收對象,可達(dá)性分析),CMS收集器

jvm是如何判斷一個(gè)對象已經(jīng)變成了可回收的“垃圾”,一般是兩個(gè)方法:引用記數(shù)法和根搜索算法。引用記數(shù)法沒辦法解決循環(huán)引用的問題,所以用根搜索。從一系列的”GC Roots“對象開始向下搜索,搜索走過的路徑稱為引用鏈。當(dāng)一個(gè)對象到”GC Roots“之間沒有引用鏈時(shí),被稱為引用不可達(dá)。引用不可到的對象被認(rèn)為是可回收的對象。

3.JVM分為哪些區(qū),每一個(gè)區(qū)干嗎的?

1)方法區(qū)(method):被所有的線程共享。方法區(qū)包含所有的類信息和靜態(tài)變量。

2)堆(heap):被所有的線程共享,存放對象實(shí)例以及數(shù)組,Java堆是GC的主要區(qū)域。

3)棧(stack):每個(gè)線程包含一個(gè)棧區(qū),棧中保存一些局部變量等。

4)程序計(jì)數(shù)器:是當(dāng)前線程執(zhí)行的字節(jié)碼的行指示器。

4.JVM新生代,老年代,持久代,都存儲哪些東西?

持久代主要存放的是Java類的類信息,與垃圾收集要收集的Java對象關(guān)系不大。所有新生成的對象首先都是放在年輕代的,年老代中存放的都是一些生命周期較長的對象。

5.內(nèi)存溢出和內(nèi)存泄漏:

內(nèi)存溢出:程序申請內(nèi)存時(shí),沒有足夠的內(nèi)存,out of memory;內(nèi)存泄漏值垃圾對象無法回收,可以使用memory analyzer工具查看泄漏。

6.進(jìn)程與線程:

進(jìn)程值運(yùn)行中的程序(獨(dú)立性,動態(tài)性,并發(fā)性),線程指進(jìn)程中的順序執(zhí)行流。區(qū)別是:1.進(jìn)程間不共享內(nèi)存 2.創(chuàng)建進(jìn)程進(jìn)行資源分配的代價(jià)要大得多,所以多線程在高并發(fā)環(huán)境中效率高。

7.序列化與反序列化:

序列化指將java對象轉(zhuǎn)化為字節(jié)序列,反序列化相反。主要是為了java線程間通訊,實(shí)現(xiàn)對象傳遞。只有實(shí)現(xiàn)了Serializable或Externalizable接口類對象才可被序列化。

8.64 位 JVM 中,int 的長度是多數(shù)?

Java 中,int 類型變量的長度是一個(gè)固定值,與平臺無關(guān),都是 32 位。意思就是說,在 32 位 和 64 位 的Java 虛擬機(jī)中,int 類型的長度是相同的。

9.Java 中 WeakReference 與 SoftReference的區(qū)別?

Java中一共有四種類型的引用。StrongReference、 SoftReference、 WeakReference 以及 PhantomReference。

StrongReference 是 Java 的默認(rèn)引用實(shí)現(xiàn), 它會盡可能長時(shí)間的存活于 JVM 內(nèi),當(dāng)沒有任何對象指向它時(shí)將會被GC回收

WeakReference,顧名思義, 是一個(gè)弱引用, 當(dāng)所引用的對象在JVM 內(nèi)不再有強(qiáng)引用時(shí), 將被GC回收

雖然 WeakReference 與 SoftReference 都有利于提高 GC 和 內(nèi)存的效率,但是 WeakReference ,一旦失去最后一個(gè)強(qiáng)引用,就會被 GC 回收,而 SoftReference 會盡可能長的保留引用直到 JVM 內(nèi)存不足時(shí)才會被回收(虛擬機(jī)保證), 這一特性使得SoftReference 非常適合緩存應(yīng)用

10.解釋 Java 堆空間及 GC?

當(dāng)通過 Java 命令啟動Java 進(jìn)程的時(shí)候,會為它分配內(nèi)存。內(nèi)存的一部分用于創(chuàng)建堆空間,當(dāng)程序中創(chuàng)建對象的時(shí)候,就從對空間中分配內(nèi)存。GC 是 JVM 內(nèi)部的一個(gè)進(jìn)程,回收無效對象的內(nèi)存用于將來的分配。

11.Java 中堆和棧有什么區(qū)別?

JVM 中堆和棧屬于不同的內(nèi)存區(qū)域,使用目的也不同。棧常用于保存方法幀和局部變量,而對象總是在堆上分配。棧通常都比堆小,也不會在多個(gè)線程之間共享,而堆被整個(gè) JVM 的所有線程共享。

3. 并發(fā),鎖

1.volatile關(guān)鍵字, Lock

并發(fā)編程中:原子性問題,可見性問題,有序性問題。

volatile關(guān)鍵字能保證可見性,字能禁止指令重排序,但是不能保證原子性。可見性只能保證每次讀取的是最新的值,但是volatile沒辦法保證對變量的操作的原子性。在生成的會變語句中加入Lock關(guān)鍵字和內(nèi)存屏障。

Lock 實(shí)現(xiàn)提供了比使用synchronized 方法和語句可獲得的更廣泛的鎖定操作,它能以更優(yōu)雅的方式處理線程同步問題。用sychronized修飾的方法或者語句塊在代碼執(zhí)行完之后鎖自動釋放,而用Lock需要我們手動釋放鎖

2.MYSQL常用優(yōu)化(sql優(yōu)化,表結(jié)構(gòu)優(yōu)化等)

SQL優(yōu)化、表機(jī)構(gòu)優(yōu)化、索引優(yōu)化、緩存參數(shù)優(yōu)化

3.java每改一點(diǎn)都需要重新編譯打包部署,有沒有更好的方法

可以使用熱加載

4.進(jìn)程間通信有哪幾種方式?

1)管道(Pipe),2)命名管道(named pipe),3)信號(Signal),4)消息(Message)隊(duì)列,5)共享內(nèi)存,6)內(nèi)存映射(mapped memory),7)信號量(semaphore),8)套接口(Socket)

5.Sychronized修飾靜態(tài)方法,鎖定類本身而不是實(shí)例,非靜態(tài)方法鎖定實(shí)例。

6. 操作系統(tǒng)什么情況下會死鎖?

所謂死鎖:是指多個(gè)進(jìn)程在運(yùn)行過程中因爭奪資源而造成的一種僵局。產(chǎn)生的原因:競爭資源:當(dāng)系統(tǒng)中多個(gè)進(jìn)程使用共享資源,并且資源不足以滿足需要,會引起進(jìn)程對資源的競爭而產(chǎn)生死鎖。進(jìn)程間推進(jìn)的順序非法:請求和釋放資源的順序不當(dāng),也同樣會導(dǎo)致產(chǎn)生進(jìn)程死鎖

7.產(chǎn)生死鎖的四個(gè)條件:

1.互斥條件(進(jìn)程獨(dú)占資源)2.請求與保持(進(jìn)程因請求資源而阻塞時(shí),對已獲得的資源保持不放) 3.不剝奪條件(進(jìn)程已獲得的資源,在末使用完之前,不能強(qiáng)行剝奪) 4.循環(huán)等待(若干進(jìn)程之間形成一種頭尾相接的循環(huán)等待資源關(guān)系)

8. 如何理解分布式鎖?

由于在平時(shí)的工作中,線上服務(wù)器是分布式多臺部署的,經(jīng)常會面臨解決分布式場景下數(shù)據(jù)一致性的問題,那么就要利用分布式鎖來解決這些問題。

9. 線程同步與阻塞的關(guān)系?同步一定阻塞嗎?阻塞一定同步嗎?

線程同步與否 跟 阻塞非阻塞沒關(guān)系,同步是個(gè)過程,阻塞是線程的一種狀態(tài)。多個(gè)線程操作共享變量時(shí)可能會出現(xiàn)競爭。這時(shí)需要同步來防止兩個(gè)以上的線程同時(shí)進(jìn)入臨界區(qū)內(nèi),在這個(gè)過程中后進(jìn)入臨界區(qū)的線程將阻塞,等待先進(jìn)入的線程走出臨界區(qū)。

10. 同步和異步有什么區(qū)別?

同步和異步最大的區(qū)別就在于。一個(gè)需要等待,一個(gè)不需要等待。同步可以避免出現(xiàn)死鎖,讀臟數(shù)據(jù)的發(fā)生,一般共享某一資源的時(shí)候用,如果每個(gè)人都有修改權(quán)限,同時(shí)修改一個(gè)文件,有可能使一個(gè)人讀取另一個(gè)人已經(jīng)刪除的內(nèi)容,就會出錯,同步就會按順序來修改。

11. 線程池

根據(jù)系統(tǒng)自身的環(huán)境情況,有效的限制執(zhí)行線程的數(shù)量,使得運(yùn)行效果達(dá)到最佳。線程主要是通過控制執(zhí)行的線程的數(shù)量,超出數(shù)量的線程排隊(duì)等候,等待有任務(wù)執(zhí)行完畢,再從隊(duì)列最前面取出任務(wù)執(zhí)行

12. 如何調(diào)用 wait()方法?使用 if 塊還是循環(huán)?為什么?

wait() 方法應(yīng)該在循環(huán)調(diào)用,因?yàn)楫?dāng)線程獲取到 CPU 開始執(zhí)行的時(shí)候,其他條件可能還沒有滿足,所以在處理前,循環(huán)檢測條件是否滿足會更好。

wait(),notify()和notifyall()方法是java.lang.Object類為線程提供的用于實(shí)現(xiàn)線程間通信的同步控制方法。等待或者喚醒

13. 實(shí)現(xiàn)線程的幾種方法

(1)繼承Thread類,重寫run函數(shù) (2)實(shí)現(xiàn)Runnable接口,重寫run函數(shù) (3)實(shí)現(xiàn)Callable接口,重寫call函數(shù)

14. 什么是多線程環(huán)境下的偽共享(falsesharing)?

偽共享是多線程系統(tǒng)(每個(gè)處理器有自己的局部緩存)中一個(gè)眾所周知的性能問題。緩存系統(tǒng)中是以緩存行(cache line)為單位存儲的。緩存行是2的整數(shù)冪個(gè)連續(xù)字節(jié),一般為32-256個(gè)字節(jié)。最常見的緩存行大小是64個(gè)字節(jié)。當(dāng)多線程修改互相獨(dú)立的變量時(shí),如果這些變量共享同一個(gè)緩存行,就會無意中影響彼此的性能,這就是偽共享。

4. 網(wǎng)絡(luò)、數(shù)據(jù)庫

1.TCP如何保證可靠傳輸?三次握手過程?

在TCP的連接中,數(shù)據(jù)流必須以正確的順序送達(dá)對方。TCP的可靠性是通過順序編號和確認(rèn)(ACK)來實(shí)現(xiàn)的。TCP 連接是通過三次握手進(jìn)行初始化的。三次握手的目的是同步連接雙方的序列號和確認(rèn)號并交換 TCP 窗口大小信息。第一次是客戶端發(fā)起連接;第二次表示服務(wù)器收到了客戶端的請求;第三次表示客戶端收到了服務(wù)器的反饋。

2. Linux下你常用的命令有哪些?

3. 常用的hash算法有哪些?

1.加法hash:所謂的加法Hash就是把輸入元素一個(gè)一個(gè)的加起來構(gòu)成最后的結(jié)果。

2.位運(yùn)算hash:這類型Hash函數(shù)通過利用各種位運(yùn)算(常見的是移位和異或)來充分的混合輸入元素

3.乘法hash:33*hash + key.charAt(i)

4. 什么是一致性哈希?

設(shè)計(jì)目標(biāo)是為了解決因特網(wǎng)中的熱點(diǎn)(Hot spot)問題,一致性hash算法提出了在動態(tài)變化的Cache環(huán)境中,判定哈希算法好壞的四個(gè)定義:1、平衡性(Balance) 2、單調(diào)性(Monotonicity) 3、分散性(Spread) 4、負(fù)載(Load)

5. 數(shù)據(jù)庫中的范式有哪些?

第一范式----數(shù)據(jù)庫中的表(所有字段值)都是不可分割的原子數(shù)據(jù)項(xiàng)。

第二范式----數(shù)據(jù)庫表中的每一列都和主鍵相關(guān),而不能只和主鍵的某一部分相關(guān)。

第三范式----數(shù)據(jù)庫表中每一列數(shù)據(jù)都和主鍵直接相關(guān),不能間接相關(guān)。范式是為了減小數(shù)據(jù)冗余。

6. 數(shù)據(jù)庫中的索引的結(jié)構(gòu)?什么情況下適合建索引?

數(shù)據(jù)庫中索引的結(jié)構(gòu)是一種排序的數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)庫索引是通過B樹和變形的B+樹實(shí)現(xiàn)的。什么情況下不適合建立索引:1.對于在查詢過程中很少使用或參考的列;對于那些只有很少數(shù)據(jù)值的列;對于那些定義為image,text和bit數(shù)據(jù)類型的列;當(dāng)修改性能遠(yuǎn)大于檢索性能。

根據(jù)系統(tǒng)自身的環(huán)境情況,有效的限制執(zhí)行線程的數(shù)量,使得運(yùn)行效果達(dá)到最佳。線程主要是通過控制執(zhí)行的線程的數(shù)量,超出數(shù)量的線程排隊(duì)等候,等待有任務(wù)執(zhí)行完畢,再從隊(duì)列最前面取出任務(wù)執(zhí)行

7. concurrent包下面,都用過什么?

java.util.concurrent、java.util.concurrent.atomic和java.util.concurrent.lock

8. 常用的數(shù)據(jù)庫有哪些?redis用過嗎?

Orcale,MySQL,DB2

9. 你知道的開源協(xié)議有哪些?

GPL (GNU General Public License) :GNU通用公共許可協(xié)議

LGPL (GNU Lesser General Public License) :GNU寬通用公共許可協(xié)議

BSD(Berkeley Software Distribution) :伯克利軟件分發(fā)許可協(xié)議

MIT (Massachusetts Institute of Technology):MIT之名源自麻省理工學(xué)院

Apache (Apache License) :Apache許可協(xié)議

MPL (Mozilla Public License) :Mozilla公共許可協(xié)議

10.表單提交中,get和post區(qū)別

1.get從服務(wù)器獲取信息,post向服務(wù)器傳信息 2.get傳送數(shù)據(jù)量比較小,post可以比較大 3.get安全性比較低

11. TCP 協(xié)議與 UDP 協(xié)議有什么區(qū)別?(answer答案)

TCP(Tranfer Control Protocol)的縮寫,是一種面向連接的保證傳輸?shù)膮f(xié)議,在傳輸數(shù)據(jù)流前,雙方會先建立一條虛擬的通信道。可以很少差錯傳輸數(shù)據(jù)。

UDP(User DataGram Protocol)的縮寫,是一種無連接的協(xié)議,使用UDP傳輸數(shù)據(jù)時(shí),每個(gè)數(shù)據(jù)段都是一個(gè)獨(dú)立的信息,包括完整的源地址和目的地,在網(wǎng)絡(luò)上以任何可能的 路徑傳到目的地,因此,能否到達(dá)目的地,以及到達(dá)目的地的時(shí)間和內(nèi)容的完整性都不能保證。

所以TCP必UDP多了建立連接的時(shí)間。相對UDP而言,TCP具有更高的安全性和可靠性。

TCP協(xié)議傳輸?shù)拇笮〔幌拗疲坏┻B接被建立,雙方可以按照一定的格式傳輸大量的數(shù)據(jù),而UDP是一個(gè)不可靠的協(xié)議,大小有限制,每次不能超過64K。

評論0 贊同0
  •  加載中...
piapia

piapia

回答于2022-06-28 15:58

你好,自己作為一個(gè)多年經(jīng)驗(yàn)的開發(fā),面試經(jīng)歷還是比較豐富的。

在我印象中,面試質(zhì)量很高的面試,應(yīng)該是這樣的:

1、java技術(shù)面試

1.1、java技術(shù)面全

在java技術(shù)面試過程中,面試的技術(shù)比較全,比如從java基礎(chǔ)到j(luò)ava集合、再到多線程、框架和緩存等等方面都問到了,主要考察的還是一個(gè)幾年經(jīng)驗(yàn)的java 開發(fā)者的技術(shù)掌握面和知識掌握度。

1.2、java技術(shù)面深

這一塊的,在一些比較大的公司,會特別注重java知識點(diǎn)的深度。比如在java集合的考察中,List、set、hashMap 的底層實(shí)現(xiàn)以及區(qū)別。hashMap 的get方法和put方法的底層實(shí)現(xiàn)。在synchronize 關(guān)鍵字在靜態(tài)方法上和代碼塊上有什么不同,以及synchronize的底層實(shí)現(xiàn)。

2、項(xiàng)目場景與java技術(shù)實(shí)現(xiàn)

這一塊就比java技術(shù)面要更難一些了。比如你做的電商項(xiàng)目,是否做過分庫分表,如果做了分庫分表,怎么保證全局id的?你們系統(tǒng)下訂單30分鐘后訂單未付款自動取消訂單,怎么實(shí)現(xiàn)的?你們的消息隊(duì)列系統(tǒng)怎么保證消息不重復(fù)消費(fèi)?等問題。

3、個(gè)人工作愿景

這一塊的話,主要的考察的還是個(gè)人是否有自己的想法或職業(yè)規(guī)劃。一般在大公司都是有這種問題,這個(gè)還要自己多多思考,自己想要什么,想做什么樣的工作。還有就是個(gè)人價(jià)值觀與公司文化是否吻合等等,這一塊的考慮。

可以關(guān)注個(gè)人微信公眾號“我的個(gè)人記事

如果想學(xué)習(xí)java,準(zhǔn)備java分布式消息隊(duì)列面試,在蜻蜓FM,搜索“淺戲互聯(lián)網(wǎng)”并關(guān)注,就可以有免費(fèi)的互聯(lián)網(wǎng)高級java面試視頻啦,后續(xù)不斷更新中。

評論0 贊同0
  •  加載中...
Render

Render

回答于2022-06-28 15:58

這是找的記錄35輪大廠面試(都是面試重點(diǎn))

整理筆記的同時(shí),也過了一遍知識點(diǎn),加油!!

A:Java

  • 通過幾段 Java 代碼理解 RPC
  • 實(shí)體類的屬性映射怎么可以少了它?
  • 內(nèi)存結(jié)構(gòu)和垃圾回收算法
  • 還在重復(fù)寫空指針檢查代碼?考慮使用 Optional 吧!
  • 優(yōu)雅地處理異常真是一門學(xué)問啊!
  • 你還在使用JDK7,今天帶你來了解一下JDK8,不得不說,真香!
  • 靈魂拷問:為什么 Java 字符串是不可變的?
  • for循環(huán)用了那么多次,但你真的了解它么?
  • 我就問你,會不會工廠模式?
  • 看懂 HashMap 中的紅黑樹實(shí)現(xiàn)原理
  • Java IO
  • 掌握 HashMap看這就夠了
  • Java:前程似錦的 NIO 2.0
  • 深入淺出分析 Collection 中的 List 接口
  • Java 又雙叒叕發(fā)布新版本,這么多版本如何靈活管理?
  • Java Serializable:明明就一個(gè)空的接口嘛

B:JVM原理

  • Java內(nèi)存區(qū)域的分配
  • Java對象不都是分配在堆上
  • 類加載機(jī)制
  • 內(nèi)存分配(堆上的內(nèi)存分配)
  • GC回收機(jī)制
  • 垃圾收集器
  • Stop The World
  • Java內(nèi)存模型
  • happens-before
  • JVM調(diào)優(yōu)

C:Spring

  • 什么是Spring
  • Spring MVC流程
  • 解決循環(huán)依賴
  • Bean的生命周期
  • Bean的作用域
  • IOC(DI)
  • Spring AOP
  • 研究一下Spring里面的源碼,循環(huán)依賴你會么?
  • 搞定 Spring 定時(shí)任務(wù)在此一舉!
  • Spring 源碼學(xué)習(xí)(一)-容器的基礎(chǔ)結(jié)構(gòu)
  • Spring 源碼學(xué)習(xí)(二)-默認(rèn)標(biāo)簽解析
  • Spring 源碼學(xué)習(xí)(三)-自定義標(biāo)簽
  • Spring 源碼學(xué)習(xí)(四) bean 的加載
  • Spring 源碼學(xué)習(xí)(五) 循環(huán)依賴
  • Spring 源碼學(xué)習(xí)(六)擴(kuò)展功能 上篇
  • Spring 源碼學(xué)習(xí)(七)擴(kuò)展功能 下篇
  • Spring 源碼學(xué)習(xí)(八) AOP 使用和實(shí)現(xiàn)原理
  • Spring 源碼學(xué)習(xí)(九) Transaction 事務(wù)
  • Spring 源碼學(xué)習(xí)總結(jié)

D:Spring Boot

  • 什么是Spring Boot?
  • Spring Boot有哪些優(yōu)點(diǎn)?
  • 什么是JavaConfig?
  • 如何重新加載Spring Boot上的更改,而無需重新啟動服務(wù)器?
  • Spring Boot中的監(jiān)視器是什么?
  • 如何在Spring Boot中禁用Actuator端點(diǎn)安全性?
  • 如何在自定義端口上運(yùn)行Spring Boot應(yīng)用程序?
  • 如何實(shí)現(xiàn)Spring Boot應(yīng)用程序的安全性?
  • 如何集成Spring Boot和ActiveMQ?
  • 如何使用Spring Boot實(shí)現(xiàn)分頁和排序?
  • 什么是Swagger?你能用Spring Boot實(shí)現(xiàn)了它嗎?
  • 我們?nèi)绾伪O(jiān)視所有Spring Boot微服務(wù)?
  • Spring Boot(一):入門篇
  • Spring Boot(三):Spring Boot 中 Redis 的使用
  • Spring Boot(四):Thymeleaf 使用詳解
  • Spring Boot(五):Spring Boot Jpa 的使用
  • Spring Boot(六):如何優(yōu)雅的使用 Mybatis
  • Spring Boot(七):Mybatis 多數(shù)據(jù)源最簡解決方案
  • Spring Boot(八):RabbitMQ 詳解
  • Spring Boot(九):定時(shí)任務(wù)
  • Spring Boot (十):郵件服務(wù)
  • Spring Boot(十一):Spring Boot 中 MongoDB 的使用
  • Spring Boot(十二):Spring Boot 如何測試打包部署
  • Spring Boot (十三): Spring Boot 小技巧
  • Spring Boot (十四): Spring Boot 整合 Shiro-登錄認(rèn)證和權(quán)限管
  • Spring Boot (十五): Spring Boot + Jpa + Thymeleaf 增刪改查示例
  • 利用SpringBoot+RabbitMQ,實(shí)現(xiàn)一個(gè)郵件推送服務(wù)
  • 關(guān)于SpringBoot還有你不知道的事
  • 利用springboot+dubbo,構(gòu)建分布式微服務(wù),全程注解開發(fā)
  • SpringBoot 2.X 整合Redis做緩存,實(shí)戰(zhàn)分享

E:MySQL

  • 引擎對比
  • 數(shù)據(jù)庫性能優(yōu)化
  • SQL優(yōu)化
  • 事務(wù)隔離級別
  • 鎖表、鎖行
  • 索引
  • 分區(qū)分庫分表
  • mysql的復(fù)制原理以及流程
  • mysql 支持的復(fù)制類型
  • mysql 中 myisam 與 innodb 的區(qū)別
  • MySQL 中 InnoDB 支持的四種事務(wù)隔離級別名稱,以及逐級之間的區(qū)別?

F:Redis

  • 數(shù)據(jù)類型
  • 集群模式
  • 使用策略
  • 緩存問題
  • 持久化
  • 項(xiàng)目中緩存是如何使用的?為什么要用緩存?緩存使用不當(dāng)會造成什么后果?
  • redis 和 memcached 有什么區(qū)別?redis 的線程模型是什么?為什么 redis單線程卻能支撐高并發(fā)?
  • redis 都有哪些數(shù)據(jù)類型?分別在哪些場景下使用比較合適?
  • redis 的過期策略都有哪些?內(nèi)存淘汰機(jī)制都有哪些?手寫一下 LRU 代碼實(shí)現(xiàn)?
  • 如何保證 redis 的高并發(fā)和高可用?redis 的主從復(fù)制原理能介紹一下么?redis 的哨兵原理能介紹一下么?
  • redis 的持久化有哪幾種方式?不同的持久化機(jī)制都有什么優(yōu)缺點(diǎn)?持久化機(jī)制具體底層是如何實(shí)現(xiàn)的
  • redis 集群模式的工作原理能說一下么?在集群模式下,redis 的 key 是如何尋址的?分布式尋址都有哪些算法?了解一致性 hash 算法嗎?
  • 了解什么是 redis 的雪崩、穿透和擊穿?redis 崩潰之后會怎么樣?系統(tǒng)該如何應(yīng)對這種情況如何處理 redis 的穿透?
  • 如何保證緩存與數(shù)據(jù)庫的雙寫一致性?
  • redis 的并發(fā)競爭問題是什么?如何解決這個(gè)問題?了解 redis 事務(wù)的 CAS 方案嗎?
  • 生產(chǎn)環(huán)境中的 redis 是怎么部署的?

G:操作系統(tǒng)

  • 線程和進(jìn)程區(qū)別
  • 查看某個(gè)進(jìn)程中的線程
  • 查看某個(gè)文件夾中每個(gè)文件夾的大小
  • CPU負(fù)載的含義

H:網(wǎng)絡(luò)通信協(xié)議

  • TCP/IP
  • HTTP
  • TCP
  • HTTPS

I:數(shù)據(jù)結(jié)構(gòu)和算法(11節(jié))(字節(jié)必問)

  • HashCode為什么使用31作為乘數(shù)?
  • HashMap 源碼分析(上)
  • HashMap 源碼分析(下)
  • 2-3樹與紅黑樹(上)
  • 2-3樹與紅黑樹(下)
  • ArrayList 詳細(xì)分析
  • LinkedList、ArrayList,插入分析
  • 雙端隊(duì)列、延遲隊(duì)列、阻塞隊(duì)列
  • java.util.Collections、排序、二分、洗牌、旋轉(zhuǎn)算法
  • StringBuilder 與 String 對比
  • ThreadLocal 源碼分析
  • 數(shù)組-快速排序-第K大個(gè)數(shù)
  • 數(shù)組-對撞指針-最大蓄水
  • 數(shù)組-滑動窗口-最小連續(xù)子數(shù)組
  • 數(shù)組-歸并排序-合并有序數(shù)組
  • 鏈表-鏈表反轉(zhuǎn)-鏈表相加
  • 鏈表-雙指針-刪除倒數(shù)第n個(gè)
  • 二叉樹-遞歸-二叉樹反轉(zhuǎn)
  • 動態(tài)規(guī)劃-連續(xù)子數(shù)組最大和
  • 數(shù)據(jù)結(jié)構(gòu)-LRU淘汰算法

J:設(shè)計(jì)模式

  • 單例模式
  • 裝飾器模式
  • 策略模式
  • 觀察者模式

K:從URL到看到網(wǎng)頁的過程

  • 從URL開始,定位世界
  • 鍵盤與硬件中斷
  • 瀏覽器解析URL
  • 按下回車鍵之后
  • DNS解析
  • 發(fā)送DNS查找請求
  • 建立HTTPS、TCP連接
  • 建立TCP連接
  • 進(jìn)行TLS加密過程
  • 服務(wù)端的處理
  • 負(fù)載均衡
  • 服務(wù)器的處理
  • 瀏覽器的渲染
  • CSS解析

L:項(xiàng)目舉例

  • 秒殺架構(gòu)
  • 業(yè)務(wù)上適當(dāng)規(guī)避
  • 技術(shù)上硬核抗壓

M:系統(tǒng)設(shè)計(jì)

  • 系統(tǒng)設(shè)計(jì)-高并發(fā)搶紅包
  • 系統(tǒng)設(shè)計(jì)-答題套路
  • 系統(tǒng)設(shè)計(jì)-在AWS上擴(kuò)展到數(shù)百萬用戶的系統(tǒng)
  • 系統(tǒng)設(shè)計(jì)-從面試者角度設(shè)計(jì)—個(gè)系統(tǒng)設(shè)計(jì)題

N:多線程

  • Thread.start() 啟動原理
  • Thread,狀態(tài)轉(zhuǎn)換、方法使用、原理分析
  • ThreadPoolExecutor
  • 線程池講解以及JVMTI監(jiān)控

O:分布式

  • CAP理論
  • 為什么用
  • 實(shí)現(xiàn)方式
  • 事務(wù)
  • 消息隊(duì)列
  • 協(xié)調(diào)器
  • ID生存方式
  • 一致性hash

P:微服務(wù)

  • 微服務(wù)介紹
  • 服務(wù)發(fā)現(xiàn)
  • API網(wǎng)關(guān)
  • 服務(wù)容錯保護(hù)
  • 服務(wù)配置中心

Q:MyBatis

  • MyBatis的實(shí)現(xiàn)邏輯
  • MyBatis的緩存實(shí)現(xiàn)邏輯
  • #{} 和 ${} 的區(qū)別是什么?
  • MyBatis中自定義標(biāo)簽的執(zhí)行原理
  • 簡述Mapper接口的工作原理
  • 在Spring中Mapper接口是如何被注入的?
  • 在Mapper接口中是否可以有重載方法?
  • 當(dāng)實(shí)體類中的屬性名和表中的字段名不一樣 ,怎么辦?
  • 如何獲取自動生成的鍵值?
  • Mybatis有哪些Executor執(zhí)行器?
  • MyBatis的延遲加載原理
  • MyBatis的插件運(yùn)行原理
  • Mybatis是如何進(jìn)行分頁的?
  • Mybatis如何處理include標(biāo)簽的?
  • MyBatis與Hibernate有哪些不同?
  • JDBC編程有哪些不足之處,MyBatis是如何解決這些問題的?
  • Mybatis比IBatis比較大的幾個(gè)改進(jìn)是什么?

R:Java開發(fā)高級面試題(重點(diǎn))

  • 消息隊(duì)列
  • Redis緩存
  • 讀寫分離
  • 如何設(shè)計(jì)一個(gè)高并發(fā)系統(tǒng)?
  • 分布式系統(tǒng)
  • 高可用架構(gòu)
  • SpringCloud微服務(wù)架構(gòu)

尚硅谷Java大廠面試題第3季,跳槽必刷題目+必掃技術(shù)盲點(diǎn)(周陽主講)_嗶哩嗶哩_bilibili

https://www.bilibili.com/video/BV1Hy4y1B78T?

尚硅谷Java大廠面試題第2季,面試必刷,跳槽大廠神器_嗶哩嗶哩_bilibili

https://www.bilibili.com/video/BV18b411M7xz?

尚硅谷經(jīng)典Java面試題第一季(java面試精講)_嗶哩嗶哩_bilibili

https://www.bilibili.com/video/BV1Eb411P7bP?

強(qiáng)烈推薦一個(gè)網(wǎng)站:

Java面試題-幫助你通過Java面試 (zwmst.com)

https://zwmst.com/

評論0 贊同0
  •  加載中...
galaxy_robot

galaxy_robot

回答于2022-06-28 15:58


從ucloud的常規(guī)java技術(shù)面試角度說一說,一般都是由淺到深去問,思路是先考察基礎(chǔ)是否過關(guān),再通過深度考察是否有技術(shù)熱情和深度,同時(shí)可能會通過提出一些質(zhì)疑和挑戰(zhàn)來考察候選人是如何與不同意見進(jìn)行溝通

考察內(nèi)容和方式

  • 基礎(chǔ)知識:考察基礎(chǔ)的時(shí)候一般都不會太深入地去問,主要目的是考察知識面,如果發(fā)現(xiàn)候選人很多都不知道可能就不會繼續(xù)進(jìn)入下一步的考察。
    • JDK 集合、BIO/NIO、annotation 等
    • 虛擬機(jī) 內(nèi)存模型、類加載原理
    • 數(shù)據(jù)庫 索引、事務(wù)、死鎖 等
    • 并發(fā) 并發(fā)優(yōu)缺點(diǎn)、內(nèi)存可見性(volatile)、鎖、同步、線程池框架
    • 網(wǎng)絡(luò) TCP/HTTP
    • 常見設(shè)計(jì)模式
  • 深入考察:深入考察的時(shí)候不會像考察基礎(chǔ)一樣面面俱到,而是會在某個(gè)點(diǎn)上深入去聊,這個(gè)點(diǎn)的選擇可能是讓候選人自己選一個(gè)點(diǎn),也可能是面試官根據(jù)簡歷內(nèi)容去選,主要目的是考察候選人對某個(gè)技術(shù)點(diǎn)的深入掌握程度,技術(shù)是相通的,如果一個(gè)人能在某個(gè)技術(shù)點(diǎn)上達(dá)到很深入的程度,其他點(diǎn)上通常也不會有太大問題;相反如果某個(gè)人在他聲稱很了解的點(diǎn)上都支支吾吾、一知半解多半可以判斷此人要么技術(shù)能力有限、要么遇到問題不愿深入考察、淺嘗輒止。
    • JDK ConcurrentHashMap如何提高并發(fā)度、NIO的原理(零拷貝、堆外內(nèi)存),優(yōu)缺點(diǎn)
    • 虛擬機(jī) 包沖突,類沖突的形成原理及解決辦法(可能會引申JDK9的模塊化設(shè)計(jì))、TCCL的存在價(jià)值
    • 分布式 一致性哈希、RPC原理和設(shè)計(jì)(通信協(xié)議、序列化方式、超時(shí)機(jī)制等)、負(fù)載均衡、分布式緩存架構(gòu)設(shè)計(jì)、分布式消息、分布式事務(wù)、paxos(這個(gè)可能只有在技術(shù)專業(yè)型很強(qiáng)的職位上會去問)
    • 數(shù)據(jù)庫 數(shù)據(jù)庫性能優(yōu)化(慢sql、索引優(yōu)化、大事務(wù)、內(nèi)核參數(shù)調(diào)優(yōu)),也可能會把一些工作中碰到的詭異場景拋出來問
    • 并發(fā) 非阻塞鎖(CAS)、并發(fā)對編譯器優(yōu)化的影響、線程池調(diào)優(yōu)、也肯會把工作中碰到的并發(fā)問題拋出來問
    • 技術(shù)趨勢、docker、微服務(wù)等新技術(shù)發(fā)展歷史、帶來的福利

如何準(zhǔn)備

首先要聲明的是,最好的“準(zhǔn)備”方式一定是平時(shí)多積累、遇到問題不要逃避或者討巧、深入去思考并解決,在解決一個(gè)個(gè)問題的過程中積累解決問題的能力,形成自己的知識體系。所以這里說的如何準(zhǔn)備不是說臨時(shí)抱佛腳,而是如何能通過提前準(zhǔn)備把自己平時(shí)的積累展現(xiàn)出來,不因?yàn)榕R場的表現(xiàn)影響面試官對你的判斷。

  1. 針對以上列的知識點(diǎn)思考答案甚至擴(kuò)展,如果能知道大部分,深入一部分就很好,這個(gè)過程主要是整理自己的知識體系
  2. 回憶整理簡歷和過往項(xiàng)目中的”難點(diǎn)“、”亮點(diǎn)“,因?yàn)檫@些是用來區(qū)分候選人很重要的點(diǎn),合格的面試官一定會問類似于”你在項(xiàng)目中經(jīng)歷的最大的技術(shù)難點(diǎn)是什么?“,整理一下思路,不至于在面試時(shí)候因?yàn)闀r(shí)間久遠(yuǎn)而回憶不起來細(xì)節(jié)影響面試效果。
  3. 溝通過程中做到有理有據(jù),不要過于自大,也無需刻意迎合面試官。溝通的本質(zhì)是信息透明化,工作中也許我們無法做到完全客觀公正,但是在技術(shù)問題上堅(jiān)持自己的客觀和原則是我認(rèn)為技術(shù)人應(yīng)該堅(jiān)持的品格,我這里說的堅(jiān)持不是一根筋的固執(zhí)已見,而是根據(jù)共同認(rèn)可的事實(shí)進(jìn)行邏輯推斷得出的觀點(diǎn)。長遠(yuǎn)來看這種品格會帶給你足夠的技術(shù)影響力和回報(bào)。
同時(shí)可以關(guān)注下,每周都是定時(shí)更新一些Java技術(shù)精彩內(nèi)容分享給大家!

評論0 贊同0
  •  加載中...
SnaiLiu

SnaiLiu

回答于2022-06-28 15:58

目前還真沒遇到過,還在動力節(jié)點(diǎn)培訓(xùn)學(xué)習(xí)Java,已經(jīng)學(xué)了4個(gè)多月了,馬上也該準(zhǔn)備刷面試題了!盡管四個(gè)多月有老師的輔導(dǎo),自己也很努力,但是一想到后面真要面試找工作還真有點(diǎn)慫,不過好就好在老師們都特別負(fù)責(zé),也特別專業(yè),因?yàn)檫@個(gè)學(xué)校就是只教Java一門語言的,所以講師們作為一線大咖,完全問不倒,我也是個(gè)特別愛問問題的人,這一點(diǎn)也是我學(xué)習(xí)效率提高的原因吧,希望我后面面試一切順利~

評論0 贊同0
  •  加載中...

最新活動

您已邀請0人回答 查看邀請

我的邀請列表

  • 擅長該話題
  • 回答過該話題
  • 我關(guān)注的人
向幫助了您的網(wǎng)友說句感謝的話吧!
付費(fèi)偷看金額在0.1-10元之間
<