• <output id="aynwq"><form id="aynwq"><code id="aynwq"></code></form></output>

    <mark id="aynwq"><option id="aynwq"></option></mark>
  • <mark id="aynwq"><option id="aynwq"></option></mark><label id="aynwq"><dl id="aynwq"></dl></label>
  • 學習啦 > 創業指南 > 職場 > 求職面試技巧 > java面試一般會問什么

    java面試一般會問什么

    時間: 稱紅1024 分享

    java面試一般會問什么

      面試是通過書面或面談的形式來考察一個人的工作能力與否,物以類聚,通過面試可以初步判斷應聘者是否可以融入自己的團隊。那么java面試一般會問什么呢?下面是學習啦小編給大家整理的java面試一般會問什么,供大家參閱!

      java面試一般會問什么

      1.java是否會出現內存溢出?如何解決?

      內存溢出是指應用系統中存在無法回收的內存或使用的內存過多,最終使得程序運行要用到的內存大于虛擬機能提供的最大內存。為了解決Java中內存溢 出問題,我們首先必須了解Java是如何管理內存的。Java的內存管理就是對象的分配和釋放問題。在Java中,內存的分配是由程序完成的,而內存的釋 放是由垃圾收集器(Garbage Collection,GC)完成的,程序員不需要通過調用GC函數來釋放內存,因為不同的JVM實現者可能使用不同的算法管理GC,有的是內存使用到達 一定程度時,GC才開始工作,也有定時執行的,有的是中斷式執行GC。但GC只能回收無用并且不再被其它對象引用的那些對象所占用的空間。Java的內存 垃圾回收機制是從程序的主要運行對象開始檢查引用鏈,當遍歷一遍后發現沒有被引用的孤立對象就作為垃圾回收。

      引起內存溢出的原因有很多種,常見的有以下幾種:

      l 內存中加載的數據量過于龐大,如一次從數據庫取出過多數據;

      l 集合類中有對對象的引用,使用完后未清空,使得JVM不能回收;

      l 代碼中存在死循環或循環產生過多重復的對象實體;

      l 使用的第三方軟件中的BUG;

      l 啟動參數內存值設定的過小;

      3.內存溢出的解決

      內存溢出雖然很棘手,但也有相應的解決辦法,可以按照從易到難,一步步的解決。

      第一步,就是修改JVM啟動參數,直接增加內存。這一點看上去似乎很簡單,但很容易被忽略。JVM默認可以使用的內存為64M,Tomcat默認可 以使用的內存為128MB,對于稍復雜一點的系統就會不夠用。在某項目中,就因為啟動參數使用的默認值,經常報“OutOfMemory”錯誤。因此,- Xms,-Xmx參數一定不要忘記加。

      第二步,檢查錯誤日志,查看“OutOfMemory”錯誤前是否有其它異常或錯誤。在一個項目中,使用兩個數據 庫連接,其中專用于發送短信的數據庫連接使用DBCP連接池管理,用戶為不將短信發出,有意將數據庫連接用戶名改錯,使得日志中有許多數據庫連接異常的日 志,一段時間后,就出現“OutOfMemory”錯誤。經分析,這是由于DBCP連接池BUG引起的,數據庫連接不上后,沒有將連接釋放,最終使得 DBCP報“OutOfMemory”錯誤。經過修改正確數據庫連接參數后,就沒有再出現內存溢出的錯誤。

      查看日志對于分析內存溢出是非常重要的,通過仔細查看日志,分析內存溢出前做過哪些操作,可以大致定位有問題的模塊。

      第三步,安排有經驗的編程人員對代碼進行走查和分析,找出可能發生內存溢出的位置。重點排查以下幾點:

      l 檢查代碼中是否有死循環或遞歸調用。

      l 檢查是否有大循環重復產生新對象實體。

      l 檢查對數據庫查詢中,是否有一次獲得全部數據的查詢。一般來說,如果一次取十萬條記錄到內存,就可能引起內存溢出。這個問題比較隱蔽,在上線前,數據庫中 數據較少,不容易出問題,上線后,數據庫中數據多了,一次查詢就有可能引起內存溢出。因此對于數據庫查詢盡量采用分頁的方式查詢。

      l 檢查List、MAP等集合對象是否有使用完后,未清除的問題。List、MAP等集合對象會始終存有對對象的引用,使得這些對象不能被GC回收。

      第四步,使用內存查看工具動態查看內存使用情況。某個項目上線后,每次系統啟動兩天后,就會出現內存溢出的錯誤。這種情況一般是代碼中出現了緩慢的內存泄漏,用上面三個步驟解決不了,這就需要使用內存查看工具了。

      原因有很多種,比如:

      1.數據量過于龐大;死循環 ;靜態變量和靜態方法過多;遞歸;無法確定是否被引用的對象;

      2.虛擬機不回收內存(內存泄漏);

      說白了就是程序運行要用到的內存大于虛擬機能提供的最大內存就發生內存溢出了。 內存溢出的問題要看業務和系統大小而定,對于某些系統可能內存溢出不常見,但某些系統還是很常見的解決的方法,

      一個是優化程序代碼,如果業務龐大,邏輯復雜,盡量減少全局變量的引用,讓程序使用完變量的時候釋放該引用能夠讓垃圾回收器回收,釋放資源。

      二就是物理解決,增大物理內存,然后通過:-Xms256m -Xmx256m -XX:MaxNewSize=256m -XX:MaxPermSize=256m的修改

      2.說說JVM內存組成

      簡單的說 java中的堆和棧

      java把內存分兩種:一種是棧內存,另一種是堆內存

      1。在函數中定義的基本類型變量和對象的引用變量都在函數的棧內存中分配;

      2。堆內存用來存放由 new創建的對象和數組

      在函數(代碼塊)中定義一個變量時, java就在棧中為這個變量分配內存空間,當超過變量的作用域后, java會自動釋放掉為該變量所分配的內存空間;在堆中分配的內存由 java虛擬機的自動垃圾回收器來管理

      堆的優勢是可以動態分配內存大小,生存期也不必事先告訴編譯器,因為它是在運行時動態分配內存的。缺點就是要在運行時動態分配內存,存取速度較慢;

      棧的優勢是存取速度比堆要快,缺點是存在棧中的數據大小與生存期必須是確定的無靈活 性。

      java 堆分為三個區: New 、 Old 和 Permanent

      GC 有兩個線程:

      新創建的對象被分配到 New 區,當該區被填滿時會被 GC 輔助線程移到 Old 區,當 Old 區也填滿了會觸發 GC 主線程遍歷堆內存里的所有對象。 Old 區的大小等于 Xmx 減去 -Xmn

      java棧存放

      棧調整:參數有 +UseDefaultStackSize -Xss256K,表示每個線程可申請 256k的棧空間

      每個線程都有他自己的 Stack

      3、”static”關鍵字是什么意思?Java中是否可以覆蓋(override)一個private或者是static的方法?

      “static”關鍵字表明一個成員變量或者是成員方法可以在沒有所屬的類的實例變量的情況下被訪問。

      Java中static方法不能被覆蓋,因為方法覆蓋是基于運行時動態綁定的,而static方法是編譯時靜態綁定的。static方法跟類的任何實例都不相關,所以概念上不適用。

      4、是否可以在static環境中訪問非static變量?

      static變量在Java中是屬于類的,它在所有的實例中的值是一樣的。當類被Java虛擬機載入的時候,會對static變量進行初始化。如果你的代碼嘗試不用實例來訪問非static的變量,編譯器會報錯,因為這些變量還沒有被創建出來,還沒有跟任何實例關聯上。

      5.JDK和JRE的區別是什么?

      Java Development Kit,Java開發包 jre ---Java Runtime Environment java運行環境

      Java運行時環境(JRE)是將要執行Java程序的Java虛擬機。它同時也包含了執行applet需要的瀏覽器插件。Java開發工具包 (JDK)是完整的Java軟件開發包,包含了JRE,編譯器和其他的工具(比如:JavaDoc,Java調試器),可以讓開發者開發、編譯、執行 Java應用程序。

      面試的形式

      面試有很多形式,依據面試的內容與要求,大致可以分為以下幾種:

      問題式

      由招聘者按照事先擬訂的提綱對求職者進行發問,請予回答。其目的在于觀察求職者在特殊環境中的表現,考核其知識與業務,判斷其解決問題的能力,從而獲得有關求職者的第一手資料。

      壓力式

      由招聘者有意識地對求職者施加壓力,就某一問題或某一事件作一連串的發問,詳細具體且追根問底,直至無以對答。此方式主要觀察求職者在特殊壓力下的反應、思維敏捷程度及應變能力。

      隨意式

      即招聘者與求職者海闊天空、漫無邊際地進行交談,氣氛輕松活躍,無拘無束,招聘者與求職者自由發表言論,各抒己見。此方式的目的為:于閑聊中觀察應試者談吐、舉止、知識、能力、氣質和風度,對其做全方位的綜合素質考察。

      情景式

      由招聘者事先設定一個情景,提出一個問題或一項計劃,請求職者進入角色模擬完成,其目的在于考核其分析問題、解決問題的能力。

      綜合式

      招聘者通過多種方式考察求職者的綜合能力和素質,如用外語與其交談,要求即時作文,或即興演講,或要求寫一段文字,甚至操作一下計算機等等,以考察其外語水平,文字能力,書法及口才表達等各方面的能力。

      以上是根據面試種類所做的大致劃分,在實際面試過程中,招聘者可能采取一種或同時采取幾種面試方式,也可能就某一方面的問題對求職者進行更廣泛更深刻即深層次的考察,其目的在于能夠選拔出優秀的應聘者。

    java面試一般會問什么相關文章:

    1.java面試官如何提問

    2.java面試官面試技巧

    3.java面試時自我介紹

    4.應屆生java面試自我介紹演講稿

    5.有關java應屆生的求職面試技巧

    3629368 主站蜘蛛池模板: 97香蕉久久夜色精品国产| 免费a级毛片视频| www.插插插| 欧美成人a人片| 国产丰满乱子伦无码专区| 久久精品国产久精国产一老狼| 欧美乱妇高清无乱码亚洲欧美| 日产亚洲一区二区三区| 人妖互交videossex| 黄色福利小视频| 局长的又长又粗慧芳| 免费看一级黄色毛片| 2021久久精品国产99国产精品| 日本亚洲欧美在线视观看| 伊人久久大香线蕉久久婷婷| 狠狠色香婷婷久久亚洲精品| 少妇被又大又粗又爽毛片久久黑人 | 无码人妻久久一区二区三区免费| 亚洲风情亚aⅴ在线发布| 鸣人向纲手开炮| 日本免费福利视频| 亚洲色成人WWW永久在线观看| 黑人巨大sv张丽在线播放| 日韩AV无码一区二区三区不卡 | wc女厕所散尿hd| 曰本女同互慰高清在线观看| 免费成人在线网站| 99精品众筹模特私拍在线| 女人张开腿让男人桶个爽| 久热re这里只有精品视频| 看免费毛片天天看| 国产制服丝袜在线观看| 99爱在线精品免费观看| 日本xxxx色视频在线播放| 国产免费女女脚奴视频网| writeas朱志鑫| 日本免费人成视频播放| 亚洲欧美日韩成人高清在线一区| 老头天天吃我奶躁我的视频| 女人18毛片一级毛片在线| 久久天天躁狠狠躁夜夜avai|