日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Mar9th 海尔java面试

發(fā)布時(shí)間:2023/12/10 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Mar9th 海尔java面试 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Mar9th 海爾java面試

  • java基本數(shù)據(jù)類型
  • 抽象類和接口的區(qū)別
  • HashMap擴(kuò)容機(jī)制
    • 什么時(shí)候觸發(fā)擴(kuò)容?
    • jdk7的擴(kuò)容機(jī)制
    • jdk8的擴(kuò)容機(jī)制
  • ArrayList,LinkedList
  • Innodb表鎖,行鎖
  • Mysql隔離級(jí)別
  • B+樹,索引類型
  • IOC AOP

java基本數(shù)據(jù)類型

int short long double float boolean char byte

public class Learn1 {static double d;static long l;static float f;static int i;static short s;static char c;static byte b;static boolean bool;public static void main(String[] args) {//8字節(jié)System.out.println(Double.SIZE / 8);//8字節(jié)System.out.println(Long.SIZE / 8);//4字節(jié)System.out.println(Float.SIZE / 8);//4字節(jié)System.out.println(Integer.SIZE / 8);//2字節(jié)System.out.println(Short.SIZE / 8);//2字節(jié)System.out.println(Character.SIZE / 8);//1字節(jié)System.out.println(Byte.SIZE / 8);//1比特System.out.println(Boolean.FALSE);//0.0System.out.println(d);//0LSystem.out.println(l);//0.0fSystem.out.println(f);//0System.out.println(i);//0System.out.println(s);//""System.out.println(c);//0System.out.println(b);//falseSystem.out.println(bool);} }

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

  • 抽象類可以有構(gòu)造方法,接口中不能有構(gòu)造方法。

  • 抽象類中可以有普通成員變量,接口中沒有普通成員變量

  • 抽象類中可以包含非抽象的普通方法,接口中的所有方法必須都是抽象的,不能有非抽象的普通方法。

  • 抽象類中的抽象方法的訪問類型可以是public,protected和默認(rèn)類型,但接口中的抽象方法只能是public類型的,并且默認(rèn)即為public abstract類型。

  • 抽象類中可以包含靜態(tài)方法,接口中不能包含靜態(tài)方法

  • 抽象類和接口中都可以包含靜態(tài)成員變量,抽象類中的靜態(tài)成員變量的訪問類型可以任意,但接口中定義的變量只能是public static final類型,并且默認(rèn)即為public static final類型。

  • 一個(gè)類可以實(shí)現(xiàn)多個(gè)接口,但只能繼承一個(gè)抽象類。

  • HashMap擴(kuò)容機(jī)制

    • capacity 即(數(shù)組大小)容量,默認(rèn)16。
    • loadFactor 加載因子,默認(rèn)是0.75
    • threshold 閾值。閾值=容量*加載因子。默認(rèn)12。當(dāng)元素?cái)?shù)量超過閾值時(shí)便會(huì)觸發(fā)擴(kuò)容。

    什么時(shí)候觸發(fā)擴(kuò)容?

    一般情況下,當(dāng)元素?cái)?shù)量超過閾值時(shí)便會(huì)觸發(fā)擴(kuò)容。每次擴(kuò)容的容量都是之前容量的2倍。
    HashMap的容量是有上限的,必須小于1<<30,即1073741824。如果容量超出了這個(gè)數(shù),則不再增長,且閾值會(huì)被設(shè)置為Integer.MAX_VALUE,即永遠(yuǎn)不會(huì)超出閾值了。

    jdk7的擴(kuò)容機(jī)制

    JDK7的擴(kuò)容機(jī)制相對(duì)簡單,有以下特性:

    • 空參數(shù)的構(gòu)造函數(shù):以默認(rèn)容量、默認(rèn)負(fù)載因子、默認(rèn)閾值初始化數(shù)組。內(nèi)部數(shù)組是空數(shù)組。
    • 有參構(gòu)造函數(shù):根據(jù)參數(shù)確定容量、負(fù)載因子、閾值等。
    • 第一次put時(shí)會(huì)初始化數(shù)組,其容量變?yōu)椴恍∮谥付ㄈ萘康?的冪數(shù)。然后根據(jù)負(fù)載因子確定閾值。
    • 如果不是第一次擴(kuò)容,則 新容量=舊容量*2, 新閾值=新容量*加載因子 。

    jdk8的擴(kuò)容機(jī)制

    JDK8的擴(kuò)容做了許多調(diào)整。
    HashMap的容量變化通常存在以下幾種情況:

    • 空參數(shù)的構(gòu)造函數(shù):實(shí)例化的HashMap默認(rèn)內(nèi)部數(shù)組是null,即沒有實(shí)例化。第一次調(diào)用put方法時(shí),則會(huì)開始第一次初始化擴(kuò)容,長度為16。
    • 有參構(gòu)造函數(shù):用于指定容量。會(huì)根據(jù)指定的正整數(shù)找到不小于指定容量的2的冪數(shù),將這個(gè)數(shù)設(shè)置賦值給閾值(threshold)。第一次調(diào)用put方法時(shí),會(huì)將閾值賦值給容量,然后讓 閾值=負(fù)載因子*容量 。(因此并不是我們手動(dòng)指定了容量就一定不會(huì)觸發(fā)擴(kuò)容,超過閾值后一樣會(huì)擴(kuò)容!!)
    • 如果不是第一次擴(kuò)容,則容量變?yōu)樵瓉淼?倍,閾值也變?yōu)樵瓉淼?倍。(容量和閾值都變?yōu)樵瓉淼?倍時(shí),負(fù)載因子還是不變)
      此外還有幾個(gè)細(xì)節(jié)需要注意:

    首次put時(shí),先會(huì)觸發(fā)擴(kuò)容(算是初始化),然后存入數(shù)據(jù),然后判斷是否需要擴(kuò)容;
    不是首次put,則不再初始化,直接存入數(shù)據(jù),然后判斷是否需要擴(kuò)容;

    ArrayList,LinkedList

    頻繁刪除用linkedlist

    Innodb表鎖,行鎖

    Mysql隔離級(jí)別

    未提交讀(Read uncommitted)

    已提交度(Read committed)

    可重復(fù)讀(Repeatable read)

    可序列化(Serializable)

    B+樹,索引類型

    IOC AOP

    總結(jié)

    以上是生活随笔為你收集整理的Mar9th 海尔java面试的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。