java基礎(chǔ)面試總結(jié)

java基礎(chǔ)

1.排序

/*
    選擇排序。
    特點(diǎn):
        在內(nèi)循環(huán)第一次結(jié)束,最值出現(xiàn)最低角標(biāo)位。
    */
    public static void  selectSort(int[] arr)
    {
        for(int x=0; x<arr.length-1; x++)
        {
            for(int y=x+1; y<arr.length; y++)
            {
                if(arr[x]<arr[y])
                {
                    /*
                    int temp = arr[x];
                    arr[x] = arr[y];
                    arr[y] = temp;
                    */
                    swap(arr,x,y);
                }
            }
        }
    }


 /*冒泡排序旁钧。
    特點(diǎn):相鄰兩個(gè)元素進(jìn)行比較。
        內(nèi)循環(huán)結(jié)束一次互拾,最值出現(xiàn)在最后角標(biāo)位。

    */
    public static void bubbleSort(int[] arr)
    {
        for(int x=0; x<arr.length-1; x++)
        {
            for(int y=0; y<arr.length-x-1; y++)
            {
                if(arr[y]>arr[y+1])
                {
                    /*
                    int temp = arr[y];
                    arr[y] = arr[y+1];
                    arr[y+1] = temp;
                    */
                    swap(arr,y,y+1);
                }
            }
        }
    }

二分查找(折半查找)

 /**
     * 二分查找
     *
     * @param arr 數(shù)據(jù)源
     * @param key 查找的數(shù)據(jù)
     * @return 在arr里的位置
     */
    private int halfSearch(int[] arr, int key) {
        int min, mid, max;
        min = 0;
        max = arr.length - 1;
        while (min <= max) {
            mid = (min + max) / 2;
            if (key > arr[mid]) {
                min = mid + 1;
            } else if (key < arr[mid]) {
                max = mid - 1;
            } else {
                return mid;
            }
        }
        return -1;
    }

2.static final

static有三種形式嚎幸,靜態(tài)方法颜矿,靜態(tài)變量,靜態(tài)代碼塊嫉晶。
靜態(tài)在隨著類加載的時(shí)候就一起加載骑疆。
靜態(tài)只能調(diào)用靜態(tài)變量;
靜態(tài)方法只能調(diào)用靜態(tài)方法替废;
不能以任何形式引用this,super;
靜態(tài)方法的調(diào)用不依附于實(shí)例對(duì)象
final
在Java中箍铭,final關(guān)鍵字可以用來(lái)修飾類、方法和變量(包括成員變量和局部變量)椎镣。
當(dāng)修飾類的時(shí)候诈火,該類不能被繼承。
當(dāng)修飾方法的時(shí)候状答,該方法不能被重寫冷守。
當(dāng)修飾變量的時(shí)候,如果是基本數(shù)據(jù)類型的變量惊科,則其數(shù)值一旦在初始化之后便不能更改拍摇;如果是引用類型的變量,則在對(duì)其初始化之后便不能再讓其指向另一個(gè)對(duì)象馆截。

3.基本數(shù)據(jù)類型

類型 字節(jié) 位數(shù)
byte 1字節(jié) 8位
short 2字節(jié) 16位
int 4字節(jié) 32位
long 8字節(jié) 64位
double 8字節(jié) 64位
float 4字節(jié) 32位
char 2字節(jié) 16位
boolean 1字節(jié) 8位

4.集合

list

ArrayList 數(shù)組結(jié)構(gòu)充活,線程不安全的,查詢速度快蜡娶。
LinkedList 鏈表結(jié)構(gòu)混卵,線程不安全,插入和刪除的速度快翎蹈。
vector 數(shù)組結(jié)構(gòu)淮菠,線程安全。無(wú)論增刪或者查詢效率都很低荤堪。被ArrayList替代合陵。

set

存入set的每個(gè)元素都必須是唯一的枢赔,因?yàn)閟et不保存重復(fù)元素。

HashSet 哈希表結(jié)構(gòu)拥知,為快速查找而設(shè)計(jì)踏拜,效率高
TreeSet 二叉樹(shù)結(jié)構(gòu),使用它可以從set中提取有序的序列低剔。

map

HashMap基于散列表的實(shí)現(xiàn)速梗,可以存儲(chǔ)鍵值對(duì)形式的數(shù)據(jù),可以null鍵值襟齿,效率高姻锁,線程不安全。
LinkedHashmap 基于hashmap的結(jié)構(gòu)之上猜欺,其默認(rèn)獲取數(shù)據(jù)的順序是插入順序位隶。也可以通過(guò)構(gòu)造方法設(shè)置為最近最少使用的次序(LRU)。
TreeMap基于紅黑樹(shù)的實(shí)現(xiàn)开皿,查看數(shù)據(jù)的時(shí)候涧黄,會(huì)被排序。

5.線程

1.繼承Thread
2.實(shí)現(xiàn)Runable接口
3.實(shí)現(xiàn)Callable,和Runable的區(qū)別是有回調(diào)方法赋荆。
區(qū)別 :實(shí)現(xiàn)Runable接口擴(kuò)展性更好笋妥,因?yàn)槔^承只能單向繼承

什么是線程?
線程是操作系統(tǒng)運(yùn)行的最小單元窄潭;進(jìn)程里包含了多個(gè)線程春宣,他們處理不同的任務(wù),組成了一個(gè)應(yīng)用或者一個(gè)系統(tǒng)的整體邏輯狈孔。
sleep和wait的區(qū)別 最大的不同是在等待時(shí) wait 會(huì)釋放鎖信认,而 sleep 一直持有鎖。wait 通常被用于線程間交互均抽,sleep 通常被用于暫停執(zhí)行嫁赏。
Thread.yield():讓步,當(dāng)一個(gè)線程執(zhí)行yield()方法油挥,證明該線程執(zhí)行讓步潦蝇,讓其他線程有可能的獲取資源運(yùn)行。
**Thead.join(): **加入深寥,當(dāng)一個(gè)線程執(zhí)行join(),證明該線程執(zhí)行加入操作攘乒,會(huì)終止當(dāng)前正在運(yùn)行的線程,開(kāi)始執(zhí)行join的線程惋鹅。
Thread 優(yōu)先級(jí):Thread.currentThread().setPrority(value);value=Max_prority;Norm_priority;Min_priority;三種不同的優(yōu)先等級(jí)则酝;
Thread.setDaemon(boolean);設(shè)置當(dāng)前線程為后臺(tái)線程,后臺(tái)線程要在start之前調(diào)用才有效闰集。后臺(tái)線程沽讹,是指程序運(yùn)行的時(shí)候在后臺(tái)提供一種通用服務(wù)的線程般卑,且這種線程并不屬于程序中不可或缺的部分;只要有任何非后臺(tái)線程在運(yùn)行爽雄,程序就不會(huì)終止蝠检。
線程池:是統(tǒng)一管理線程的服務(wù)對(duì)象。優(yōu)點(diǎn)是通過(guò)控制線程的創(chuàng)建和銷毀挚瘟,節(jié)省資源叹谁,提高效率。

6.面向?qū)ο蟪烁牵庋b焰檩、繼承、多態(tài)

封裝:隱藏實(shí)現(xiàn)細(xì)節(jié)订框,提高程序的復(fù)用性和維護(hù)性
繼承:子類繼承父類锅尘,表明子類擁有父類的屬性和方法(注意是public protected修飾符的)
多態(tài):父類引用指向子類對(duì)象
抽象類和接口的區(qū)別
抽象類是abstract修飾的類,表示該類不足以描述一個(gè)具體的事物或者對(duì)象布蔗,就叫抽象類。
接口是一系列方法的聲明浪腐,是一些方法特征的集合纵揍,一個(gè)接口只有方法的特征沒(méi)有方法的實(shí)現(xiàn),因此這些方法可以在不同的地方被不同的類實(shí)現(xiàn)议街,而這些實(shí)現(xiàn)可以具有不同的行為或者功能泽谨。

抽象類可以存在非抽象的方法和變量。接口中除了static特漩、final變量吧雹,不能有其他變量
抽象類可以有構(gòu)造器,但接口不能有涂身。
抽象類的方法可以用public雄卷、protected和default這些修飾符,但接口只能用public修飾蛤售。

抽象類是繼承關(guān)系丁鹉,而接口是實(shí)現(xiàn)關(guān)系。

7.泛型

  • 概念:編寫的代碼可以被不同的對(duì)象類型所重用悴能。泛型的本質(zhì)是參數(shù)化類型揣钦。所操作的數(shù)據(jù)類型被指定為一個(gè)參數(shù)。有三種形式:泛型類漠酿、泛型方法冯凹、泛型接口
  • 出現(xiàn):有許多原因促成了泛型的出現(xiàn),而最引人注意的一個(gè)原因炒嘲,就是為了創(chuàng)建容器類宇姚。
  • 泛型好處:
    類型安全:提高java程序的類型安全匈庭,編譯時(shí)期就可以檢查出類型不正確導(dǎo)致的類型轉(zhuǎn)換異常,消除強(qiáng)制類型轉(zhuǎn)換空凸。

泛型進(jìn)階
泛型的通配符:
<?> 無(wú)限制通配符
<? extends E> extends 關(guān)鍵字聲明了類型的上界嚎花,表示參數(shù)化的類型可能是所指定的類型,或者是此類型的子類
<? super E> super 關(guān)鍵字聲明了類型的下界呀洲,表示參數(shù)化的類型可能是指定的類型紊选,或者是此類型的父類
泛型的類型擦除:當(dāng)編譯器對(duì)帶有泛型的java代碼進(jìn)行編譯時(shí),它會(huì)去執(zhí)行類型檢查和類型推斷道逗,然后生成普通的不帶泛型的字節(jié)碼兵罢,這種普通的字節(jié)碼可以被一般的 Java 虛擬機(jī)接收并執(zhí)行,這在就叫做 類型擦除(type erasure)滓窍。
擦除的實(shí)現(xiàn)原理:Java 編輯器會(huì)將泛型代碼中的類型完全擦除卖词,使其變成原始類型。
當(dāng)然吏夯,這時(shí)的代碼類型和我們想要的還有距離此蜈,接著 Java 編譯器會(huì)在這些代碼中加入類型轉(zhuǎn)換,將原始類型轉(zhuǎn)換成想要的類型噪生。這些操作都是編譯器后臺(tái)進(jìn)行裆赵,可以保證類型安全。
總之泛型就是一個(gè)語(yǔ)法糖跺嗽,它運(yùn)行時(shí)沒(méi)有存儲(chǔ)任何類型信息战授。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市桨嫁,隨后出現(xiàn)的幾起案子植兰,更是在濱河造成了極大的恐慌,老刑警劉巖璃吧,帶你破解...
    沈念sama閱讀 223,207評(píng)論 6 521
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件楣导,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡肚逸,警方通過(guò)查閱死者的電腦和手機(jī)爷辙,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,455評(píng)論 3 400
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)朦促,“玉大人膝晾,你說(shuō)我怎么就攤上這事∥衩幔” “怎么了血当?”我有些...
    開(kāi)封第一講書(shū)人閱讀 170,031評(píng)論 0 366
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我臊旭,道長(zhǎng)落恼,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 60,334評(píng)論 1 300
  • 正文 為了忘掉前任离熏,我火速辦了婚禮佳谦,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘滋戳。我一直安慰自己钻蔑,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,322評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布奸鸯。 她就那樣靜靜地躺著咪笑,像睡著了一般。 火紅的嫁衣襯著肌膚如雪娄涩。 梳的紋絲不亂的頭發(fā)上窗怒,一...
    開(kāi)封第一講書(shū)人閱讀 52,895評(píng)論 1 314
  • 那天,我揣著相機(jī)與錄音蓄拣,去河邊找鬼扬虚。 笑死,一個(gè)胖子當(dāng)著我的面吹牛球恤,可吹牛的內(nèi)容都是我干的孔轴。 我是一名探鬼主播,決...
    沈念sama閱讀 41,300評(píng)論 3 424
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼碎捺,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了贷洲?” 一聲冷哼從身側(cè)響起收厨,我...
    開(kāi)封第一講書(shū)人閱讀 40,264評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎优构,沒(méi)想到半個(gè)月后诵叁,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,784評(píng)論 1 321
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡钦椭,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,870評(píng)論 3 343
  • 正文 我和宋清朗相戀三年拧额,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片彪腔。...
    茶點(diǎn)故事閱讀 40,989評(píng)論 1 354
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡侥锦,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出德挣,到底是詐尸還是另有隱情恭垦,我是刑警寧澤,帶...
    沈念sama閱讀 36,649評(píng)論 5 351
  • 正文 年R本政府宣布,位于F島的核電站番挺,受9級(jí)特大地震影響唠帝,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜玄柏,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,331評(píng)論 3 336
  • 文/蒙蒙 一襟衰、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧粪摘,春花似錦瀑晒、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,814評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至映砖,卻和暖如春间坐,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背邑退。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,940評(píng)論 1 275
  • 我被黑心中介騙來(lái)泰國(guó)打工竹宋, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人地技。 一個(gè)月前我還...
    沈念sama閱讀 49,452評(píng)論 3 379
  • 正文 我出身青樓蜈七,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親莫矗。 傳聞我的和親對(duì)象是個(gè)殘疾皇子飒硅,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,995評(píng)論 2 361

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

  • 如夢(mèng)朦朧 九月份的時(shí)候有了換工作的躁動(dòng),然后投了某度的Android崗位,本以為像我這種非211、985沒(méi)工作經(jīng)驗(yàn)...
    兔斯基第2號(hào)閱讀 1,041評(píng)論 0 23
  • 廢話不多說(shuō)作谚,自己進(jìn)入今天的主題 1三娩、面向?qū)ο蟮奶卣饔心男┓矫妫?答:面向?qū)ο蟮奶卣髦饕幸韵聨讉€(gè)方面: - 抽象:...
    傳奇內(nèi)服號(hào)閱讀 2,357評(píng)論 1 31
  • 整理一些常見(jiàn)的Android面試題(針對(duì)于2~3年開(kāi)發(fā)經(jīng)驗(yàn)中所遇到的問(wèn)題) synchronized鎖靜態(tài)方法和非...
    appzy閱讀 2,308評(píng)論 4 18
  • 前言 首先在文章開(kāi)始之前,需要大家了解下我的情況我是普通本科妹懒,不是985雀监,211。大學(xué)的時(shí)候玩聯(lián)盟眨唬,打籃球会前,逃課,...
    g小志閱讀 37,463評(píng)論 46 265
  • 再思宗教改革 我們不能高舉宗教改革的旗子匾竿,因宗教改革不是全部瓦宜。 深入研究改教歷史,發(fā)現(xiàn)當(dāng)時(shí)沒(méi)有新的拓展(參考宣教史...
    丁恩慈閱讀 329評(píng)論 0 3