❶ java應屆生面試問題
首先要有足夠的自信。能夠把你所學的知識發揮出來。
其次,技術的復習要到位,面試之前最好把Java的知識點過一遍。比如JavaSE基礎,資料庫原理,Web技術要點(Servlet/JSP),三大框架的概念和三大框架如何整合的。最後能夠說出一到兩個你做過的項目,把項目的模塊描述清楚,自己在項目的負責模塊和分工解釋好,還有遇到的問題如何解決等等之類的問題。
還有,在面試中要保持自信和謙虛,讓面試公司感覺到你有實力,但又不驕傲。畢竟公司都喜歡踏實的人。
❷ 急!請大家幫解答一下,JAVA面試題。
1、Spring的主要精華是AOP面向切面編程,和DI依賴注入機制。
2、2就不說了
3、&和&&都可以用作邏輯與的運算符,表示邏輯與(and),當運算符兩邊的表達式的結果都為true時,整個運算結果才為true,否則,只要有一方為false,則結果為false。
&&還具有短路的功能,即如果第一個表達式為false,則不再計算第二個表達式,例如,對於if(str != null && !str.equals(「」))表達式,當str為null時,後面的表達式不會執行,所以不會出現NullPointerException如果將&&改為&,則會拋出NullPointerException異常。If(x==33 & ++y>0) y會增長,If(x==33 && ++y>0)不會增長
&還可以用作位運算符,當&操作符兩邊的表達式不是boolean類型時,&表示按位與操作,我們通常使
用0x0f來與一個整數進行&運算,來獲取該整數的最低4個bit位,例如,0x31 & 0x0f的結果為0x01。
4、前者僅是容器中控制權的轉向,在客戶端瀏覽器地址欄中不會顯示出轉向後的地址;後者則是完全的跳轉,瀏覽器將會得到跳轉的地址,並重新發送請求鏈接。這樣,從瀏覽器的地址欄中可以看到跳轉後的鏈接地址。所以,前者更加高效,在前者可以滿足需要時,盡量使用forward()方法,並且,這樣也有助於隱藏實際的鏈接。在有些情況下,比如,需要跳轉到一個其它伺服器上的資源,則必須使用sendRedirect()方法。
5、MVC是Model-View-Controller的簡寫。Model 代表的是應用的業務邏輯(通過JavaBean,EJB組件實現), View 是應用的表示面(由JSP頁面產生),Controller 是提供應用的處理過程式控制制(一般是一個Servlet),通過這種設計模型把應用邏輯,處理過程和顯示邏輯分成不同的組件實現。這些組件可以進行交互和重用。
6、sleep就是正在執行的線程主動讓出cpu,cpu去執行其他線程,在sleep指定的時間過後,cpu才會回到這個線程上繼續往下執行,如果當前線程進入了同步鎖,sleep方法並不會釋放鎖,即使當前線程使用sleep方法讓出了cpu,但其他被同步鎖擋住了的線程也無法得到執行。wait是指在一個已經進入了同步鎖的線程內,讓自己暫時讓出同步鎖,以便其他正在等待此鎖的線程可以得到同步鎖並運行,只有其他線程調用了notify方法(notify並不釋放鎖,只是告訴調用過wait方法的線程可以去參與獲得鎖的競爭了,但不是馬上得到鎖,因為鎖還在別人手裡,別人還沒釋放。如果notify方法後面的代碼還有很多,需要這些代碼執行完後才會釋放鎖,可以在notfiy方法後增加一個等待和一些代碼,看看效果),調用wait方法的線程就會解除wait狀態和程序可以再次得到鎖後繼續向下運行。
7、Vector是線程安全的,也就是說是它的方法之間是線程同步的,而ArrayList是線程序不安全的
=========================================================================
親,記得給好評哦 我不容易啊!
❸ 我是有三年工作經驗JAVA後台開發人員,今天去面試JAVA開發工程師一職,那個面試官一直問我三大框
面試題和你面試的公司有關,你應聘的公司不同,題會相應不同。 說說我自己的面試, 第一次是家的一般的公司(小公司只考技術),自己直接帶簡歷過去的。 先是筆試,很基礎的java題。然後面試聊。(基本就能過了) 去過一家外企(考綜合能力的運...
❹ java面試題 面向對象三大特徵的理解
面向對象技術是目前流行的系統設計開發技術,它包括面向對象分析和面向對象程序設計。面向對象程序設計技術的提出,主要是為了解決傳統程序設計方法——結構化程序設計所不能解決的代碼重用問題。
面向對象的編程方法具有四個基本特徵:
1.抽象:
抽象就是忽略一個主題中與當前目標無關的那些方面,以便更充分地注意與當前目標有關的方面。抽象並不打算了解全部問題,而只是選擇其中的一部分,暫時不用部分細節。比如,我們要設計一個學生成績管理系統,考察學生這個對象時,我們只關心他的班級、學號、成績等,而不用去關心他的身高、體重這些信息。抽象包括兩個方面,一是過程抽象,二是數據抽象。過程抽象是指任何一個明確定義功能的操作都可被使用者看作單個的實體看待,盡管這個操作實際上可能由一系列更低級的操作來完成。數據抽象定義了數據類型和施加於該類型對象上的操作,並限定了對象的值只能通過使用這些操作修改和觀察。
2.繼承:繼承是一種聯結類的層次模型,並且允許和鼓勵類的重用,它提供了一種明確表述共性的方法。對象的一個新類可以從現有的類中派生,這個過程稱為類繼承。新類繼承了原始類的特性,新類稱為原始類的派生類(子類),而原始類稱為新類的基類(父類)。派生類可以從它的基類那裡繼承方法和實例變數,並且類可以修改或增加新的方法使之更適合特殊的需要。這也體現了大自然中一般與特殊的關系。繼承性很好的解決了軟體的可重用性問題。比如說,所有的Windows應用程序都有一個窗口,它們可以看作都是從一個窗口類派生出來的。但是有的應用程序用於文字處理,有的應用程序用於繪圖,這是由於派生出了不同的子類,各個子類添加了不同的特性。
3.封裝:
封裝是面向對象的特徵之一,是對象和類概念的主要特性。封裝是把過程和數據包圍起來,對數據的訪問只能通過已定義的界面。面向對象計算始於這個基本概念,即現實世界可以被描繪成一系列完全自治、封裝的對象,這些對象通過一個受保護的介面訪問其他對象。一旦定義了一個對象的特性,則有必要決定這些特性的可見性,即哪些特性對外部世界是可見的,哪些特性用於表示內部狀態。在這個階段定義對象的介面。通常,應禁止直接訪問一個對象的實際表示,而應通過操作介面訪問對象,這稱為信息隱藏。事實上,信息隱藏是用戶對封裝性的認識,封裝則為信息隱藏提供支持。封裝保證了模塊具有較好的獨立性,使得程序維護修改較為容易。對應用程序的修改僅限於類的內部,因而可以將應用程序修改帶來的影響減少到最低限度。
4. 多態性:
多態性是指允許不同類的對象對同一消息作出響應。比如同樣的加法,把兩個時間加在一起和把兩個整數加在一起肯定完全不同。又比如,同樣的選擇編輯-粘貼操作,在字處理程序和繪圖程序中有不同的效果。多態性包括參數化多態性和包含多態性。多態性語言具有靈活、抽象、行為共享、代碼共享的優勢,很好的解決了應用程序函數同名問題。
面向對象程序設計具有許多優點:
1、開發時間短,效率高,可靠性高,所開發的程序更強壯。由於面向對象編程的可重用性,可以在應用程序中大量採用成熟的類庫,從而縮短了開發時間。
2、應用程序更易於維護、更新和升級。繼承和封裝使得應用程序的修改帶來的影響更加局部化。
❺ java三大框架面試題
SSH:
spring 初始化組件----分層理念(就類似與中央管理省,省管理市等等)里,你想用下一層某個類的實例,但又不想自己new,好了,spring做的就是這個工作----初始化你需要的實例對象(通常是在xml文件中進行配置,希望簡化配置可以用註解)。(再通俗點說,某個省的代表在駐京辦,這時中央如果想了解某個省的情況的話,就直接問駐京辦的該省代表,而不用再派專人到該省詢問了。此時,可以近似理解為,中央為一個類,該省為一個類,駐京辦為spring容器,該省代表為該省的一個實例(但未初始化,因為不在駐京辦他的價值也就沒了),如果他在駐京辦而且告訴駐京辦他是該省的代表,那就代表中央可以使用他了---此時可以說,駐京辦實例化了該省類的對象。)
struts 控制跳轉-----比如說,你用SSH寫了一個登陸的邏輯,如果輸入信息正確跳轉到成功界面,如果不正確就跳轉到錯誤提示界面,那跳轉的方向由誰指定呢,對就是struts.xml文件(裡面對應的跳轉邏輯名)。
hibernate 將對象型的數據類型保存到關系型資料庫中的工具。比如說,Java是面向對象的開發語言,而現在的資料庫(Oracle、MySQL、sqlserver等等)基本上都是關系型的,如何把面向對象的數據類型保存在關系型的資料庫中呢?hibernate就是干這行的。
❻ java面試 談談對ssh三大框架的理解
首先hibernate是一個持久層框架,輕量級(性能好),orm映射靈活,對表與表的映射關系處理的很完善,對jdbc做了良好的封裝,使得我們開發時與資料庫交互不需要編寫大量的sql語句。
而struts是一個mvc的web層框架,底層是對servlet的大量封裝,擁有強大的攔截器機制,主要負責調用業務邏輯Service層。
三大框架的大致流程jsp->struts->service->hibernate。因為struts負責調用Service從而控制了Service的生命周期,使得層次之間的依賴加強,也就是耦合。
所以我們引用了spring,spring在框架中充當容器的角色,用於維護各個層次之間的關系。通過IOC反轉控制DI依賴注入完成各個層之間的注入,使得層與層之間實現完全脫耦,增加運行效率利於維護。
並且spring的AOP面向切面編程,實現在不改變代碼的情況下完成對方法的增強。比較常用的就是spring的聲明式事務管理,底層通過AOP實現,避免了我們每次都要手動開啟事物,提交事務的重復性代碼,使得開發邏輯更加清晰。
這樣應付面試應該可以了,不過他可能會細問,比如hibernate的懶載入,spring的AOP和IOC原理等,這個還需要在准備准備
❼ 想面試Java開發崗位,請問過來人要准備的專業面試題都有哪些
首先確認,你是java行業的新手。
面試題。
java基礎部分(常見的):
1、java有幾種基本數據類型。
2、冒泡排序,(筆試常出現)
3、解釋什麼是類的成員變數,局部變數,實例成員變數,類成員變數?
4、最狠得就是——什麼是面向對象,這個只能自己組織語言,按自己的理解來回答,根本找不到具體答案。
5、抽象類與介面的區別。
6、線程有幾種實現方式,分別是什麼?
7、如何使線程同步?
8、什麼是GC?
9、構造方法是否能被重寫?為什麼?
10、java關鍵字是否區分大小寫?
11、for循環里的三個表達式的執行順序是什麼?
12、簡述什麼是關系型資料庫?
13、arrayList與linkedList的區別?
14、String與StringBuffer的區別?
資料庫部分(常見):
1、組函數,
2、having和where的區別,
3、偽列,
4、怎麼實現數據分頁?
5、表鏈接
6、事務(ACID)
7、數據安全
8、序列
9、索引
10、你所參與過的項目用了幾個表?
JDBC部分(常見):
1、JDBC的六個步驟。
2、JDBC分頁。
Servlet(常見):
1、客戶端發送請求的幾種方式。
2、servlet的生命周期的幾個階段。
3、forward跳轉與redirect跳轉的區別。
4、cookie與session的區別。
5、三大作用域。
6、連接池。
JSP(常見):
1、jsp的九大內置對象。
2、EL表達式。
3、JSTL標簽庫。
javaScript(很少會問,了解即可):
1、DOM:對象,文檔,模型
2、滑鼠點擊事件:
AJAX(了解):
1、ajax請求與傳統請求的區別。
框架相關:
1、Struts2數據處理機制。
2、OGNL表達式。
3、了解下值棧。
4、MVC開發模式的好處。
5、Hibernate與MyBatis的區別。
6、連接池
7、struts2與SpringMVC的區別。
8、IOC,DI。
9、AOP。
10、運用框架的好處。
11、用到過的開發模式有哪些?
註:以上內容只要會一大部分,面試基本都會通過,如果全部會的話,就可以挑offer了,會一半就有很大的可能了(手都敲麻了.。。。)。
❽ Java的三大框架是什麼
Java的三大框架是:
1.Structs框架是最早的Java開源框架之一.Struts是MVC設計模式的一個優秀實現.
Struts是最早的java開源框架之一,它是MVC設計模式的一個優秀實現。 Struts定義了通用的Controller(控制器),通過配置文件(通常是 Struts -config.xml)隔離Model(模型)和View(視圖),以Action的概念以對用戶請求進行了封裝,使代碼更加清晰易讀。 Struts還提供了自動將請求的數據填充到對象中以及頁面標簽等簡化編碼的工具。 Struts能夠開發大型Java Web項目。
2.Struts2以WebWork優秀的設計思想為核心,吸收了 Struts框架的部分優點,提供了一個更加整潔的MVC設計模式實現的Web 應用程序框架
Struts2以WebWork優秀的設計思想為核心,吸收了 Struts框架的部分優點,提供了一個更加整潔的MVC設計模式實現的Web 應用程序框架。 Struts2引入了幾個新的框架特性:從邏輯中分離出橫切關注點的攔截器、減少或者消除配置文件、貫穿整個框架的強大表達式語言、支持可變更和可重用的基於MVC模式的標簽API, Struts2充分利用了從其它MVC框架學到的經驗和教訓,使得 Struts2框架更加清晰靈活。
3.Hibernate是一個開放源代碼的對象關系映射框架
它對JDBC進行了非常輕量級的對象封裝,它將POJO與資料庫表建立映射關系,是一個全自動的orm框架,hibernate可以自動生成SQL語句,自動執行,使得Java程序員可以隨心所欲的使用對象編程思維來操縱資料庫。 Hibernate可以應用在任何使用JDBC的場合,既可以在Java的客戶端程序使用,也可以在Servlet/JSP的Web應用中使用,最具革命意義的是,Hibernate可以在應用EJB的J2EE架構中取代CMP,完成數據持久化的重任。