久久综合丝袜日本网手机版,日韩欧美中文字幕在线三区,亚洲精品国产品国语在线,极品在线观看视频婷婷

      <small id="aebxz"><menu id="aebxz"></menu></small>
    1. 最新Java基礎(chǔ)面試題

      時間:2022-07-02 11:39:46 面試 我要投稿
      • 相關(guān)推薦

      最新Java基礎(chǔ)面試題

      Java基礎(chǔ)面試題(一)

      最新Java基礎(chǔ)面試題

      1.面向?qū)ο蟮奶卣?

      1)抽象

      抽象就是忽略一個主題中與當前目標無關(guān)的那些方面,一邊更充分地注意與目標有關(guān)的方面。抽象并不打算了解全部問題,而只是選擇其中的一部分,暫不用部分細節(jié)。抽象包括兩個方面,一是過程抽象,二是數(shù)據(jù)抽象。

      2)繼承

      在定義和實現(xiàn)一個類的時候,可以在一個已經(jīng)存在的類的基礎(chǔ)之上來進行,把這個已經(jīng)存在的類所定義的內(nèi)容作為自己的內(nèi)容,并可以加入若干新的內(nèi)容,或修改原來的方法使之更適合特殊的需要,這個就是繼承。繼承是子類自動貢獻父類數(shù)據(jù)和方法的機制,這是類之間的一種關(guān)系,提高了軟件的可重用性和可擴展性。

      3)封裝

      封裝是把過程和數(shù)據(jù)包圍起來,對數(shù)據(jù)的訪問只能通過已定義的接口。

      4)多態(tài)

      多態(tài)是指程序中所定義的引用變量所指向的具體類型和通過該引用變量發(fā)出的方法調(diào)用在編程時并不確定,而是在程序運行期間才確定,即一個引用變量到底會指向哪個類的實例對象,該引用變量發(fā)出的方法調(diào)用到底是哪個類中實現(xiàn)的方法,必須在程序運行期間才能決定。

      2.Java的基本數(shù)據(jù)類型

      byte, short, int, long, float, double, char, boolean

      3.int和Integer有什么區(qū)別

      Java提供兩種不同類型:引用類型和原始類型。int是Java的原始數(shù)據(jù)類型,Integer是Java為int提供的封裝類型。

      原始類型 封裝類

      boolean Boolean

      char Character

      byte Byte

      short Short

      int Integer

      long Long

      float Float

      double Double

      封裝類型的實例變量的缺省值為null,而原始類型實例變量的缺省值跟他們的類型有關(guān)。

      4.String和StringBuffer的區(qū)別

      String類用來表示那些創(chuàng)建后就不會再改變的字符串。

      StringBuffer類用來表示內(nèi)容可變的字符串,并鼻孔了修改底層字符串的方法,當我們進行字符串拼接時使用。

      5.StringBuffer和StringBuilder的區(qū)別

      它們都是表示可變的字符串。StringBuffer是線程安全的,StringBulider是非線程安全的。兩者方法基本相同,優(yōu)先采用StringBuilder,在大多數(shù)的時候比StringBuffer快。StringBuilder一般使用在方法內(nèi)部來完成字符串拼接功能,StringBuffer要用來全部變量中。

      6.運行時異常與一般異常有何異同

      Java一共了兩類主要的異常:runtime exception和checked exception。我們經(jīng)常遇到的IO異常以及SQL異常是checked exception,對于這些非運行時異常必須進行捕獲或拋出。但并不要求對運行時異常進行處理,如NullPointerException,出現(xiàn)運行時異常后,系統(tǒng)會把異常一直往上層拋,一直遇到處理代碼塊或Java虛擬機處理。運行時異常表示虛擬機的通常操作中可能遇到的異常,是一種常見運行錯誤。

      7.ArrayList,Vector,LinkedList的存儲性能和特性

      ArrayList和Vector都是使用數(shù)組方式存儲數(shù)據(jù),允許直接按序號索引元素,但是插入元素要涉及數(shù)組元素移動等內(nèi)存操作,所以索引數(shù)據(jù)快而插入數(shù)據(jù)慢,Vector由于使用了synchronized方法(線程安全),通常性能上較ArrayList差。

      LinkedList使用雙向鏈表實現(xiàn)存儲,按序號索引數(shù)據(jù)需要進行前向或后向遍歷,但是插入數(shù)據(jù)時只需記錄本項的前后項即可,所以插入速度較快。

      8.Collection和Collections的區(qū)別

      Collection是集合類的上級接口,繼承于他的接口主要有Set和List。

      Collections是針對集合類的一個幫助類,他提供一系列靜態(tài)方法實現(xiàn)對各種集合的搜索、排序、線程安全化等操作。

      9.&和&&的區(qū)別

      &和&&都有邏輯運算符and的功能,&還可以用作位運算符,&&具有短路功能,即如果第一個表達式為false,則不再計算第二個表達式的值。

      10.HashMap和Hashtable的區(qū)別

      HashMap是非線程安全的,Hashtable是線程安全的。

      HashMap允許將null作為一個entry的key或者value,而Hashtable不允許。

      11.final,finally,finalize的區(qū)別

      final用于聲明屬性,方法和類,分別表示屬性不可變,方法不可覆蓋,類不可繼承。

      finally是異常處理語句結(jié)構(gòu)的一部分,表示總是會執(zhí)行。

      finalize是Object類的一個方法,在垃圾收集器執(zhí)行的時候會調(diào)用被回收對象的此方法。

      12.sleep()和wait()有什么區(qū)別

      sleep()是Thread類的方法,在指定的毫秒數(shù)內(nèi)讓正在執(zhí)行的線程暫停執(zhí)行,把執(zhí)行機會讓給其他線程,到指定時間會自動恢復(fù)。調(diào)用sleep不會釋放對象鎖。

      wait()是Object類的方法,對此對象調(diào)用wait方法導(dǎo)致本線程放棄對象鎖,進入等待此對象的等待鎖定池,只有針對此對象發(fā)出notify/notifyAll方法后,本線程才進入對象鎖定池準備獲得對象鎖進入運行狀態(tài)。

      13.Overload和Override的區(qū)別。Overload的方法可以改變返回值的類型嗎?

      方法的重寫Override和重載Overload是Java多態(tài)性的不同表現(xiàn)。重寫Override是父類與子類之間多態(tài)性的一種表現(xiàn),重載Overload是一個類中多態(tài)性的一種表現(xiàn)。

      方法覆蓋要求參數(shù)簽名必須一致,而辦法重載要求參數(shù)簽名必須不一致。

      方法覆蓋要求返回類型必須一致,而方法重載不做限制。

      方法覆蓋只能用于子類覆蓋父類的方法,方法重載用于同一個類的所有方法。

      方法覆蓋對方法的訪問權(quán)限和拋出的異常有特殊要求,而方法重載沒有限制。

      父類的一個方法只能被子類覆蓋一次,而一個方法在所在的類中可以被重載多次。

      方法重載可以改變返回值的類型。

      14.error和exception有什么區(qū)別?

      error表示恢復(fù)不是不可能但很困難的情況下的一種嚴重問題。比如內(nèi)存溢出,不可能指望程序能處理這樣的情況。

      exception表示一種設(shè)計或?qū)崿F(xiàn)問題。如果程序運行正常,從不會發(fā)生的情況。

      15.同步和異步有何異同,在什么情況下分別使用他們?舉例說明。

      如果數(shù)據(jù)將在線程間共享,例如正在寫的數(shù)據(jù)以后可能被另一個線程讀到,或者正在讀的數(shù)據(jù)可能已經(jīng)被另一個線程寫過了,那么這些數(shù)據(jù)就是共享數(shù)據(jù),必須進行同步存取。

      當應(yīng)用程序在對象上調(diào)用了一個需要花費很長時間來執(zhí)行的方法,并且不希望讓程序等待方法的返回時,就應(yīng)該使用異步編程,在很多情況下采用異步途徑往往更有效率。

      16.abstract class和interface有什么區(qū)別?

      聲明方法的存在而不去實現(xiàn)他的類叫做抽象類。接口是抽象類的特例。接口中的所有方法都必須是抽象的,接口中的方法定義默認為public abstract。接口中的變量是全局常量,即public static修飾的。一個類可以實現(xiàn)多個接口,但只能繼承一個抽象類。

      17.heap和stack有什么區(qū)別

      棧是一種線型集合,添加和刪除的操作在同一端完成,按照后進先出的方式進行處理。堆是棧的一個組成元素。

      18. Static Nested Class和Inner Class的不同。

      Static Nestec Class是被聲明為靜態(tài)static的內(nèi)部類,它可以不依賴于外部類實例被實例化。而通常的內(nèi)部類需要在外部類實例化后才能實例化。

      19.JSP中動態(tài)include與靜態(tài)include的區(qū)別

      動態(tài)include用jsp:include動作實現(xiàn) 它總是檢查所含文件中的變化,適合用于包含動態(tài)頁面,并且可以帶參數(shù)。

      靜態(tài)include用include偽碼實現(xiàn),不會檢查所含文件的變化,適合包含靜態(tài)頁面<%@ include file="include.html" %>

      20.GC是什么?為什么要有GC?

      GC是垃圾回收的意思(Garbage Collection),內(nèi)存處理是編程人員出現(xiàn)問題的地方,忘記或者錯誤的內(nèi)存回收會導(dǎo)致程序或系統(tǒng)的不穩(wěn)定甚至崩潰,Java提供自動垃圾回收機制,自動檢測對象是否超過作用域從而達到自動回收內(nèi)存的目的,Java語言沒有提供釋放已分配內(nèi)存的顯式操作方法。

      21. short s1 = 1; s1 = s1 + 1;有什么錯? short s1 = 1; s1+=1; 有什么錯?

      short s1 = 1; s1 = s1 + 1;// s1+1運算結(jié)果是int型,需要強制轉(zhuǎn)換類型

      short s1 = 1; s1 += 1; // 可以正確編譯

      22.Math.round(11.5)等于多少?Math.round(-11.5)等于多少?

      Math.round(11.5)==12;Math.round(-11.5)==-11;

      round方法返回與參數(shù)最接近的長整數(shù),參數(shù)加1/2后求其floor。

      23.Java中有沒有g(shù)oto?

      goto在Java中作為保留字,但沒有被使用。

      24.String s = new String("xyz");創(chuàng)建了幾個對象?

      兩個

      25.接口是否可繼承接口?抽象類是否可實現(xiàn)(implements)接口?抽象類是否可繼承實體類(concrete class)?

      接口可以繼承接口。

      抽象類可以實現(xiàn)接口。

      抽象類可以繼承實體類,但前提是實體類必須有明確的構(gòu)造函數(shù)。

      26.List,Set,Map是否繼承自Collection接口?

      List,Set是,Map不是。

      <p< p="">


      【最新Java基礎(chǔ)面試題】相關(guān)文章:

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

      java 基礎(chǔ)面試題07-11

      java基礎(chǔ)面試題(2012完整版)07-13

      Java面試題07-12

      JAVA題庫:JAVA面試題目整理07-11

      求java面試題07-11

      java面試題307-13

      JAVA面試題(問題)07-13

      java面試題分析07-13

      JAVA面試題求解?07-13