中文字幕高清在线,中文字幕在线电影观看,中文字幕在线看,免费国产一区二区三区,男攻调教双性男总裁,热热涩热热狠狠色香蕉综合,亚洲精品网站在线观看不卡无广告

不能錯(cuò)過的面向?qū)ο蟮膉ava筆試題

時(shí)間:2022-03-19 11:08:40 試題 我要投稿

不能錯(cuò)過的關(guān)于面向?qū)ο蟮膉ava筆試題

  Java是一門面向?qū)ο蟮木幊陶Z言,不僅吸收了C++語言的各種優(yōu)點(diǎn),還摒棄了C++里難以理解的多繼承、指針等概念,因此Java語言具有功能強(qiáng)大和簡(jiǎn)單易用兩個(gè)特征。以下是小編整理的不能錯(cuò)過的關(guān)于面向?qū)ο蟮膉ava筆試題,歡迎查看。

不能錯(cuò)過的關(guān)于面向?qū)ο蟮膉ava筆試題

  不能錯(cuò)過的面向?qū)ο蟮膉ava筆試題 篇1

  1)Java 中能創(chuàng)建 Volatile 數(shù)組嗎?

  能,Java 中可以創(chuàng)建 volatile 類型數(shù)組,不過只是一個(gè)指向數(shù)組的引用,而不是整個(gè)數(shù)組。我的意思是,如果改變引用指向的數(shù)組,將會(huì)受到 volatile 的保護(hù),但是如果多個(gè)線程同時(shí)改變數(shù)組的元素,volatile 標(biāo)示符就不能起到之前的保護(hù)作用了。

  2)volatile 能使得一個(gè)非原子操作變成原子操作嗎?

  一個(gè)典型的例子是在類中有一個(gè) long 類型的成員變量。如果你知道該成員變量會(huì)被多個(gè)線程訪問,如計(jì)數(shù)器、價(jià)格等,你最好是將其設(shè)置為 volatile。為什么?因?yàn)?Java 中讀取 long 類型變量不是原子的,需要分成兩步,如果一個(gè)線程正在修改該 long 變量的值,另一個(gè)線程可能只能看到該值的一半(前 32 位)。但是對(duì)一個(gè) volatile 型的 long 或 double 變量的讀寫是原子。

  3)volatile 修飾符的有過什么實(shí)踐?

  一種實(shí)踐是用 volatile 修飾 long 和 double 變量,使其能按原子類型來讀寫。double 和 long 都是64位寬,因此對(duì)這兩種類型的讀是分為兩部分的,第一次讀取第一個(gè) 32 位,然后再讀剩下的 32 位,這個(gè)過程不是原子的,但 Java 中 volatile 型的 long 或 double 變量的讀寫是原子的。volatile 修復(fù)符的另一個(gè)作用是提供內(nèi)存屏障(memory barrier),例如在分布式框架中的應(yīng)用。簡(jiǎn)單的說,就是當(dāng)你寫一個(gè) volatile 變量之前,Java 內(nèi)存模型會(huì)插入一個(gè)寫屏障(write barrier),讀一個(gè) volatile 變量之前,會(huì)插入一個(gè)讀屏障(read barrier)。意思就是說,在你寫一個(gè) volatile 域時(shí),能保證任何線程都能看到你寫的值,同時(shí),在寫之前,也能保證任何數(shù)值的更新對(duì)所有線程是可見的,因?yàn)閮?nèi)存屏障會(huì)將其他所有寫的值更新到緩存。

  4)volatile 類型變量提供什么保證?(答案)

  volatile 變量提供順序和可見性保證,例如,JVM 或者 JIT為了獲得更好的性能會(huì)對(duì)語句重排序,但是 volatile 類型變量即使在沒有同步塊的情況下賦值也不會(huì)與其他語句重排序。 volatile 提供 happens-before 的保證,確保一個(gè)線程的修改能對(duì)其他線程是可見的。某些情況下,volatile 還能提供原子性,如讀 64 位數(shù)據(jù)類型,像 long 和 double 都不是原子的,但 volatile 類型的 double 和 long 就是原子的。

  5) 10 個(gè)線程和 2 個(gè)線程的同步代碼,哪個(gè)更容易寫?

  從寫代碼的角度來說,兩者的復(fù)雜度是相同的,因?yàn)橥酱a與線程數(shù)量是相互獨(dú)立的。但是同步策略的選擇依賴于線程的數(shù)量,因?yàn)樵蕉嗟木程意味著更大的競(jìng)爭(zhēng),所以你需要利用同步技術(shù),如鎖分離,這要求更復(fù)雜的代碼和專業(yè)知識(shí)。

  6)你是如何調(diào)用 wait方法的?使用 if 塊還是循環(huán)?為什么?(答案)

  wait方法應(yīng)該在循環(huán)調(diào)用,因?yàn)楫?dāng)線程獲取到 CPU 開始執(zhí)行的時(shí)候,其他條件可能還沒有滿足,所以在處理前,循環(huán)檢測(cè)條件是否滿足會(huì)更好。下面是一段標(biāo)準(zhǔn)的使用 wait 和 notify 方法的代碼:

  The standard idiom for using the wait method

  參見 Effective Java 第 69 條,獲取更多關(guān)于為什么應(yīng)該在循環(huán)中來調(diào)用 wait 方法的內(nèi)容。

  不能錯(cuò)過的'面向?qū)ο蟮膉ava筆試題 篇2

  一、選擇題:(每題3分,共20題)

  1. 下面關(guān)于類的說法錯(cuò)誤的一項(xiàng)是( )。

  A、類屬于Java語言中的復(fù)合數(shù)據(jù)類型 中的基本結(jié)構(gòu)單位

  C、類是同種對(duì)象的集合和抽象

  2. 如下所示代碼:

  public class Test05_01{ }

  private float a;

  public static void m ( ){ }

  D、類就是對(duì)象 B、對(duì)象是Java語言

  如何使成員變量a被方法m( )訪問( )。

  A、將private float a改為public float a

  B、將private float a改為static float a

  C、將private float a改為protected float a

  D、將private float a改為float a

  3. 下面關(guān)于類的說法有誤的一項(xiàng)是( )。

  A、類就是對(duì)象 抽象

  C、類屬于Java語言中的復(fù)合數(shù)據(jù)類型 中的基本結(jié)構(gòu)單位

  D、對(duì)象是Java語言

  B、類是同種對(duì)象的集合和

  關(guān)于Java面向?qū)ο蟮目荚囶}。

  4. 下列哪種類成員修飾符修飾的變量只能在本類中被訪問( )。

  A、protected

  B、default

  C、private

  D、public

  5. 下面關(guān)于方法的說法不正確的一項(xiàng)是( )。

  A、類的私有方法不能被其他類直接訪問。

  B、Java中的構(gòu)造方法名必須和類名相同。

  C、方法體是對(duì)方法的實(shí)現(xiàn),包括變量聲明和合法語句。

  D、如果一個(gè)類定義了構(gòu)造方法,也可以用該類的默認(rèn)構(gòu)造方法。

  6. 下列程序的運(yùn)行結(jié)果是( )。

  public class Test05_02 extends x{ }

  B、編譯錯(cuò)誤

  D、運(yùn)行成功,但不輸出

  int ab(){ }

  public static void main(String[] args) { }

  Test05_02 b = new Test05_02 (); b.ab(); static int a = 10; a++;

  System.out.println(a);

  A、10 C、11

  關(guān)于Java面向?qū)ο蟮目荚囶}。

  7. 下面關(guān)于構(gòu)造方法的描述有誤的一項(xiàng)是( )。

  A、構(gòu)造方法必須要有返回類型的聲明。

  B、構(gòu)造方法和類中的方法很相似:有訪問修飾符、方法名、參數(shù)列表、方法體。

  C、構(gòu)造方法當(dāng)成是一個(gè)特殊的方法,這個(gè)方法的作用就是用來產(chǎn)生一個(gè)類的實(shí)例。

  D、構(gòu)造方法的方法名必須和類名完全相同。

  8. 下列關(guān)于對(duì)象的說法錯(cuò)誤的一項(xiàng)是( )。

  A、對(duì)象成員是指一個(gè)對(duì)象所擁有的屬性或可以調(diào)用的方法。

  B、由類生成對(duì)象,稱為類的實(shí)例化過程,一個(gè)實(shí)例可以是多個(gè)對(duì)象。

  C、在創(chuàng)建類的對(duì)象時(shí),需要使用Java的new關(guān)鍵字。

  D、在Java中要引用對(duì)象的屬性和方法,需要使用“.”操作符來實(shí)現(xiàn)。

  9. 類的方法可以不包含下面哪一項(xiàng)( )。

  A、方法的參數(shù) C、方法的名稱

  B、方法的主體 D、方法的返回值類型

  10. 下面關(guān)于變量說法錯(cuò)誤的一項(xiàng)是( )。

  A、對(duì)于成員變量,我們可以不需要手動(dòng)的顯式初始化,因?yàn)橄到y(tǒng)在創(chuàng)建一個(gè)新的對(duì)象的時(shí)候,會(huì)給這些成員變量賦一個(gè)初值。

  B、對(duì)于引用變量,它的默認(rèn)初值是null而非相應(yīng)的引用類型對(duì)象,也就是說,它并不是指向任何對(duì)象的首地址。

  關(guān)于Java面向?qū)ο蟮目荚囶}。

  C、系統(tǒng)會(huì)對(duì)全局(成員)變量指定默認(rèn)的值,也會(huì)對(duì)局部變量賦值。

  D、局部變量在使用之前,必須對(duì)其進(jìn)行顯式初始化。

  11. 下面的各種數(shù)據(jù)類型的默認(rèn)初始化值表示錯(cuò)誤的一項(xiàng)是( )。

  A、int是0

  B、float 是0.0

  C、char 是‘u0000’

  D、boolean是false

  12. 下面哪一項(xiàng)不是Java的訪問控制符( )。

  A、public

  B、private

  C、void

  D、protected

  13. Java語言類間的繼承關(guān)系和接口間的繼承關(guān)系分別是( )。

  A、單繼承、不能繼承

  C、多重繼承、單繼承

  B、多重繼承、不能繼承

  D、單繼承、多重繼承

  14. 如果局部變量和成員變量同名,如何在局部變量作用域內(nèi)引用成

  員變量( )。

  A、不影響,系統(tǒng)可以自己區(qū)分

  B、不能引用,必須改名,使它們的名稱不相同

  C、在成員變量前加this,使用this訪問該成員變量

  D、在成員變量前加super,使用super訪問該成員變量

  15. 下列關(guān)于內(nèi)部類說法錯(cuò)誤的一項(xiàng)是( )。

  A、內(nèi)部類可用private或protected修飾符修飾

  B、內(nèi)部類不能有自己的成員方法和成員變量

  C、除static內(nèi)部類外,不能在類內(nèi)聲明static成員

  D、內(nèi)部類可以作為其他類的成員,而且可訪問它所在的類的成員

  16. 定義外部類時(shí)不能用到的關(guān)鍵字是( )。

  A、public

  B、abstract

  C、protected

  D、final

  17. 下面說法不正確的一項(xiàng)是( )。

  A、abstract和final能同時(shí)修飾一個(gè)類

  B、抽象類既可以做父類,也可以做子類

  C、聲明為final類型的方法不能在其子類中重新定義

  D、抽象類中可以沒有抽象方法,有抽象方法的類一定是抽象類或接口

  18. 有一個(gè)類B,下面為其構(gòu)造方法的聲明,正確的是( )。

  A、void b(int x) {} C、B(int x) {}

  B、void B(int x) {}

  D、b(int x) {}

  19. 區(qū)分類中重載方法的依據(jù)是( )。

  A、不同的形參名稱

  B、返回值的類型不同

  D、訪問權(quán)限不同

  C、形參列表的類型和順序

  20. 下面說法錯(cuò)誤的一項(xiàng)是( )。

  A、在Java中,為了節(jié)省創(chuàng)建對(duì)象的時(shí)間和空間,對(duì)于一些常用的方法,會(huì)將它在內(nèi)存中緩存起來。

  B、在JDK中針對(duì)各種基本數(shù)據(jù)類型分別定義相應(yīng)的引用類型,稱之為封裝類(Wrapper Classes)。

  C、JDK5.0中,引入了自動(dòng)裝箱/拆箱功能,可以讓我們方便的在簡(jiǎn)單類型和對(duì)應(yīng)的封裝類型數(shù)據(jù)之間轉(zhuǎn)換。

【不能錯(cuò)過的關(guān)于面向?qū)ο蟮膉ava筆試題】相關(guān)文章:

不能錯(cuò)過的風(fēng)景作文5篇01-25

不能錯(cuò)過的英語啟蒙讀后感01-22

錯(cuò)過應(yīng)錯(cuò)過的告白10-20

不能錯(cuò)過的英語啟蒙讀后感范文(通用5篇)03-02

關(guān)于筆的的文學(xué)常識(shí)04-30

錯(cuò)過的時(shí)間01-27

不應(yīng)錯(cuò)過的風(fēng)景作文,不該錯(cuò)過的風(fēng)景01-25

關(guān)于未來的筆想象作文10篇03-01

曾經(jīng)錯(cuò)過的初戀的句子03-18

曾經(jīng)錯(cuò)過的初戀的句子03-17