Android面試大全(java篇)

Android面試大全(四大組件篇)
Android面試大全(性能優(yōu)化篇)
Android面試大全(異常處理篇)
Android面試大全(開源框架篇)
Android面試大全(網(wǎng)絡(luò)篇)
Android面試大全(java篇)


java基礎(chǔ)

  • java三大特性
    封裝、繼承、多態(tài)
  • 多態(tài)實(shí)現(xiàn)原理
  • 基本數(shù)據(jù)類型及占用的字節(jié)數(shù)
    8種
類型 包裝類 所占位數(shù)(二進(jìn)制) 所占字節(jié)數(shù)
byte(字節(jié)) Byte 8 1
short(短整型) Short 16 2
int(整型) Integer 32 4
long(長(zhǎng)整型) Long 64 8
float(浮點(diǎn)型) Float 32 4
double(雙精度) Double 64 8
char(字符型) Character 16 2
boolean(布爾型) Boolean 1
  • switch支持什么類型
    jdk1.6以及之前版本是byte、char、short、int、枚舉 五種
    jdk1.7時(shí),又增加了String,所以相對(duì)于JDK1.7而言就是六種

  • String StringBuffer StringBuilder說(shuō)明及區(qū)別

  • 字符串是否可改變
    String:String中的字符串是固定的,即常量
    StringBuffer StringBuilde都可改變字符串的長(zhǎng)度等,通過(guò).append()方法進(jìn)行字符串的拼接

  • 線程安全方面:
    StringBuilder:線程非安全的
    StringBuffer:線程安全的

  • 執(zhí)行速度比較
    StringBuilder>StringBuffer>String(少量數(shù)據(jù)其實(shí)區(qū)別不大)

  • 使用經(jīng)驗(yàn):
    1.操作少量的數(shù)據(jù)用 :String
    2.單線程操作字符串緩沖區(qū) 下操作大量數(shù)據(jù) :StringBuilder
    3.多線程操作字符串緩沖區(qū) 下操作大量數(shù)據(jù) :StringBuffer(線程安全)

  • Java集合繼承子類繼承關(guān)系

  • Collection

    • List
      • LinkedList
      • ArrayList
      • Vector
        • Stack
  • Map

    • HashTable
    • HashMap
    • WeakHashMap
  • 進(jìn)程與線程區(qū)別
    一個(gè)程序至少有一個(gè)進(jìn)程,一個(gè)進(jìn)程至少有一個(gè)線程
    線程是比進(jìn)程更小的劃分單位,多線程程序的并發(fā)性高
    進(jìn)程在執(zhí)行的過(guò)程中擁有獨(dú)立的內(nèi)存單元,而線程是多個(gè)線程共享內(nèi)存單元,從而提高程序運(yùn)行效率
    兩者執(zhí)行過(guò)程有所區(qū)別。每個(gè)獨(dú)立的線程有一個(gè)程序運(yùn)行的入口、順序執(zhí)行序列以及程序的出口,但是線程是不能獨(dú)立運(yùn)行的,必須依附在應(yīng)用程序中,有應(yīng)用程序提供多個(gè)線程執(zhí)行控制。
    線程是進(jìn)程的一個(gè)實(shí)體,是CPU調(diào)度和分派的基本單元,是比進(jìn)程更小的能獨(dú)立運(yùn)行的基本單位,線程自己不用有系統(tǒng)資源,只擁有在運(yùn)行中必不可少的資源,它可與同屬一個(gè)進(jìn)程的其他線程共享進(jìn)程所擁有的 全部資源
    一個(gè)線程可以創(chuàng)建和撤銷另一個(gè)線程;統(tǒng)一進(jìn)程中線程可以多個(gè)并發(fā)進(jìn)行

  • final finally finalize都是干什么用的?有什么區(qū)別

    • final
      final 是java中的關(guān)鍵字。如果一個(gè)類被聲明為final,意味著它不能再派生出新的子類,不能作為父類被繼承。一個(gè)類不能既被聲明為 abstract的,又被聲明為final的。將變量或方法聲明為final,可以保證它們?cè)谑褂弥胁槐桓淖儭1宦暶鳛閒inal的變量必須在聲明時(shí)給定初值,而在以后的引用中只能讀取,不可修改。被聲明為final的方法也同樣只能使用,不能重載。
      final變量的初始化:
      ①:在定義的時(shí)候初始化。
      ②:可以在初始化塊中初始化,不可以在靜態(tài)初始化塊中初始化。
      ③:靜態(tài)final變量可以在靜態(tài)初始化塊中初始化,不可以在初始化塊中初始化。
      ④:還可以在類的構(gòu)造器中初始化,但是靜態(tài)final變量不可以。
  • finally
    java中異常處理時(shí),提供 finally 塊來(lái)執(zhí)行操作。在開發(fā)者使用finally的情況下,如果程序拋出一個(gè)異常,那么相匹配的 catch 模塊會(huì)執(zhí)行,然后程序就會(huì)進(jìn)入 finally 塊中,如果程序正常執(zhí)行(未發(fā)生異常),在執(zhí)行完程序后(try{}部分)同樣會(huì)進(jìn)入finally中,即無(wú)論程序是否異常,finally始終都會(huì)進(jìn)入(開發(fā)者可以在此模塊中做相應(yīng)的操作,do everything what you want......)。有一種特殊情況可能不會(huì)進(jìn)入,當(dāng)程序還沒執(zhí)行完畢,強(qiáng)制結(jié)束程序進(jìn)程。(這個(gè)是整個(gè)程序被終止了,和本身程序的執(zhí)行順序并沒有什么關(guān)系)

  • finalize
    方法名,java允許使用 finalize() 方法在垃圾收集器中將對(duì)象從內(nèi)存中清除出去之前做必要的清理工作。這個(gè)方法是由垃圾收集器在確定這個(gè)對(duì)象沒有被引用時(shí)對(duì)這個(gè)對(duì)象調(diào)用的。它是在 Object 類中定義的,因此所有的類都繼承了它。子類覆蓋 finalize() 方法以整理系統(tǒng)資源或者執(zhí)行其他清理工作。finalize() 方法是在垃圾收集器刪除對(duì)象之前對(duì)這個(gè)對(duì)象調(diào)用的。

  • java的四種引用?
    強(qiáng)引用、弱引用、軟引用、虛引用

  • 內(nèi)部類、靜態(tài)內(nèi)部類、匿名內(nèi)部類、局部?jī)?nèi)部類

  • ==與equals的區(qū)別

  • Java反射機(jī)制

  • Java注解相關(guān)

  • Java泛型

  • Java枚舉

  • Java操作文件的基本API,RdomAccessFile

  • 訪問網(wǎng)絡(luò)的基本API. Socket

  • Java異常有幾種?什么是運(yùn)行時(shí)異常,有什么特點(diǎn)?

  • 接口與抽象類的區(qū)別

  • 什么導(dǎo)致線程阻塞

  • ArrayMap對(duì)比HashMap

  • HashMap的實(shí)現(xiàn)原理

  • Java排序算法

  • 接口的意義
    規(guī)范、擴(kuò)展、回調(diào)

  • 抽象類的意義
    為其子類提供一個(gè)公共的類型,封裝子類中重復(fù)的內(nèi)容,定義抽象方法。子類可有又不同的實(shí)現(xiàn)方法,但是定義是一致的

  • 內(nèi)部類的作用

  • 內(nèi)部類可以用多個(gè)實(shí)例,每個(gè)實(shí)例都有自己的狀態(tài)信息,并且與其他外圍對(duì)象的信息相互獨(dú)立

  • 在單個(gè)外圍類中,可以讓多個(gè)內(nèi)部類以不同的方式實(shí)現(xiàn)同一個(gè)接口或者繼承同一個(gè)類

  • 創(chuàng)建內(nèi)部類對(duì)象的時(shí)刻并不依賴于外圍內(nèi)對(duì)象的創(chuàng)建

  • 內(nèi)部類沒有“is-a”關(guān)系,是一個(gè)獨(dú)立的實(shí)體

  • 內(nèi)部類提供了更好的封裝,除了該外圍類,其他類都不能訪問

  • 父類的靜態(tài)方法能否被子類重寫
    不能
    子類繼承父類后,用相同的靜態(tài)方法和非靜態(tài)方法,這是非靜態(tài)方法會(huì)覆蓋父類中的非靜態(tài)方法(即方法的重寫),父類的該靜態(tài)方法被隱藏(若對(duì)象是父類則調(diào)用該隱藏的方法),子類可繼承父類的靜態(tài)與非靜態(tài)方法


正在持續(xù)更新中……

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法,類相關(guān)的語(yǔ)法,內(nèi)部類的語(yǔ)法,繼承相關(guān)的語(yǔ)法,異常的語(yǔ)法,線程的語(yǔ)...
    子非魚_t_閱讀 34,679評(píng)論 18 399
  • (一)Java部分 1、列舉出JAVA中6個(gè)比較常用的包【天威誠(chéng)信面試題】 【參考答案】 java.lang;ja...
    獨(dú)云閱讀 7,257評(píng)論 0 62
  • 從三月份找實(shí)習(xí)到現(xiàn)在,面了一些公司,掛了不少,但最終還是拿到小米、百度、阿里、京東、新浪、CVTE、樂視家的研發(fā)崗...
    時(shí)芥藍(lán)閱讀 42,796評(píng)論 11 349
  • 一:java概述:1,JDK:Java Development Kit,java的開發(fā)和運(yùn)行環(huán)境,java的開發(fā)工...
    ZaneInTheSun閱讀 2,812評(píng)論 0 11
  • 十月的最后一天,小城陰沉沉的,好像要下雨。 其實(shí)凌晨的時(shí)候,雨就一直“滴答”“滴答”地敲打著窗戶,只是天亮后,奇跡...
    搖曳的長(zhǎng)裙閱讀 749評(píng)論 4 1

友情鏈接更多精彩內(nèi)容