java面試第三彈,java面試

來源:互聯網
上載者:User

java面試第三彈,java面試

1、兩電腦都在同一個網路環境中,A 電腦訪問不到 B 電腦的共用檔案。此現象可能是哪些方面所導致?怎樣處理?

    首先要確定是否在同一個工作群組內,然後看看是否有防火牆之類的,最後確定檔案是否已經共用

2.事務如何使用?寫個Demo實現在一個事物中,新增和更新同時操作?

  beginTrans 用於開啟一個事務,RollbackTrans用於復原事務,CommitTrans用於提交所有交易處理結果,即確認交易處理。

    dome:

create database aaa --建立一個資料庫gouse aaa    --選擇aaa這個資料庫create table bbb(    ID int not null primary key, --賬戶    moneys money --轉賬金額)用這個表建立一個預存程序:create procedure mon -- 建立預存程序,定義幾個變數@toId int, --接收轉賬的賬戶@fromId int, --轉出自己的賬戶@momeys money --轉出的金額asbegin tran --開始執行事務update bb set moneys=moneys-@momeys where ID=@fromID -執行的第一個操作,轉賬出錢,減去轉出的金額update bb set moneys=moneys+@momeys where ID=@toID --執行第二個操作,接受轉賬的金額,增加if @@error<>0 --判斷如果兩條語句有任何一條出現錯誤begin rollback tran –開始執行事務的復原,恢複的轉賬開始之前狀態return 0endgoelse   --如何兩條都執行成功begin commit tran 執行這個事務的操作return 1endgo

  oracle預設在執行語句時就開啟一個事務的,所以只需要rollback或commit就行了。

  3.位元組流與字元流的區別

     位元組流是最基本的,位元組流在操作的時候本身是不會用到緩衝區(記憶體)的,是與檔案本身直接操作的,而字元流在操作的時候是使用到緩衝區的

     位元組流可用於任何類型的對象,包括二進位對象,而字元流只能處理字元或者字串。

  4.什麼是java序列化,如何?java序列化?或者請解釋Serializable介面的作用。

     序列化就是一種用來處理物件流程的機制,所謂物件流程也就是將對象的內容進行流化。可以對流化後的對象進行讀寫操作。

     將需要被序列化的類實現Serializable介面,該介面沒有需要實現的方法,implements Serializable只是為了標註該對象是可被序列化的,然後使用一個輸出資料流(如:FileOutputStream)來構造一個ObjectOutputStream(物件流程)對象,接著,使用ObjectOutputStream對象的writeObject(Object obj)方法就可以將參數為obj的對象寫出(即儲存其狀態),要恢複的話則用輸入資料流。

  Serializable介面的作用:標註該對象是可被序列化的

   5.描述一下JVM載入class檔案的原理機制? 

    JVM(java虛擬機器)中類的裝載是由ClassLoader和它的子類來實現的,Java ClassLoader 是一個重要的Java運行時系統組件。它負責在運行時尋找和裝入類檔案的類。

   6.heap和stack有什麼區別。

      heap是堆,stack是棧

      stack的空間是由作業系統自動分配和釋放的,heap的空間是手動申請和釋放的, heap常用new關鍵詞來分配。

      stack空間有限,heap的空間是很大的自由區

    7.GC是什麼? 為什麼要有GC?

       GC是垃圾收集的意思(Gabage Collection),記憶體處理是編程人員容易出現問題的地方,忘記或者錯誤的記憶體回收會導致程式或系統的不穩定甚至崩潰,Java提供的GC功能可以自動監測對象是否超過範圍從而達到自動回收記憶體的目的,Java語言沒有提供釋放已指派記憶體的顯示操作方法。

    8.記憶體回收的優點和原理。並考慮2種回收機制。

       記憶體回收使Java程式員在編寫程式的時候不再需要考慮記憶體管理。因為有記憶體回收的機制,java中的對象不會再有“範圍”的概念。

       記憶體回收可以有效防止記憶體泄露,有效使用可以使用的記憶體

       記憶體回收通常是一個單獨低層級的線程

       回收機制有分代複製記憶體回收和標記記憶體回收,增量記憶體回收      (回答這四個就應該夠HR喝一壺了。)

     9.記憶體回收行程的基本原理是什嗎?記憶體回收行程可以馬上回收記憶體嗎?有什麼辦法主動通知虛擬機器進行記憶體回收?

    當程式員建立對象時,GC(記憶體回收行程)就開始監控這個對象的地址、大小以及使用方式。

    GC採用有向圖的方式記錄和管理堆(heap)中的所有對象

    可以。

        程式員可以手動執行System.gc();通知GC運行,但是根據java語言規範並不保證GC一定會執行

      10.什麼時候用assert。

     assertion(斷言),是在軟體開發過程中常用的調試方式。很多語言都是支援這種機制

         它是程式中的一條語句,對一個boolean進行檢查。

    一個正確程式必須保證這個boolean運算式值是true;如果該值是false,說明程式已經處於不正確狀態下。系統將給處警告或者退出

         assertion的檢查通常是關閉的。

   dome:

package com.huawei.interview;public class AssertTest {/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubint i = 0;for(i=0;i<5;i++) {System.out.println(i);}//假設程式不小心多了一句--i;--i;assert i==5;}}

 

  

 

      11.java中會存在記憶體流失嗎,請簡單描述。

           會。如:int i,i2; return (i-i2); //when i為足夠大的正數,i2為足夠大的負數。結果會造成溢位,導致錯誤

  12.能不能自己寫個類,也叫java.lang.String?

          可以但在應用的時候,需要用自己的類載入器去載入,否則,系統的類載入器永遠只是去載入jre.jar包中的那個java.lang.String。

  13.Spring AOP 的原理。

    Aop(Aspect Oriented Programming),也就是面向方面編程技術,aop基於ioc的基礎。是對oop的有益補充。

    AOP將應用系統分為兩部分,核心商務邏輯(Core business concerns)及橫向的通用邏輯,也就是所謂的方面Crosscutting enterprise concerns,例如,所有大中型應用都要涉及到的持久化管理(Persistent)、交易管理(Transaction Management)、安全管理(Security)、日誌管理(Logging)和調試管理(Debugging)等。

  14.Spring怎麼實現控制翻轉(原理)

 依賴注入讓 Spring 的 Bean 以被指檔案組織在一起,而不是以硬式編碼方式耦合在一起。程式完成無須理會被調用者的實現,也不無須主動定位工  廠,這是最好的解耦方式。執行個體之間的依賴關係由 IoC 容器負責管理。

15.Scope的範圍

  預設是單例模式,即scope="singleton"。另外scope還有prototype、request、session、global session範圍。

 scope="prototype"多例。再配置bean的範圍時,它的標頭檔形式如下:

<bean id="role" class="com.web.xhaoAction" scope="singleton"/>

 

   16.一個項目載入緩慢,spring怎麼解決問題。

   1.掃描註解Bean

    寫比較精確的掃描路徑,

   2.消極式載入你的bean

    常見的方式是在設定檔中在<beans>上加:default-lazy-init="true" 

   3.刪除無用屬性

   4.項目分模組開發 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.