當前位置:首頁 » 編程語言 » 面java

面java

發布時間: 2025-02-07 23:36:21

『壹』 java 二面一般會面試什麼內容

Java程序員應聘一般要經過筆試和面試。作為一個技術人員,特別是剛出道的,筆試的成績是比較重要。以下是我經過幾次筆試總結的一些經驗教訓。

一般來說,試題會分為三個部分,Java基礎、資料庫基礎和綜合題。

首先是Java基礎,這個很簡單,也就是考考你對Java語言本身的理解,包括語法,類庫的使用等。有選擇題,也會有寫代碼題。寫代碼的時候認真仔細就是了。基礎題答案一般都比較死,所以盡量不要錯。在這,出一道我遇到的題考考大家,Java編程:把American,Japan,China,France,Brazil按英文字母排序。說說思路就行了:)

其次是資料庫。准確的說,考的不是資料庫,而是SQL語句。一般題型是,給兩三個表,然後讓你根據需求寫SQL。最普通的就是學生表、選課表和成績表。要掌握的就是連接查詢,還有就是一些函數(建表、表操作等就不說了哈)。其實這些都相當簡單,但是往往被新手忽略。我就遭過,因為有半年沒寫過SQL了,連接查詢搞忘完了,有兩次筆試都空起,結果可想而知。這些是必備技術,千萬不能空起啊!

然後是綜合題。之所以說是綜合題,是因為包含的內容比較多,一般都是主觀題。這里,人家是想看看你對Java高級技術以及周邊技術的了解程度和運用能力,說白了,就是考概念和考應用題。這里說的Java高級技術,也就是J2EE架構中的技術,這些不會的話,人家是不得要你的。如果你會一些流行的技術框架,那就更好了。所謂Java周邊技術,包括HTTP,HTML,XML,UML,JavaScript,CSS等,要求一般不是很高,要了解,比如讓你用HTML寫個表單你要會。關於剛才提到的技術或者框架,希望要了解其工作的原理和機制,一般要考,比如讓你說說Struts的MVC。關於應用題,可能出一道網路應用來考。

以上就是我筆試的經驗,一般是這樣,不過我也遇到過變態的。一次筆試,就被徹底甩翻,C/C++、資料庫、Java技術、Shell編程、網路協議、Unix、軟體工程全部上了。

如果筆試做的好,那就成功大半了,不過不要輕視面試哦!

『貳』 java工程師面試時最看重的是什麼

一、專業技能

  • 熟練的使用Java語言進行面向對象程序設計,有良好的編程習慣,熟悉常用的JavaAPI,包括集合框架、多線程(並發編程)、I/O(NIO)、Socket、JDBC、XML、反射等。

  • 熟悉基於JSP和Servlet的JavaWeb開發,對Servlet和JSP的工作原理和生命周期有深入了解,熟練的使用JSTL和EL編寫無腳本動態頁面,有使用監聽器、過濾器等Web組件以及MVC架構模式進行JavaWeb項目開發經驗。

  • 對Spring的IoC容器和AOP原理有深入了解,熟練的運用Spring框架管理各種Web組件及其依賴關系,熟練的使用Spring進行事務、日誌、安全性等的管理,有使用SpringMVC作為表示層技術以及使用Spring提供的持久化支持進行Web項目開發的經驗,熟悉Spring對其他框架的整合。

  • 熟練的使用Hibernate、MyBatis等ORM框架,熟悉Hibernate和MyBatis的核心API,對Hibernate的關聯映射、繼承映射、組件映射、緩存機制、事務管理以及性能調優等有深入的理解。

  • 熟練的使用HTML、CSS和JavaScript進行Web前端開發,熟悉jQuery和Bootstrap,對Ajax技術在Web項目中的應用有深入理解,有使用前端MVC框架(AngularJS)和JavaScript模板引擎(HandleBars)進行項目開發的經驗。

  • 熟悉常用的關系型資料庫產品(MySQL、Oracle),熟練的使用SQL和PL/SQL進行資料庫編程。

  • 熟悉面向對象的設計原則,對GoF設計模式和企業應用架構模式有深入的了解和實際開發的相關經驗,熟練的使用UML進行面向對象的分析和設計,有TDD(測試驅動開發)和DDD(領域驅動設計)的經驗。

  • 熟悉Apache、NginX、Tomcat、WildFly、Weblogic等Web伺服器和應用伺服器的使用,熟悉多種伺服器整合、集群和負載均衡的配置。

  • 熟練的使用產品原型工具Axure,熟練的使用設計建模工具PowerDesigner和Enterprise Architect,熟練的使用Java開發環境Eclipse和IntelliJ,熟練的使用前端開發環境WebStorm,熟練的使用軟體版本控制工具SVN和Git,熟練的使用項目構建和管理工具Maven和Gradle。

  • 說明: 上面羅列的這些東西並不是每一項你都要爛熟於心,根據企業招聘的具體要求可以做相應的有針對性的准備。但是前6項應該是最低要求,是作為一個Java軟體工程師必須要具備的專業技能。

    二、項目經驗

  • 項目介紹
    本系統是X委託Y開發的用於Z的系統,系統包括A、B、C、D等模塊。系統使用了Java企業級開發的開源框架E以及前端技術F。表示層運用了G架構,使用H作為視圖I作為控制器並實現了REST風格的請求;業務邏輯層運用了J模式,並通過K實現事務、日誌和安全性等功能,通過L實現緩存服務;持久層使用了M封裝CRUD操作,底層使用N實現數據存取。整個項目採用了P開發模型。 說明: E通常指spring(Java企業級開發的一站式選擇); F最有可能是jQuery庫及其插件或者是Bootstrap框架,當然如果要構建單頁應用(SPA)最佳的方案是前端MVC框架(如AngularJS)和JavaScript模板引擎(如HandleBars);G顯然是MVC(模型-視圖-控制),最有可能的實現框架是spring MVC,除此之外還有Struts 2、JSF以及Apache為JSF提供的MyFaces實現; H是JSP,JSP作為MVC中的V,也可使用模板引擎(如Freemarker和Velocity)來生成視圖還可以是各種文檔或報表(如Excel和PDF等); I是Servlet或者自定義的控制器,他們是MVC中的C,當然Spring MVC中提供了作為前端控制器的DispatcherServlet; J通常是事務腳本; K應該是AOP(面向切面編程)技術; L目前廣泛使用的有memcached和Redis; M的選擇方案很多,最有可能的是hibernate和MyBatis,也可以兩種技術同時運用,但通常是將增刪改交給hibernate來處理,而復雜的查詢則由MyBatis完成,此外TopLink、jOOQ也是優秀的持久層解決方案; N底層的數據存取傳統上是使用關系型資料庫,可以是MySQL、Oracle、SQLServer、DB2等,隨著大數據時代的來臨,也可以採用NoSQL(如MongoDB、MemBase、BigTable等)和其他大數據存取方案(如GFS、HDFS等); P是項目的開發模型,可以是瀑布模型、快速原型模型、增量模型、螺旋模型、噴泉模型、RAD模型等。

  • 項目開發流程
    1、可行性分析:可行性分析報告、項目開發計劃書;
    2、需求分析:需求規格說明書OOAD(用例圖、時序圖、活動圖);
    界面原型:幫助理解需求、業務層設計時推導事務腳本;
    3、設計:概要設計說明書、詳細設計說明書;
    *抽取業務實體(領域對象):類圖、E-R圖(概念設計階段);
    分層架構:確定各層的技術實現方案(具體到使用的框架、資料庫伺服器、應用伺服器等);
    *業務層設計:事務腳本模式(事務:用戶發送一次請求就是一個事務;
    腳本:一個方法或一個函數;
    *事務腳本:把一次請求封裝為一個方法或一個函數;事務腳本模式:一個事務開始於腳本的打開,終止於腳本的關閉);
    *業務層涉及的對象有三種類型:事務腳本類(封裝了業務的流程)、數據訪問對象(DAO,封裝了持久化操作)、數據傳輸對象(DTO,封裝了失血/貧血領域對象),三者之間的關系是事務腳本類組合(聚合)數據訪問對象,這二者都依賴了數據傳輸對象正向工程(UML類圖生成Java代碼)和逆向工程(Java代碼生成UML類圖)資料庫物理設計(ER圖轉換成表間關系圖、建庫和建表、使用工具插入測試數據);
    3、編碼;
    4、測試:測試報告、缺陷報告;
    *單元測試:對軟體中的最小可測試單元進行檢查和驗證,在Java中是對類中的方法進行測試,可以使用JUnit工具來實施;
    *集成測試:集成測試也叫組裝測試或聯合測試。在單元測試的基礎上,將所有模塊按照設計要求組裝成為子系統進行測試;
    *系統測試:將已經確認的軟體、硬體、外設、網路等元素結合在一起,進行信息系統的各種組裝測試和確認測試,系統測試是針對整個產品系統進行的測試,目的是驗證系統是否滿足了需求規格的定義,找出與需求規格不符或與之矛盾的地方,從而提出更加完善的方案;
    *驗收測試:在軟體產品完成了單元測試、集成測試和系統測試之後,產品發布之前所進行的軟體測試活動。它是技術測試的最後一個階段,也稱為交付測試。驗收測試的目的是確保軟體准備就緒,並且可以讓最終用戶將其用於執行軟體的既定功能和任務;
    5、交付和維護:用戶手冊、操作手冊;

  • 三、項目管理

  • 版本控制:CVS/SVN/Git

  • 自動構建:Ant/Maven/Ivy/Gradle

  • 持續集成:Hudson/Jenkins

  • 四、系統架構

  • 負載均衡伺服器:F5、A10;

  • 應用伺服器: HTTP伺服器:Apache、NginX(HTTP、反向代理、郵件代理伺服器);
    Servlet容器:Tomcat、Resin

  • EJB容器:WildFly(JBoss Application Server)、GlassFish、Weblogic、Websphere;

  • 資料庫伺服器:MySQL、Eclipse、Oracle;

  • 五、第三方工具(插件)應用

  • 圖表工具:基於jQuery的圖表插件(如jQchart、Flot、Charted等)、Chart.js、Highcharts等。

  • 報表工具:Pentaho Reporting、iReport、DynamicReports等。

  • 文檔處理:POI、iText等。

  • 工作流引擎:jBPM、OpenWFE、Snaker、SWAMP等。

  • 作業調度:Quartz、JobServer、Oddjob等。

  • 緩存服務:EhCache、memcached、SwarmCache等。

  • 消息隊列:Open-MQ、ZeroMQ、ActiveMQ等。

  • 安全框架:Shiro、PicketBox等。

  • 搜索引擎:IndexTank、Lucene、ElasticSearch等。

  • Ajax框架:jQuery、ExtJS、DWR等。

  • UI插件:EasyUI、MiniUI等。

  • 富文本框:UEditor、CKEditor等。

  • 六、面試提問

  • 項目是為哪個公司開發的?項目的投入是多少?

  • 有多少人參與了項目開發?整個團隊中,測試人員、開發人員、項目經理比例是多少?

  • 項目開發了多長時間?項目總的代碼量有多少?你的代碼量有多少?

  • 項目採用了怎樣的開發模型或開發流程?項目的架構是怎樣的?項目的技術選型是怎樣的?

  • 你在項目中擔了怎樣的職責?是否經常開會或加班?項目完成後有哪些收獲或是經驗教訓?

  • 項目中最困難的部分是什麼?如何解決團隊開發時遇到的各種沖突?

  • 七、面試時可以反問面試官的問題

  • 我注意到你們使用了X技術,請問你們是如何解決Y問題的?

  • 為什麼你們的產品使用了X技術而不是Y技術?據我所知,X技術雖然有A、B、C等好處,但也存在D和E問題,而Y技術可以解決D和E問題。

  • 我對您說的X技術不是太熟悉,但我感覺它是一個不錯的解決方案,您能多講講它的工作原理嗎?

  • 你們團隊是如何進行項目規劃的?一周會有幾次例會?每周的代碼量大概是多少?

  • 就X問題我能想到的解決方案目前就只有Y了,請問您會怎麼解決這個問題?

  • 八、S.A.R.法則

  • S.A.R法則是指先描述問題的場景,然後解釋你採取的行動,最後陳述結果。

  • 九、面談原則

  • 聲音適中、口齒清楚、面帶微笑、個人形象精神,講禮貌。

  • 主動跟面試官聊他感興趣的話題,讓面試官滿意。

  • 主動的大膽的跟面試官聊自己熟悉有經驗的內容:項目、技術點等,做到揚長避短。

  • 一定要表達自己非常想得到這個崗位,自己很願意學習不懂的技術。

  • 根據自己的實際水平提出合理的待遇要求。

  • 十、自我評價

  • 學習能力(搞IT行業的人需要不斷的了解新的技術、工具和方法)

  • 團隊意識(相比個人英雄主義,IT行業更倡導團隊合作)

  • 抗壓能力(很多IT企業的工作強度相對來說還是比較大的)

『叄』 面渣逆襲:Java基礎面試題,46道Java基礎八股文(4.8萬字,30+手繪圖)

Java,自1995年誕生以來,憑借其"一次編寫,到處運行"的理念,成為企業級開發、移動應用、網站開發和大數據處理等領域不可或缺的利器。Java的版本包括Java SE、Java EE和Java ME,以及一系列強大的框架和工具,如JVM、JDK和JRE,它們共同構建了Java的跨平台基石。

Java語言以簡單性為設計初衷,其特性包括面向對象(OOP)、平台無關性(JVM)、安全性(通過沙箱機制)、健壯性和多線程支持。JVM負責運行Java位元組碼,JDK包含JRE和開發工具,而JRE則包含了執行環境和核心庫。這種設計使得Java軟體能夠在不同的操作系統上無縫運行,降低了開發成本和提高應用程序的可用性。

Java的跨平台能力主要通過中間件技術實現,如JVM通過標准化執行環境來確保代碼的通用性。此外,虛擬機技術如Java的JVM將代碼編譯成中間代碼(位元組碼),從而實現跨平台運行,如React Native和Flutter等框架則進一步簡化了代碼編寫,隱藏了底層平台差異。

容器化技術,如Docker,將應用程序打包成可移植的容器,確保在任何支持的平台上都能一致運行。位元組碼作為編譯後的中間代碼,提供了跨平台、安全和高效的優勢,同時支持編譯與解釋並存,源代碼先編譯成位元組碼,JVM負責解釋或進行JIT(即時編譯)優化。

Java的基礎數據類型包括整數、浮點數、字元、布爾值,以及引用數據類型如類、介面和數組。類型轉換分為自動和強制,如Integer裝箱和拆箱簡化了基本類型與對象的轉換。邏輯運算符&和&&的區別在於&執行右側表達式,無短路行為,而&&的短路特性在左側為假時跳過右側操作。

Java的switch語句支持多種數據類型,如byte和String(從Java SE 7開始)。break、continue和return分別用於控制循環和方法的執行流程,如在for循環中,continue跳過剩餘部分進入下一輪,return則退出當前方法。

在面向對象編程中,Java強調數據封裝和方法的結合,如Car類通過類結構處理汽車的邏輯。封裝、繼承和多態是其核心特性,類和介面用於共享功能,重寫和重載則提供代碼復用和靈活性。訪問修飾符如public、protected、default和private定義了不同范圍的可見性。

Java的this關鍵字用於引用當前對象,區別於局部變數。抽象類和介面提供不同的抽象層次,Java 8引入的默認方法和靜態方法,以及介面的默認實現,進一步擴展了語言的靈活性。final關鍵字用於標識不可變性,對變數、方法和類進行限制,增強代碼安全性和可讀性。

類的實例化示例展示了final、finally和finalize的區別,以及==和equals的差異,以及重寫hashCode和equals的必要性。參數傳遞在Java中採用值傳遞和引用傳遞,理解其影響對代碼設計至關重要。

字元串處理是Java中的重要部分,String類的不可變性和StringBuffer和StringBuilder的可變性為不同場景提供了選擇。字元串常量池優化內存,而字元串拼接在Java 7後與StringBuilder的行為保持一致。

Java異常處理體系,包括Error和Exception的分類,以及try-catch、finally、throw和throws的使用,對於錯誤處理和方法簽名聲明至關重要。IO流、NIO、BIO和AIO的非同步特性在處理並發和性能優化中發揮關鍵作用。

序列化和反序列化用於數據持久化和網路通信,Serializable介面和transient關鍵字的使用確保數據的一致性和安全性。泛型、註解和反射等高級特性,如Spring的Autowired,提供了靈活的編程工具和設計模式。

Java的新特性,如Lambda表達式、Stream API、Optional類和Nashorn引擎,以及日期時間API和並行處理功能,都展示了Java語言的持續進化和適應性。Java處理空指針的方式,如try-catch和Objects類的requireNonNull,展示了對程序員友好的錯誤處理策略。

以上內容總結了Java基礎面試中的重要知識點,無論是編程基礎、設計模式還是最新技術動態,都是Java開發者不可或缺的技能。通過深入理解和實踐,你將能更好地應對各種面試挑戰。

『肆』 java二面是不是基本就定了

不是。因為java二面是通常是在java求職過程中的第二輪面試,一般意味著你在初面中表現出色,已經通過了初步篩選,進入到更進一步的評估階段。盡管二面表明你已經獲得了一定的認可,但並不意味著你已經被確定錄用。在二面中,僱主可能會更加深入地評估你的技能、經驗和適應能力,還可能會與其他候選人進行比較。最終錄用決定通常是綜合考慮多個因素,然後再進行評定人選,是還有可能刷下去的,因此java二面不是基本就定了。

『伍』 Java面試的十個小技巧

java面式的十個小技巧

1.簡要介紹Java程序的健壯性。

答:Java程序會在編譯和運行的時候自動的檢測可能出現的錯誤,而且它是一種強類型語言,對干類型的檢查很嚴格,而且它的垃圾回收機制也有效的避免了內存的泄漏。

2.簡要介紹Java如何實現安全性。

答:首先Java刪除了指針這就避免了非法的內存操作,所有對內存的操作都必須通過對象的實例來實現。而且當我們從網上下載代碼執行是它的安全系統能確保惡意程序不會隨便訪問我們本地計算機的資源。

3.為什麼說Java語言是完全面向對象的?(其實我覺得它不是完全面向對象的)

答:因為它不支持任何面向過程的程序設計技術它的所有程序設計技術都是用類來實現的。

另答:因為它有8種簡單數據類型不是面向對象的,可以直接使用它,用static申明悉姿猛的變數或方法不是面向對象的,因為它不屬干任何一個對象,要調用它可以直接使用,不用對它進行實例化(這種方法還在爭論中)。

4.為什麼說Java是解釋性的?

答:因為我們在執行JaV文件時,編譯器會先把代碼譯成位元組碼文件,這是一種中間代碼,然後Java解釋器才進行執行。

5.簡要介紹Java的平台無關性。

答:Java程序是在虛擬機上執行的,只要安裝了JAVA虛擬機它就可以以位元組碼的形式在任何平台上執行。

6.簡要介紹Java的多態性。

答:多態性是指同名的不同方法在程序睜橋中共存,系統根據不同的情況調用不同的方法實現不同的功能。實現多態性的方法有兩種:覆蓋實現,重載實現。

7.簡要介紹Java是強類型檢查語言。

答:JaVa對數據類型的檢查非常嚴格,在定義和用變數時必須先指定其類型而且它只允許數據類型的向上提升,而且不允許出現會出現數據丟失的附值(如把小數附給整形)。

8.int和Integer有什麼區別?

答:int是簡單數據類型(整形)而Integer是整形的封裝類。

9.簡要介紹String和String Buffer的區別?

答:String類代表不可變字元串。在值創建之後就不能被改變。而StringBuffer.是可變的字元序列,初始容量16位元組,通過某些方法可改變其內容和長度冊茄。

10.簡要介紹Java的垃圾回收機制。

答:Java的垃圾回收機制就是:當一個對象沒有任何引用時,該對象便會啟動垃圾回收器調用finalize0方法以配置系統資源或執行相關的清除操作。

『陸』 Java一面是技術還是人事

技術。
一般一面是技術面,主要考察技術問題。二面是人事面,主要考察人際關系處理,工作態度等問題。三面是領導面,主要是看看綜合能力,優缺點等問題。

熱點內容
快速dct演算法 發布:2025-02-08 02:19:04 瀏覽:620
淘寶交易密碼如何改 發布:2025-02-08 02:17:32 瀏覽:772
php的進階 發布:2025-02-08 02:17:28 瀏覽:674
伺服器關閉中或IP地址錯誤 發布:2025-02-08 02:16:55 瀏覽:477
節目腳本是什麼 發布:2025-02-08 02:08:54 瀏覽:141
android的自定義屬性 發布:2025-02-08 02:07:27 瀏覽:607
怎麼看電腦的用戶名和密碼 發布:2025-02-08 02:02:48 瀏覽:796
vb動態資料庫 發布:2025-02-08 02:01:53 瀏覽:111
一台存儲可以配幾個擴展櫃 發布:2025-02-08 01:53:22 瀏覽:566
分布式存儲技術優缺點 發布:2025-02-08 01:51:37 瀏覽:245