《关于我的那些面经》滴滴Java岗(附答案)
手撕?jiǎn)卫J?/h1>
所謂單例,就是整個(gè)程序有且僅有一個(gè)實(shí)例。該類負(fù)責(zé)創(chuàng)建自己的對(duì)象,同時(shí)確保只有一個(gè)對(duì)象被創(chuàng)建。
在Java,一般常用在工具類的實(shí)現(xiàn)或創(chuàng)建對(duì)象需要消耗資源。
特點(diǎn):類構(gòu)造器私有、持有自己類型的屬性、對(duì)外提供獲取實(shí)例的靜態(tài)方法
- 懶漢模式
 線程不安全,延遲初始化,嚴(yán)格意義上不是不是單例模式
- 餓漢模式
線程安全,比較常用,但容易產(chǎn)生垃圾,因?yàn)橐婚_(kāi)始就初始化
public class Singleton { private static Singleton instance = new Singleton(); private Singleton (){} public static Singleton getInstance() { return instance; } }雙重鎖模式
 線程安全,延遲初始化。這種方式采用雙鎖機(jī)制,安全且在多線程情況下能保持高性能。
雙重檢查模式,進(jìn)行了兩次的判斷,第一次是為了避免不要的實(shí)例,第二次是為了進(jìn)行同步,避免多線程問(wèn)題。由于singleton=new Singleton()對(duì)象的創(chuàng)建在JVM中可能會(huì)進(jìn)行重排序,在多線程訪問(wèn)下存在風(fēng)險(xiǎn),使用volatile修飾signleton實(shí)例變量有效,解決該問(wèn)題。
靜態(tài)內(nèi)部類單例模式
public class Singleton { private Singleton(){}public static Singleton getInstance(){ return Inner.instance; } private static class Inner { private static final Singleton instance = new Singleton(); } }只有第一次調(diào)用getInstance方法時(shí),虛擬機(jī)才加載 Inner 并初始化instance ,只有一個(gè)線程可以獲得對(duì)象的初始化鎖,其他線程無(wú)法進(jìn)行初始化,保證對(duì)象的唯一性。目前此方式是所有單例模式中最推薦的模式,但具體還是根據(jù)項(xiàng)目選擇。
 在以上所有的單例模式中,推薦靜態(tài)內(nèi)部類單例模式。非常直觀,即保證線程安全又保證唯一性。
 眾所周知,單例模式是創(chuàng)建型模式,都會(huì)新建一個(gè)實(shí)例。那么一個(gè)重要的問(wèn)題就是反序列化。當(dāng)實(shí)例被寫(xiě)入到文件到反序列化成實(shí)例時(shí),我們需要重寫(xiě)readResolve方法,以讓實(shí)例唯一。
Java線程池各種參數(shù)
ThreadPoolExecutor的重要參數(shù)
1.corePoolSize:核心線程數(shù):核心線程會(huì)一直存活,及時(shí)沒(méi)有任務(wù)需要執(zhí)行。
當(dāng)線程數(shù)小于核心線程數(shù)時(shí),即使有線程空閑,線程池也會(huì)優(yōu)先創(chuàng)建新線程處理。
設(shè)置allowCoreThreadTimeout=true(默認(rèn)false)時(shí),核心線程會(huì)超時(shí)關(guān)閉。
2.queueCapacity:任務(wù)隊(duì)列容量(阻塞隊(duì)列)
當(dāng)核心線程數(shù)達(dá)到最大時(shí),新任務(wù)會(huì)放在隊(duì)列中排隊(duì)等待執(zhí)行。
3.maxPoolSize:最大線程數(shù)
當(dāng)線程數(shù)>=corePoolSize,且任務(wù)隊(duì)列已滿時(shí)。線程池會(huì)創(chuàng)建新線程來(lái)處理任務(wù)。
當(dāng)線程數(shù)=maxPoolSize,且任務(wù)隊(duì)列已滿時(shí),線程池會(huì)拒絕處理任務(wù)而拋出異常。
4.keepAliveTime:線程空閑時(shí)間
當(dāng)線程空閑時(shí)間達(dá)到keepAliveTime時(shí),線程會(huì)退出,直到線程數(shù)量=corePoolSize。
如果allowCoreThreadTimeout=true,則會(huì)直到線程數(shù)量=0。
5.allowCoreThreadTimeout:允許核心線程超時(shí)
6.rejectedExecutionHandler:任務(wù)拒絕處理器
兩種情況會(huì)拒絕處理任務(wù):(1)當(dāng)線程數(shù)已經(jīng)達(dá)到maxPoolSize,切隊(duì)列已滿,會(huì)拒絕新任務(wù)。(2)當(dāng)線程池被調(diào)用shutdown()后,會(huì)等待線程池里的任務(wù)執(zhí)行完畢,再shutdown。如果在調(diào)用shutdown()和線程池真正shutdown之間提交任務(wù),會(huì)拒絕新任務(wù)。線程池會(huì)調(diào)用rejectedExecutionHandler來(lái)處理這個(gè)任務(wù)。如果沒(méi)有設(shè)置默認(rèn)是AbortPolicy,會(huì)拋出異常。
手撕two linkedlist megre to one
/*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode(int x) { val = x; }* }*/ class Solution {public ListNode mergeTwoLists(ListNode l1, ListNode l2) {ListNode head=new ListNode(0);ListNode temp=head;while(l1!=null && l2!=null){if(l1.val>l2.val){temp.next=l2;l2=l2.next;}else{temp.next=l1;l1=l1.next; }temp=temp.next;}if(l1!=null){temp.next=l1;}else{temp.next=l2;}return head.next;} }Linux命令
我這里簡(jiǎn)單列舉,還要多多練習(xí)復(fù)雜的操作。
Linux的常用命令介紹:
 ? ? ? ?問(wèn)題:
 ? ? ? ? ? ? ? ?因?yàn)槠綍r(shí)開(kāi)發(fā)的時(shí)候,對(duì)于服務(wù)器主機(jī)的操作系統(tǒng)是不需要界面的。
 ? ? ? ? ? ? ? ?那么我們?nèi)绾问褂貌僮飨到y(tǒng)完成資源的操作呢?
 ? ? ? ?使用:
 ? ? ? ? ? ? ? ?命令方式
 ? ? ? ?作用:
 ? ? ? ? ? ? ? ?使用命令來(lái)替換界面的操作。
 ? ? ? ?內(nèi)容:
 ? ? ? ? ? ? ? ?1、查看IP信息:ifconfig
 ? ? ? ? ? ? ? ?2、進(jìn)入指定的文件目錄: cd
 ? ? ? ? ? ? ? ? ? ? ? ?絕對(duì)路徑: cd /目錄/子目錄/../..
 ? ? ? ? ? ? ? ? ? ? ? ?相對(duì)路徑: ?cd ?當(dāng)前路徑的子目錄/子目錄/../..
 ? ? ? ? ? ? ? ? ? ? ? ?注意 :
 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?第一個(gè) /表示根目錄
 ? ? ? ? ? ? ? ?3、退回上級(jí)目錄:
 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? cd .. ?回退當(dāng)上級(jí)目錄,退一層
 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? cd ../.. 回退兩次
 ? ? ? ? ? ? ? ?4、查看當(dāng)前路徑:pwd
 ? ? ? ? ? ? ? ?5、查看當(dāng)前目錄下的內(nèi)容:
 ? ? ? ? ? ? ? ? ? ? ? ?ls:只顯示文件名或者目錄名
 ? ? ? ? ? ? ? ? ? ? ? ?ll:以詳細(xì)信息的方法列出當(dāng)前目錄的內(nèi)容
 ? ? ? ? ? ? ? ?6、自動(dòng)補(bǔ)全:tab
 ? ? ? ? ? ? ? ? ? ? ? ?注意:我們需要寫(xiě)出要操作的文件或者目錄的從頭開(kāi)始的一部分唯一的名字。
 ? ? ? ? ? ? ? ?7、清屏:clear
 ? ? ? ? ? ? ? ?8、創(chuàng)建目錄:
 ? ? ? ? ? ? ? ? ? ? ? ?mkdir 文件名 ? ? ? ? ? ? ? ? ? ? ? ? ?在當(dāng)前目錄下創(chuàng)建指定的文件夾
 ? ? ? ? ? ? ? ? ? ? ? ?mkdir /目錄名/目錄名/../../新的文件名 ? ?在指定的目錄下創(chuàng)建新的文件夾
 ? ? ? ? ? ? ? ?9、創(chuàng)建文件:
 ? ? ? ? ? ? ? ? ? ? ? ?vi 新的文件名 示例:vi my.txt
 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?注意:
 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?會(huì)直接進(jìn)入文本狀態(tài),需要點(diǎn)擊鍵盤的i鍵或者insert鍵進(jìn)入編輯狀態(tài)。
 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?書(shū)寫(xiě)內(nèi)容后先點(diǎn)擊esc鍵退出編輯狀態(tài)。然后輸入
 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?:q! 強(qiáng)制退出
 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?:q 退出,但不保存
 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?: wq 保存并退出
 ? ? ? ? ? ? ? ? ? ? ? ?vim 新的文件名 ?示例: vim you.java
 ? ? ? ? ? ? ? ? ? ? ? ?vi和vim的區(qū)別:
 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?vi命令打開(kāi)的文本編輯器中沒(méi)有顏色標(biāo)識(shí)
 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?vim命令的文本編輯器中帶有關(guān)鍵字顏色
 ? ? ? ? ? ? ? ?10、編輯現(xiàn)有文件:vi或者vim
 ? ? ? ? ? ? ? ? ? ? ? ?vi 現(xiàn)有文件名
 ? ? ? ? ? ? ? ? ? ? ? ?vim 現(xiàn)有文件名
 ? ? ? ? ? ? ? ?11、查看文件內(nèi)容:cat命令
 ? ? ? ? ? ? ? ? ? ? ? ?cat 文件名 ?在控制顯示所有的文件信息
 ? ? ? ? ? ? ? ?12、查看指定前多少行數(shù)據(jù): head命令
 ? ? ? ? ? ? ? ? ? ? ? ?默認(rèn)顯示前10行
 ? ? ? ? ? ? ? ? ? ? ? ?head -n 行數(shù) 文件名
 ? ? ? ? ? ? ? ?13、查看指定后多少行數(shù)據(jù):tail命令
 ? ? ? ? ? ? ? ? ? ? ? ?默認(rèn)顯示后10行
 ? ? ? ? ? ? ? ? ? ? ? ?tail -n 行數(shù) 文件名
 ? ? ? ? ? ? ? ?14、動(dòng)態(tài)查看文件的內(nèi)容:tailf 命令
 ? ? ? ? ? ? ? ? ? ? ? ?作用:動(dòng)態(tài)的顯示文件的內(nèi)容,一旦文件內(nèi)容增加了,控制臺(tái)會(huì)立即顯示出來(lái)
 ? ? ? ? ? ? ? ? ? ? ? ?tailf -行數(shù) 文件名
 ? ? ? ? ? ? ? ? ? ? ? ?默認(rèn)顯示后10行
 ? ? ? ? ? ? ? ?15、追加內(nèi)容:
 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?echo 內(nèi)容>>文件名
 ? ? ? ? ? ? ? ?16、復(fù)制
 ? ? ? ? ? ? ? ? ? ? ? ?cp 文件絕對(duì)路徑 ?新的文件絕對(duì)路徑
 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?作用:將指定的文件復(fù)制到指定路徑下的文件中
 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?示例:cp /usr/local/wollo/my.txt ?/usr/mm.txt
 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?注意:復(fù)制的同時(shí)重命名
 ? ? ? ? ? ? ? ? ? ? ? ?cp ?文件 ?新的文件名
 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?作用:在當(dāng)前目錄下復(fù)制文件,同時(shí)重命名
 ? ? ? ? ? ? ? ? ? ? ? ?cp -r 目錄路徑 ? 新的路徑
 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?作用:將指定的目錄下的全部復(fù)制到指定的路徑下
 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?示例: cp -r /usr/local/wollo ?/usr/wollo2
 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?注意:同時(shí)可以對(duì)文件夾的名字進(jìn)行重命名
 ? ? ? ? ? ? ? ?17、刪除
 ? ? ? ? ? ? ? ? ? ? ? ?刪除文件
 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?rm 文件名
 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?作用:刪除當(dāng)前目錄下的指定文件
 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?注意:會(huì)提示是否要?jiǎng)h除,輸入y刪除,輸入n取消
 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?rm -rf 文件名:
 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?作用:刪除指定的文件
 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?注意:不會(huì)提示,直接刪除
 ? ? ? ? ? ? ? ? ? ? ? ?刪除目錄
 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?rm -r 目錄名
 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?作用:刪除指定的目錄
 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?注意:會(huì)有提示語(yǔ),但是不能在當(dāng)前目錄下刪除自己。
 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?rm -rf 目錄名:強(qiáng)制刪除
 ? ? ? ? ? ? ? ?18、剪切
 ? ? ? ? ? ? ? ? ? ? ? ?mv 文件 ?新的路徑
 ? ? ? ? ? ? ? ?19、解壓文件
 ? ? ? ? ? ? ? ? ? ? ? ?tar -zxvf 壓縮包名? ? ? ? ? ? ? ? ? ? ?
HashMap?
這里也是簡(jiǎn)單寫(xiě)一下算了,具體多學(xué)。
//map Map<Integer, Integer> map=new HashMap<Integer, Integer>();int size()//K-V關(guān)系數(shù)量 boolean isEmpty()//是否為空 增:V put(K?key,V?value)//放入K-V鍵值對(duì)void putAll(Map<K,V> m)//放入m包含的所以鍵值對(duì) 刪:V remove(Object?key)//刪除key對(duì)應(yīng)的鍵值對(duì)void clear()//刪除所有鍵值對(duì) 改:直接put,會(huì)覆蓋舊的記錄 查:boolean containsKey(Object?key)//是否包含keyboolean containsValue(Object?value)//是否包含valueV get(Object?key)//得到key對(duì)應(yīng)的value 生成集合:Set<K> keySet()//返回包含所有key的setCollection<V> values()//返回包含所有value的CollectionTreeMap特有: public K firstKey()//返回第一個(gè)key(最高) public K lastKey()//返回最后一個(gè)key(最低)- ?哈希沖突:若干Key的哈希值如果落在同一個(gè)數(shù)組下標(biāo)上,將組成一條鏈,對(duì)Key的查找需要遍歷鏈上的每個(gè)元素執(zhí)行equals()比較,1.8后優(yōu)化為紅黑樹(shù)
- 負(fù)載極限,“負(fù)載極限”是一個(gè)0~1的數(shù)值,“負(fù)載極限”決定了hash表的最大填滿程度。當(dāng)hash表中的負(fù)載因子達(dá)到指定的“負(fù)載極限”時(shí),hash表會(huì)自動(dòng)成倍地增加容量(桶的數(shù)量),并將原有的對(duì)象重新分配,放入新的桶內(nèi),這稱為rehashing。默認(rèn)當(dāng)HashMap中的鍵值對(duì)達(dá)到數(shù)組大小的75%時(shí),即會(huì)rehashing。
解釋0.75:
是時(shí)間和空間成本上的一種折中:
- 較高的“負(fù)載極限”(也就是數(shù)組小)可以降低占用的空間,但會(huì)增加查詢數(shù)據(jù)的時(shí)間開(kāi)銷
- 較低的“負(fù)載極限”(也就是數(shù)組大)會(huì)提高查詢數(shù)據(jù)的性能,但會(huì)增加hash表所占用的內(nèi)存開(kāi)銷
可以根據(jù)實(shí)際情況來(lái)調(diào)整“負(fù)載極限”值。
HashMap線程不安全
HashTable線程安全,實(shí)現(xiàn)的方式是在修改數(shù)據(jù)時(shí)鎖住整個(gè)HashTable,效率低,ConcurrentHashMap做了相關(guān)優(yōu)化
ConcurrentHashMap
線程安全,其關(guān)鍵在于使用了鎖分離技術(shù)。它使用了多個(gè)鎖來(lái)控制對(duì)hash表的不同部分進(jìn)行的修改。
ConcurrentHashMap內(nèi)部使用段(Segment)來(lái)表示這些不同的部分,每個(gè)段其實(shí)就是一個(gè)小的Hashtable,它們有自己的鎖。
只要多個(gè)修改操作發(fā)生在不同的段上,它們就可以并發(fā)進(jìn)行。
默認(rèn)將hash表分為16個(gè)桶,諸如get、put、remove等常用操作只鎖住當(dāng)前需要用到的桶,讀操作大部分時(shí)候都不需要用到鎖。
(JDK1.8已經(jīng)摒棄了Segment,并發(fā)控制使用Synchronized和CAS來(lái)操作,整個(gè)看起來(lái)就像是優(yōu)化過(guò)且線程安全的HashMap,雖然在JDK1.8中還能看到Segment的數(shù)據(jù)結(jié)構(gòu),但是已經(jīng)簡(jiǎn)化了屬性,只是為了兼容舊版本。)
?
jvm垃圾回收機(jī)制
標(biāo)記-清除
該算法分為“標(biāo)記”和“清除”階段:首先標(biāo)記出所有需要回收的對(duì)象,在標(biāo)記完成后統(tǒng)一回收所有被標(biāo)記的對(duì)象。它是最基礎(chǔ)的收集算法,后續(xù)的算法都是對(duì)其不足進(jìn)行改進(jìn)得到。這種垃圾收集算法會(huì)帶來(lái)兩個(gè)明顯的問(wèn)題:
復(fù)制
為了解決效率問(wèn)題,“復(fù)制”收集算法出現(xiàn)了。它可以將內(nèi)存分為大小相同的兩塊,每次使用其中的一塊。當(dāng)這一塊的內(nèi)存使用完后,就將還存活的對(duì)象復(fù)制到另一塊去,然后再把使用的空間一次清理掉。這樣就使每次的內(nèi)存回收都是對(duì)內(nèi)存區(qū)間的一半進(jìn)行回收。
標(biāo)記-整理
根據(jù)老年代的特點(diǎn)提出的一種標(biāo)記算法,標(biāo)記過(guò)程仍然與“標(biāo)記-清除”算法一樣,但后續(xù)步驟不是直接對(duì)可回收對(duì)象回收,而是讓所有存活的對(duì)象向一端移動(dòng),然后直接清理掉端邊界以外的內(nèi)存。
分代收集
當(dāng)前虛擬機(jī)的垃圾收集都采用分代收集算法,這種算法沒(méi)有什么新的思想,只是根據(jù)對(duì)象存活周期的不同將內(nèi)存分為幾塊。一般將 java 堆分為新生代和老年代,這樣我們就可以根據(jù)各個(gè)年代的特點(diǎn)選擇合適的垃圾收集算法。
比如在新生代中,每次收集都會(huì)有大量對(duì)象死去,所以可以選擇復(fù)制算法,只需要付出少量對(duì)象的復(fù)制成本就可以完成每次垃圾收集。而老年代的對(duì)象存活幾率是比較高的,而且沒(méi)有額外的空間對(duì)它進(jìn)行分配擔(dān)保,所以我們必須選擇“標(biāo)記-清除”或“標(biāo)記-整理”算法進(jìn)行垃圾收集。
HotSpot的算法
可達(dá)性分析會(huì)導(dǎo)致gc停頓,因?yàn)楸仨毐WC確保一致性,也就是凍結(jié)在某個(gè)時(shí)間點(diǎn),所以我們必須要停頓。
但是停頓太久的代價(jià)我們是不能承受的。
在hotspot虛擬機(jī)中,采用OopMap結(jié)構(gòu)記錄哪些地方存著引用的。
但是,也不可能為每一個(gè)指令設(shè)置OopMap,只有在“安全點(diǎn)”才記錄,gc也是在安全點(diǎn)才暫停。
安全點(diǎn)的選定不能太少:導(dǎo)致gc等待時(shí)間長(zhǎng)
太多:導(dǎo)致過(guò)分增大負(fù)荷。
但是還不能解決問(wèn)題:我們確實(shí)保證了運(yùn)行時(shí),隔一段時(shí)間就能進(jìn)入安全點(diǎn),但是不運(yùn)行的時(shí)候呢?(程序未搶到cpu很久)
安全區(qū):指這一段代碼中,引用關(guān)系絕對(duì)不會(huì)發(fā)生變化。在這個(gè)區(qū)域中任意地方開(kāi)始gc都是安全的。
concurrenthashmap原理
見(jiàn)上文
 如何給項(xiàng)目數(shù)據(jù)庫(kù)加鎖?
 
鏈接
 前后端交互?
 
看你用的什么模板,我用的leaf
 項(xiàng)目的redis怎么用?
 
這個(gè)看我redis總結(jié),或者你自己想想怎么用的。
redis的入門/原理/實(shí)戰(zhàn)大總結(jié)
項(xiàng)目Spring MVC如何接收參數(shù)?
springboot1——spring相關(guān)入門
MySQL事務(wù)隔離級(jí)別
事務(wù)的隔離級(jí)別分為:未提交讀(read uncommitted)、已提交讀(read committed)、可重復(fù)讀(repeatable read)、串行化(serializable)。
未提交讀:A事務(wù)已執(zhí)行,但未提交;B事務(wù)查詢到A事務(wù)的更新后數(shù)據(jù);A事務(wù)回滾;---出現(xiàn)臟數(shù)據(jù)
已提交讀:A事務(wù)執(zhí)行更新;B事務(wù)查詢;A事務(wù)又執(zhí)行更新;B事務(wù)再次查詢時(shí),前后兩次數(shù)據(jù)不一致;---不可重復(fù)讀
可重復(fù)讀:A事務(wù)無(wú)論執(zhí)行多少次,只要不提交,B事務(wù)查詢值都不變;B事務(wù)僅查詢B事務(wù)開(kāi)始時(shí)那一瞬間的數(shù)據(jù)快照;
MySQL的持久化和redis的持久化
還是看我redis總結(jié)
如何配置項(xiàng)目服務(wù)器?
linux-在cenos上安裝大全(nginx/JRE/maven/Tomcat/MYSQL/redis/kafka/es...)
Linux如何查看端口沖突?
1.查找被占用的端口
netstat -tln netstat -tln | grep 80netstat -tln?查看端口使用情況,而netstat -tln | grep 80?則是只查看端口80的使用情況
2.查看端口屬于哪個(gè)程序?端口被哪個(gè)進(jìn)程占用
lsof -i :803.殺掉占用端口的進(jìn)程
kill -9 進(jìn)程id如何查看項(xiàng)目日志?
1.tail
 假定日志文件為catalina.log
tail -f catalina.log????該命令用來(lái)的查看動(dòng)態(tài)的日志信息
tail -fn 200 catalina.log????查看最后200行日志,且動(dòng)態(tài)顯示
tail -f catalina.log | grep '過(guò)濾字符串'???????顯示存在需要過(guò)濾的字符串的行的動(dòng)態(tài)的日志信息
2.grep
 grep '過(guò)濾字符串' catalina.log????從日志文件中過(guò)濾出字符串
grep -r '過(guò)濾字符串' ./????從當(dāng)前目錄中的所有文件中過(guò)濾出字符串
3.less
 less catalina.log????進(jìn)入日志文件,然后
g????是到文件頭部
G????也就是Shift+g,到文件尾部
ctrl+F????向前移動(dòng)一屏
ctrl+B????向后移動(dòng)一屏
ctrl+D????向前移動(dòng)半屏
ctrl+U????向后移動(dòng)半屏
 Collection.sort()底層用的什么排序方法
 
 接口中能否定義常量?
 
 Jvm的內(nèi)存模型
 
 類的靜態(tài)變量和靜態(tài)方法能否被子類繼承?
 
 子類中能否調(diào)用父類的靜態(tài)變量和靜態(tài)方法?
 
 String a = New string ("a");在jvm中如何存儲(chǔ)?
 
 Jvm調(diào)整堆大小?
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)
                            總結(jié)
以上是生活随笔為你收集整理的《关于我的那些面经》滴滴Java岗(附答案)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
 
                            
                        - 上一篇: Windows及Android倍速播放视
- 下一篇: vue 项目图片批量导出并压缩成zip
