<dfn id="w48us"></dfn><ul id="w48us"></ul>
  • <ul id="w48us"></ul>
  • <del id="w48us"></del>
    <ul id="w48us"></ul>
  • 瞬聯(lián)java面試題

    時(shí)間:2020-11-10 15:42:58 面試問(wèn)題 我要投稿

    瞬聯(lián)java面試題

      1)能說(shuō)一下java的反射(reflection)機(jī)制嗎?(瞬聯(lián))

    瞬聯(lián)java面試題

      開(kāi)放性和原因連接(causally-connected)是反射系統(tǒng)的兩大基本要素

      2)抽象類和接口有什么區(qū)別?(瞬聯(lián))

      1.abstract class 在 Java 語(yǔ)言中表示的是一種繼承關(guān)系,一個(gè)類只能使用一次繼承關(guān)系。但是,一個(gè)類卻可以實(shí)現(xiàn)多個(gè)interface。

      2.在abstract class 中可以有自己的數(shù)據(jù)成員,也可以有非abstarct的成員方法,而在interface中,只能夠有靜態(tài)的不能被修改的數(shù)據(jù)成員(也就是必須是static final的,不過(guò)在 interface中一般不定義數(shù)據(jù)成員),所有的成員方法都是abstract的。

      3.abstract class和interface所反映出的設(shè)計(jì)理念不同。其實(shí)abstract class表示的是"is-a"關(guān)系,interface表示的是"like-a"關(guān)系。

      4.實(shí)現(xiàn)抽象類和接口的類必須實(shí)現(xiàn)其中的所有方法。抽象類中可以有非抽象方法。接口中則不能有實(shí)現(xiàn)方法。

      5.接口中定義的變量默認(rèn)是public static final 型,且必須給其初值,所以實(shí)現(xiàn)類中不能重新定義,也不能改變其值。

      6.抽象類中的變量默認(rèn)是 friendly 型,其值可以在子類中重新定義,也可以重新賦值。

      7.接口中的方法默認(rèn)都是 public,abstract 類型的。

      3)transient和volatile是java關(guān)鍵字嗎?(瞬聯(lián))

      如果用transient聲明一個(gè)實(shí)例變量,當(dāng)對(duì)象存儲(chǔ)時(shí),它的值不需要維持。例如:

      class T

      {

      transient int a; //不需要維持

      int b; //需要維持

      }

      這里,如果T類的一個(gè)對(duì)象寫入一個(gè)持久的存儲(chǔ)區(qū)域,a的內(nèi)容不被保存,但b的將被保存。

      volatile修飾符告訴編譯器被volatile修飾的變量可以被程序的其他部分改變。在多線程程序中,有時(shí)兩個(gè)或更多的線程共享一個(gè)相同的實(shí)例變量。考慮效率問(wèn)題,每個(gè)線程可以自己保存該共享變量的私有拷貝。實(shí)際的變量副本在不同的時(shí)候更新,如當(dāng)進(jìn)入synchronized方法時(shí)。 用strictfp修飾類或方法,可以確保浮點(diǎn)運(yùn)算(以及所有切斷)正如早期的Java版本那樣準(zhǔn)確。切斷只影響某些操作的指數(shù)。當(dāng)一個(gè)類被strictfp修飾,所有的方法自動(dòng)被strictfp修飾。

      strictfp的意思是FP-strict,也就是說(shuō)精確浮點(diǎn)的意思。在Java虛擬機(jī)進(jìn)行浮點(diǎn)運(yùn)算時(shí),如果沒(méi)有指定strictfp關(guān)鍵字時(shí),Java的編譯器以及運(yùn)行環(huán)境在對(duì)浮點(diǎn)運(yùn)算的表達(dá)式是采取一種近似于我行我素的行為來(lái)完成這些操作,以致于得到的結(jié)果往往無(wú)法令你滿意。而一旦使用了strictfp來(lái)聲明一個(gè)類、接口或者方法時(shí),那么所聲明的范圍內(nèi)Java的編譯器以及運(yùn)行環(huán)境會(huì)完全依照浮點(diǎn)規(guī)范IEEE-754來(lái)執(zhí)行。因此如果你想讓你的浮點(diǎn)運(yùn)算更加精確,而且不會(huì)因?yàn)椴煌挠布脚_(tái)所執(zhí)行的結(jié)果不一致的話,那就請(qǐng)用關(guān)鍵字strictfp。

      你可以將一個(gè)類、接口以及方法聲明為strictfp,但是不允許對(duì)接口中的方法以及構(gòu)造函數(shù)聲明strictfp關(guān)鍵字,例如下面的代碼:

      strictfp interface A {}

      public strictfp class FpDemo1 {

      strictfp void f() {}

      }

      2. 錯(cuò)誤的使用方法

      interface A {

      strictfp void f();

      }

      public class FpDemo2 {

      strictfp FpDemo2() {}

      }

      一旦使用了關(guān)鍵字strictfp來(lái)聲明某個(gè)類、接口或者方法時(shí),那么在這個(gè)關(guān)鍵字所聲明的范圍內(nèi)所有浮點(diǎn)運(yùn)算都是精確的,符合IEEE-754規(guī)范

      的。例如一個(gè)類被聲明為strictfp,那么該類中所有的方法都是strictfp的。

    4)在java中怎樣實(shí)現(xiàn)多線程?(瞬聯(lián))

    extends Thread

    implement Runnable

     

    方法一:繼承 Thread 類,覆蓋方法 run(),我們?cè)趧?chuàng)建的 Thread 類的子類中重寫 run() ,加入線程所要執(zhí)行的代碼即可。下面是一個(gè)例子:

      public class MyThread extends Thread
      
    {
       
    int count= 1, number;
       
    public MyThread(int num)
       
    {
        
    number = num;
        
    System.out.println
        ("創(chuàng)建線程
    " + number);
       
    }
       
    public void run() {
        
    while(true) {
         
    System.out.println
          ("線程 " + number + ":計(jì)數(shù)
    " + count);
         
    if(++count== 6) return;
        
    }
      
    }
      
    public static void main(String args[])
      
    {
       for(int i = 0;i
    5; i++) new MyThread(i+1).start();
      
    }
     
    }
      

      這種方法簡(jiǎn)單明了,符合大家的習(xí)慣,但是,它也有一個(gè)很大的缺點(diǎn),那就是如果我們的類已經(jīng)從一個(gè)類繼承(如小程序必須繼承自 Applet 類),則無(wú)法再繼承 Thread 類,這時(shí)如果我們又不想建立一個(gè)新的類,應(yīng)該怎么辦呢?

      我們不妨來(lái)探索一種新的方法:我們不創(chuàng)建Thread類的子類,而是直接使用它,那么我們只能將我們的方法作為參數(shù)傳遞給 Thread 類的實(shí)例,有點(diǎn)類似回調(diào)函數(shù)。但是 Java 沒(méi)有指針,我們只能傳遞一個(gè)包含這個(gè)方法的類的實(shí)例。

      那么如何限制這個(gè)類必須包含這一方法呢?當(dāng)然是使用接口!(雖然抽象類也可滿足,但是需要繼承,而我們之所以要采用這種新方法,不就是為了避免繼承帶來(lái)的'限制嗎?)

      Java 提供了接口 java.lang.Runnable 來(lái)支持這種方法。

      方法二:實(shí)現(xiàn) Runnable 接口

      Runnable接口只有一個(gè)方法run(),我們聲明自己的類實(shí)現(xiàn)Runnable接口并提供這一方法,將我們的線程代碼寫入其中,就完成了這一部分的任務(wù)。但是Runnable接口并沒(méi)有任何對(duì)線程的支持,我們還必須創(chuàng)建Thread類的實(shí)例,這一點(diǎn)通過(guò)Thread類的構(gòu)造函數(shù) public Thread(Runnable target);來(lái)實(shí)現(xiàn)。下面是一個(gè)例子:

      public class MyThread implements Runnable
      
    {
       
    int count= 1, number;
       
    public MyThread(int num)
       
    {
        
    number = num;
        System.out.println("創(chuàng)建線程
    " + number);
       
    }
       
    public void run()
       
    {
        
    while(true)
        
    {
         
    System.out.println
         ("線程 " + number + ":計(jì)數(shù)
    " + count);
         
    if(++count== 6) return;
        
    }
       
    }
       
    public static void main(String args[])
       
    {
        for(int i = 0; i
    5;i++) new Thread(new MyThread(i+1)).start();
       
    }
      
    }
      

      嚴(yán)格地說(shuō),創(chuàng)建Thread子類的實(shí)例也是可行的,但是必須注意的是,該子類必須沒(méi)有覆蓋 Thread 類的 run 方法,否則該線程執(zhí)行的將是子類的 run 方法,而不是我們用以實(shí)現(xiàn)Runnable 接口的類的 run 方法,對(duì)此大家不妨試驗(yàn)一下。

      使用 Runnable 接口來(lái)實(shí)現(xiàn)多線程使得我們能夠在一個(gè)類中包容所有的代碼,有利于封裝,它的缺點(diǎn)在于,我們只能使用一套代碼,若想創(chuàng)建多個(gè)線程并使各個(gè)線程執(zhí)行不同的代碼,則仍必須額外創(chuàng)建類,如果這樣的話,在大多數(shù)情況下也許還不如直接用多個(gè)類分別繼承 Thread 來(lái)得緊湊。

    【瞬聯(lián)java面試題】相關(guān)文章:

    java基礎(chǔ)面試題201711-13

    華為Java面試題精選10-24

    高級(jí)Java面試題匯總09-12

    2016年JAVA面試題11-07

    精選Java線程面試題06-15

    2017年java華為面試題08-20

    經(jīng)典的Java基礎(chǔ)面試題08-22

    JAVA經(jīng)典面試題目匯總10-12

    java程序員面試題08-27

    最新java面試題及答案08-20

    主站蜘蛛池模板: japanese乱人伦精品| 国产一区二区三精品久久久无广告| 9re热国产这里只有精品| 亚洲精品无码鲁网中文电影| 国产激情精品一区二区三区| 国产精品久久久久AV福利动漫| 欧美XXXX黑人又粗又长精品| 思思99热在线观看精品| 久久99精品国产麻豆| 老司机午夜网站国内精品久久久久久久久| 91精品在线看| 无码国产乱人伦偷精品视频| 久久国产精品二国产精品| 中文字幕精品一区影音先锋| 国产成人vr精品a视频| 亚洲国产精品福利片在线观看| 欧美国产成人久久精品| 国产精品青青在线观看爽香蕉| 国产精品久久久久天天影视| 国产亚洲精品精华液| 熟妇人妻VA精品中文字幕| 亚洲午夜精品第一区二区8050| 国内精品视频九九九九| 99久久精品免费| 国产午夜精品视频| 99精品国产丝袜在线拍国语| 精品亚洲麻豆1区2区3区| 中文字幕久精品免费视频| 午夜精品久久久内射近拍高清 | 亚洲第一区精品日韩在线播放| 国产精品秘入口福利姬网站 | 午夜精品在线观看| 国产精品臀控福利在线观看| 99精品国产在热久久| 99国产精品久久| 久久99国产精品久久久| 国产精品爽黄69天堂a| 老司机69精品成免费视频| 亚洲精品国产成人99久久| 99re66在线观看精品免费| 国产香蕉国产精品偷在线|