Java基礎(chǔ)復習

1.九種就本數(shù)據(jù)類型及他們的封裝類
  • boolean ---> Boolean--->1/8字節(jié)(1位)
  • byte --->Byte--->1字節(jié)
  • char--->Character --->2字節(jié)
  • short ---> Short --->2字節(jié)
  • int ---> Integer ---> 4字節(jié)
  • float ---> Float ---> 4字節(jié)
  • double --->Double ---> 8字節(jié)
  • long ---> Long ---> 8字節(jié)
    ps:整數(shù)默認是int,浮點數(shù)默認是double泳梆。
2.Switch能否用String 做參數(shù)
  • java7以前不行幻捏,Java7以后可以,java7以后可放* int ,Enum,String*
3.equals 與== 的區(qū)別
  • equals初始和==一樣嘱么,是比較對象的地址,但是可以覆寫equals,實現(xiàn)自己的比較邏輯蛉威。
4.Object 有哪些公共方法:
  • equals : 比較對象是否相等
  • clone() : 拷貝(淺拷貝)
  • getClass():返回當前對象相關(guān)的Class對象
  • wait(),notify(),notifyAll():配合線程使用瓷耙,進行同步。
5.java四鐘引用雇锡,強弱軟虛,用到的場景
  • 強引用僚焦,就是平常普通寫的那種 * A a = new A() *;a為強引用锰提,JVM不會回收有強引用的對象。
  • 軟引用 SoftReference: 在內(nèi)存不足時,JVM會回收 軟引用立肘,可用作緩存圖片的鍵边坤,可有效避免OOM。
  • 弱引用 WeakReference: 在下一次JVM垃圾回收時谅年,會回收弱引用,WeakHashMap
    +虛引用 PhantonReference: 形同虛設(shè)惩嘉,必須和引用隊列配合使用,JVM 在回收一個對象時踢故,如果發(fā)現(xiàn)他有虛引用,會把他加入引用隊列里惹苗。程序可以通過判斷隊列里是否有虛引用殿较,來判斷他是否將要被垃圾回收。
6.haseCode()的作用桩蓉,與equals()有什么區(qū)別

用于鑒定兩個對象是否相等

  • Set:不予許重復淋纲,如果用equals()比較,set里面有1000個院究,就要比較1000次洽瞬,但是如果用hashCode()算出對象的儲存地址,如果該地址有對象业汰,則再調(diào)用equals()比較是否相等伙窃,不相等再 存;否則就不存了。
  • List通過equals()判斷是否相等样漆。
7.ArrayList为障,LinkedList,Vector區(qū)別
  • ArrayList,底層基于數(shù)組,線程不安全放祟。
  • Vector ,底層基于數(shù)組鳍怨,線程安全。
  • LinkedList 跪妥,底層雙向循環(huán)鏈表鞋喇,線程不安全。
8.String 眉撵,StringBuilder,StringBuffer區(qū)別
  • String 是不可變對象
  • StringBuilder 底層是char數(shù)組侦香,線程不安全
  • StringBuffer 底層是char數(shù)組,線程安全
9. Map执桌、Set鄙皇、List、Queue仰挣、Stack的特點與用法伴逸。
  • Map 鍵值對映射
  • Set 無序,不可重復
  • List ArrayList改查快膘壶,增刪慢错蝴,LinkedList 增刪快洲愤,查找慢。
  • Queue 先進先出
  • Stack 先進后出
10.HashMap和HashTable的區(qū)別顷锰。
  • HashMap: 線程不安全,可以用null作為鍵或值柬赐。
  • HashTable :線程安全,并且鎖住整個表官紫。
11. HashMap和ConcurrentHashMap的區(qū)別肛宋,HashMap的底層源碼。(看源碼)
  • ConcurrentHashMap 線程安全束世,鎖的粒度小
12.TreeMap酝陈、HashMap、LindedHashMap的區(qū)別毁涉。
  • HaseMap
  • TreeMap :能夠把保存的記錄根據(jù)鍵排序沉帮,可以自己指定比較器
  • LinkedHashMap : 可以保存插入順序,也可以指定根據(jù)使用次數(shù)排序贫堰。遍歷比hashmap慢
13.Collection 包結(jié)構(gòu)穆壕,與Collections的區(qū)別:
  • Collection 是接口集合
  • Collections類似一個工具類,服務(wù)于Collection框架;Collections.sort()--->Array.sort()--->mergeSort
14.Exception 與Error包結(jié)構(gòu)
java異常結(jié)構(gòu).png
  • Error 也不會編譯檢查
15.OOM其屏,SOF
  • OOM: 圖片過大喇勋, 壓縮:
    BitmapFactory.Options options = new BitmapFactory.Options();
    //開始讀入圖片,此時把options.inJustDecodeBounds 設(shè)回true了
    options.inJustDecodeBounds = true;
    Bitmap bitmap = BitmapFactory.decodeFile(srcPath,options);//此時返回bm為空

      options.inJustDecodeBounds = false;
      int w = options.outWidth;//圖片的寬
      int h = options.outHeight;//圖片的高
      //根據(jù)情況設(shè)置壓縮率
      options.inSampleSize = 2;//圖片寬高都為原來的二分之一漫玄,即為原圖大小的1/4
      //加載壓縮后的圖片
      Bitmap bitmap = BitmapFactory.decodeFile(srcPath,options);
    
  • OOM :Bitmap使用后未調(diào)用recycle()茄蚯。

  • OOM:構(gòu)造adapter沒有使用緩存contentview。

  • OOM: 內(nèi)存泄露睦优,導致Activity不能被回收渗常。

  • OOM:緩存過大,可使用SoftReference

  • SOF(棧溢出):遞歸汗盘,死循環(huán)皱碘。

16. Java面向?qū)ο蟮娜齻€特征與含義。
  • 封裝 : 暴露接口隐孽,隱藏內(nèi)部實現(xiàn)細節(jié)
  • 繼承 : 代碼復用
java中的訪問修飾符.png
  • 多態(tài): 更加靈活癌椿,父類引用子。
17.Override和Overload的含義去區(qū)別菱阵。
  • Override :重寫踢俄。方法特征相同。子類在覆蓋父類帶throws子句的方法時晴及,子類的方法聲明中的throws子句拋出的異常不能超出父類方法的異常范圍都办。重寫的返回值可以是父類及其子類。
    ps:Java語言規(guī)范里,一個方法的特征僅包括方法的名字琳钉、參數(shù)的數(shù)目和種類势木,而不包括返回類型、參數(shù)的名字以及拋出的異常歌懒。
    +Overload :重載啦桌, 函數(shù)名相同,參數(shù)列表不同及皂;
18. Interface與abstract類的區(qū)別甫男。
  • Interface :不能有方法實現(xiàn),方法默認修飾符 public abstract验烧,變量默認修飾public static final查剖。
  • abstract 類:不能實例化,可以擁有abstract方法噪窘,其他的與普通的class沒區(qū)別。
19. Static class 與non static class的區(qū)別效扫。
  • 靜態(tài)內(nèi)部類不需要持有外部類的引用倔监,非靜態(tài)內(nèi)部類需要持有外部類的引用。
20. java多態(tài)的實現(xiàn)原理菌仁。
  • 程序在運行期動態(tài)綁定浩习,在運行期間,根據(jù)具體實例化的對象找到方法區(qū)中此對象的方法表济丘,再找到方法表中的被調(diào)用方法谱秽,最后通過直接地址找到字節(jié)碼所在的內(nèi)存空間。
21.線程同步的方法:sychronized摹迷、lock疟赊、reentrantLock等。
22. 鎖的等級:方法鎖峡碉、對象鎖近哟、類鎖。
23.實現(xiàn)多線程的兩種方法:Thread與Runable鲫寄。
24.寫出生產(chǎn)者消費者模式吉执。
25.ThreadLocal設(shè)計理念與作用。
  • 防止任務(wù)在共享資源上產(chǎn)生沖突的第二種方法就是根除對變量的共享地来,于是有了線程本地化存儲戳玫。
26.ThreadPool用法與優(yōu)勢。 ExecutorService exec = Executors.newCachedThreadPool();
  • newCachedThreadPool():數(shù)量不固定未斑,可復用咕宿,不夠了就創(chuàng)建新的線程。
  • newFixedThreadPool():固定線程數(shù),任務(wù)超過線程數(shù)荠列,會在隊列中等待
  • newSingleThreadExecutor:就一個線程的線城池
  • newScheduledThreadPool:類似Timer类浪。支持周期性工作。
    public static ExecutorService newFixedThreadPool(int nThreads) {
    return new ThreadPoolExecutor(nThreads, nThreads,
    0L, TimeUnit.MILLISECONDS,
    new LinkedBlockingQueue<Runnable>());
    }
27.Concurrent包里的其他東西:ArrayBlockingQueue肌似、CountDownLatch等
  • ArrayBlockingQueue
  • LinkedeBlockingQueue
  • PriorityBlockingQueue
  • CopyOnWriteArrayList
  • DelayQueue
  • CountDownLatch
  • CyclicBarrier
28.wait()和sleep()的區(qū)別
  • wait()來自O(shè)bject,sleep()來自Thread
  • wait()會讓出鎖费就,sleep()不會;即wait()會讓出CPU,sleep()不會川队。
29. foreach與正常for循環(huán)效率對比力细。
  • foreach 語法糖卑笨,內(nèi)部是迭代器遍歷固该,因此較for稍慢一點
30.java NIO:
  • NIO的目的在于提高速度,速度的提高來源于所使用的結(jié)構(gòu)更接近于操作系統(tǒng)執(zhí)行I/O的方式:* 通道和緩沖器 *

    • 通道 是數(shù)據(jù)雾棺,唯一與通道打交道的是 緩沖器 斗躏,我們通過 緩沖器 *從通道讀取數(shù)據(jù)逝慧,或者向通道寫入數(shù)據(jù)。
      FileChannel fc = new FileOutputStream("data.txt").getChannel();
      fc.write(ByteBuffer.wrap("some text".getBytes()));
      fc.close();

      //read
      fc = new FileInputStream("data.text").getChannel();
      ByteBuffer buff = ByteBuffer.allocate(BSIZE);//分配BSIZE大小的緩沖區(qū)
      fc.read(buff);
      buff.flip();//告訴緩沖器啄糙,別人要來讀取了笛臣,做好準備
      //輸出時必須編碼
      String encoding = System.getProperty("file.encoding);
      System.out.print(Charest.forName(encoding).decode(buff));
      
  •  buffer.mark(); 配合buffer.reset();回到mark()位置
      buffer.rewind();回到起始位置
      buffer.asCharBuffer() ---> CharBuffer;
      //其他的int啥的類似
    
  •  MappedByteBuffer = new  RandomAccessFile("text.txt","rw").
    

getChannel().map(FileChannel.MapMode.READ_WRITE,0,length);
大文件映射。

31. 反射的作用與原理隧饼。
  • 反射:在運行期間動態(tài)生成對象并調(diào)用方法沈堡,提供了動態(tài)性
  • 寫框架,寫接口
32. 泛型常用特點燕雁,List<String>能否轉(zhuǎn)為List<Object>
  • 不能
33.解析XML的幾種方式的原理與特點:DOM诞丽、SAX、PULL拐格。
  • DOM :先把xml文檔都讀到內(nèi)存中,占內(nèi)存
  • SAX:基于事件驅(qū)動僧免,順序掃描,每個地方都有對應(yīng)的函數(shù)處理
  • PULL:與SAX類似捏浊,可以通過next()方法獲取他的下一個解析事件猬膨,也可以調(diào)用getAttributte()方法來獲取屬性的值,也可調(diào)用它的nextText()獲取本節(jié)點的值呛伴。
34. Java與C++對比勃痴。
  • Java:不用自己管理內(nèi)存,跑在虛擬機上热康,平臺無關(guān)沛申。
  • C++ : 速度快
35.java1.8新特性
  • Java 8允許我們給接口添加一個非抽象的方法實現(xiàn),只需要使用 default關(guān)鍵字即可姐军。

     interfece IA{
       default int a(){return 1;}
       }     
    
  • 引入Lambda表達式

36. 設(shè)計模式:單例铁材、工廠尖淘、適配器、責任鏈著觉、觀察者等等村生。
37.JNI
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市饼丘,隨后出現(xiàn)的幾起案子趁桃,更是在濱河造成了極大的恐慌,老刑警劉巖肄鸽,帶你破解...
    沈念sama閱讀 222,378評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件卫病,死亡現(xiàn)場離奇詭異,居然都是意外死亡典徘,警方通過查閱死者的電腦和手機蟀苛,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,970評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來逮诲,“玉大人帜平,你說我怎么就攤上這事∶佛校” “怎么了罕模?”我有些...
    開封第一講書人閱讀 168,983評論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長帘瞭。 經(jīng)常有香客問我,道長蒿讥,這世上最難降的妖魔是什么蝶念? 我笑而不...
    開封第一講書人閱讀 59,938評論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮芋绸,結(jié)果婚禮上媒殉,老公的妹妹穿的比我還像新娘。我一直安慰自己摔敛,他們只是感情好廷蓉,可當我...
    茶點故事閱讀 68,955評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著马昙,像睡著了一般桃犬。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上行楞,一...
    開封第一講書人閱讀 52,549評論 1 312
  • 那天攒暇,我揣著相機與錄音,去河邊找鬼子房。 笑死形用,一個胖子當著我的面吹牛就轧,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播田度,決...
    沈念sama閱讀 41,063評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼妒御,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了镇饺?” 一聲冷哼從身側(cè)響起乎莉,我...
    開封第一講書人閱讀 39,991評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎兰怠,沒想到半個月后梦鉴,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,522評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡揭保,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,604評論 3 342
  • 正文 我和宋清朗相戀三年肥橙,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片秸侣。...
    茶點故事閱讀 40,742評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡存筏,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出味榛,到底是詐尸還是另有隱情椭坚,我是刑警寧澤,帶...
    沈念sama閱讀 36,413評論 5 351
  • 正文 年R本政府宣布搏色,位于F島的核電站善茎,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏频轿。R本人自食惡果不足惜垂涯,卻給世界環(huán)境...
    茶點故事閱讀 42,094評論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望航邢。 院中可真熱鬧耕赘,春花似錦、人聲如沸膳殷。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,572評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽赚窃。三九已至册招,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間勒极,已是汗流浹背跨细。 一陣腳步聲響...
    開封第一講書人閱讀 33,671評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留河质,地道東北人冀惭。 一個月前我還...
    沈念sama閱讀 49,159評論 3 378
  • 正文 我出身青樓震叙,卻偏偏與公主長得像,于是被迫代替她去往敵國和親散休。 傳聞我的和親對象是個殘疾皇子媒楼,可洞房花燭夜當晚...
    茶點故事閱讀 45,747評論 2 361

推薦閱讀更多精彩內(nèi)容

  • 從三月份找實習到現(xiàn)在,面了一些公司戚丸,掛了不少划址,但最終還是拿到小米、百度限府、阿里夺颤、京東、新浪胁勺、CVTE世澜、樂視家的研發(fā)崗...
    時芥藍閱讀 42,278評論 11 349
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法署穗,內(nèi)部類的語法寥裂,繼承相關(guān)的語法,異常的語法案疲,線程的語...
    子非魚_t_閱讀 31,664評論 18 399
  • 當當當當褐啡,最最受人期待日本Qulle團隊成員诺舔、知名舞見鼻血姬和電氣少女孽今天來到漫展現(xiàn)場啦! 雖然小編沒有親眼...
    安靜的靜靜閱讀 305評論 0 0
  • 基本概念 Dom事件級別 Dom事件模型 Dom事件流 描述Dom事件捕獲的具體流程 Event對象的常見應(yīng)用 自...
    cAce閱讀 178評論 0 0
  • 材料:排骨备畦、海帶結(jié)低飒、白蘿卜、姜萍恕、蔥、料酒车要、鹽允粤、胡椒粉 1.海帶泡發(fā)洗凈 2.白蘿卜去皮切條狀備用 3.排骨放入沸水...
    大娟兒啦啦閱讀 378評論 0 0