"
作者:駱昊
來源:https://blog.csdn.net/jackfrued/article/details/45035097

想要成為合格的Java程序員或工程師到底需要具備哪些專業技能,面試者在面試之前到底需要準備哪些東西呢?

本文陳列的這些內容既可以作為個人簡歷中的內容,也可以作為面試的時候跟面試官聊的東西,你可以把這些內容寫到你的簡歷中,當然更需要的是你在面試的時候向面試官展示這些專業技能。

相信此文對正在尋覓Java程序員(Java工程師)職位的freshman以及希望成為中高級Java開發者的junior都會有所幫助。


"
作者:駱昊
來源:https://blog.csdn.net/jackfrued/article/details/45035097

想要成為合格的Java程序員或工程師到底需要具備哪些專業技能,面試者在面試之前到底需要準備哪些東西呢?

本文陳列的這些內容既可以作為個人簡歷中的內容,也可以作為面試的時候跟面試官聊的東西,你可以把這些內容寫到你的簡歷中,當然更需要的是你在面試的時候向面試官展示這些專業技能。

相信此文對正在尋覓Java程序員(Java工程師)職位的freshman以及希望成為中高級Java開發者的junior都會有所幫助。


掌握這 11 個方法論,搞定一場完美技術面試


專業技能

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

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

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

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

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

6.熟悉常用的關係型數據庫產品(MySQL、Oracle),熟練的使用SQL和PL/SQL進行數據庫編程。

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

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

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

說明:上面羅列的這些東西並不是每一項你都要爛熟於心,根據企業招聘的具體要求可以做相應的有針對性的準備。

我個人覺得前6項應該是最低要求,是作為一個Java開發者必須要具備的專業技能。

"
作者:駱昊
來源:https://blog.csdn.net/jackfrued/article/details/45035097

想要成為合格的Java程序員或工程師到底需要具備哪些專業技能,面試者在面試之前到底需要準備哪些東西呢?

本文陳列的這些內容既可以作為個人簡歷中的內容,也可以作為面試的時候跟面試官聊的東西,你可以把這些內容寫到你的簡歷中,當然更需要的是你在面試的時候向面試官展示這些專業技能。

相信此文對正在尋覓Java程序員(Java工程師)職位的freshman以及希望成為中高級Java開發者的junior都會有所幫助。


掌握這 11 個方法論,搞定一場完美技術面試


專業技能

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

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

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

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

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

6.熟悉常用的關係型數據庫產品(MySQL、Oracle),熟練的使用SQL和PL/SQL進行數據庫編程。

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

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

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

說明:上面羅列的這些東西並不是每一項你都要爛熟於心,根據企業招聘的具體要求可以做相應的有針對性的準備。

我個人覺得前6項應該是最低要求,是作為一個Java開發者必須要具備的專業技能。

掌握這 11 個方法論,搞定一場完美技術面試

項目介紹

項目介紹

我們應該如何向面試官介紹項目?

本系統是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實現,可以使用JSP作為MVC中的V,也可使用模板引擎(如Freemarker和Velocity)來生成視圖,還可以是各種文檔或報表(如Excel和PDF等),而Servlet和自定義的控制器是MVC中的C,當然Spring MVC中提供了作為前端控制器的DispatcherServlet;

J通常是事務腳本,

K應該是AOP(面向切面編程)技術,

L目前廣泛使用的有memcached和Redis;

M的選擇方案很多,最有可能的是Hibernate和MyBatis,也可以兩種技術同時運用,但通常是將增刪改交給Hibernate來處理,而複雜的查詢則由MyBatis完成,

此外TopLink、jOOQ也是優秀的持久層解決方案;底層的數據存取傳統上是使用關係型數據庫,可以是MySQL、Oracle、SQLServer、DB2等,隨著大數據時代的來臨,也可以採用NoSQL(如MongoDB、MemBase、BigTable等)和其他大數據存取方案(如GFS、HDFS等);

項目的開發模型P可以是瀑布模型、快速原型模型、增量模型、螺旋模型、噴泉模型、RAD模型等。

"
作者:駱昊
來源:https://blog.csdn.net/jackfrued/article/details/45035097

想要成為合格的Java程序員或工程師到底需要具備哪些專業技能,面試者在面試之前到底需要準備哪些東西呢?

本文陳列的這些內容既可以作為個人簡歷中的內容,也可以作為面試的時候跟面試官聊的東西,你可以把這些內容寫到你的簡歷中,當然更需要的是你在面試的時候向面試官展示這些專業技能。

相信此文對正在尋覓Java程序員(Java工程師)職位的freshman以及希望成為中高級Java開發者的junior都會有所幫助。


掌握這 11 個方法論,搞定一場完美技術面試


專業技能

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

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

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

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

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

6.熟悉常用的關係型數據庫產品(MySQL、Oracle),熟練的使用SQL和PL/SQL進行數據庫編程。

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

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

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

說明:上面羅列的這些東西並不是每一項你都要爛熟於心,根據企業招聘的具體要求可以做相應的有針對性的準備。

我個人覺得前6項應該是最低要求,是作為一個Java開發者必須要具備的專業技能。

掌握這 11 個方法論,搞定一場完美技術面試

項目介紹

項目介紹

我們應該如何向面試官介紹項目?

本系統是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實現,可以使用JSP作為MVC中的V,也可使用模板引擎(如Freemarker和Velocity)來生成視圖,還可以是各種文檔或報表(如Excel和PDF等),而Servlet和自定義的控制器是MVC中的C,當然Spring MVC中提供了作為前端控制器的DispatcherServlet;

J通常是事務腳本,

K應該是AOP(面向切面編程)技術,

L目前廣泛使用的有memcached和Redis;

M的選擇方案很多,最有可能的是Hibernate和MyBatis,也可以兩種技術同時運用,但通常是將增刪改交給Hibernate來處理,而複雜的查詢則由MyBatis完成,

此外TopLink、jOOQ也是優秀的持久層解決方案;底層的數據存取傳統上是使用關係型數據庫,可以是MySQL、Oracle、SQLServer、DB2等,隨著大數據時代的來臨,也可以採用NoSQL(如MongoDB、MemBase、BigTable等)和其他大數據存取方案(如GFS、HDFS等);

項目的開發模型P可以是瀑布模型、快速原型模型、增量模型、螺旋模型、噴泉模型、RAD模型等。

掌握這 11 個方法論,搞定一場完美技術面試

項目開發流程

1.可行性分析

可行性分析報告 / 項目開發計劃書

2.需求分析 >>> 需求規格說明書

· OOAD(用例圖、時序圖、活動圖)

· 界面原型:幫助理解需求、業務層設計時推導事務腳本

3.設計 >>> 概要設計說明書/詳細設計說明書

· 抽取業務實體(領域對象):類圖、E-R圖(概念設計階段)

· 分層架構:確定各層的技術實現方案(具體到使用的框架、數據庫服務器、應用服務器等)。

業務層設計:事務腳本模式(事務:用戶發送一次請求就是一個事務;

腳本:一個方法或一個函數;事務腳本:把一次請求封裝為一個方法或一個函數;

事務腳本模式:一個事務開始於腳本的打開,終止於腳本的關閉)。

業務層涉及的對象有三種類型:事務腳本類(封裝了業務的流程)、數據訪問對象(DAO,封裝了持久化操作)、數據傳輸對象(DTO,封裝了失血/貧血領域對象),三者之間的關係是事務腳本類組合(聚合)數據訪問對象,這二者都依賴了數據傳輸對象

· 正向工程(UML類圖生成Java代碼)和逆向工程(Java代碼生成UML類圖)

· 數據庫物理設計(ER圖轉換成表間關係圖、建庫和建表、使用工具插入測試數據)

4.編碼

5.測試 >>> 測試報告 / 缺陷報告

· 單元測試:對軟件中的最小可測試單元進行檢查和驗證,在Java中是對類中的方法進行測試,可以使用JUnit工具來實施。

· 集成測試:集成測試也叫組裝測試或聯合測試。在單元測試的基礎上,將所有模塊按照設計要求組裝成為子系統進行測試。

· 系統測試:將已經確認的軟件、硬件、外設、網絡等元素結合在一起,進行信息系統的各種組裝測試和確認測試,系統測試是針對整個產品系統進行的測試,目的是驗證系統是否滿足了需求規格的定義,找出與需求規格不符或與之矛盾的地方,從而提出更加完善的方案。

· 驗收測試:在軟件產品完成了單元測試、集成測試和系統測試之後,產品發佈之前所進行的軟件測試活動。它是技術測試的最後一個階段,也稱為交付測試。驗收測試的目的是確保軟件準備就緒,並且可以讓最終用戶將其用於執行軟件的既定功能和任務。

6.交付和維護 >>> 用戶手冊 / 操作手冊

"
作者:駱昊
來源:https://blog.csdn.net/jackfrued/article/details/45035097

想要成為合格的Java程序員或工程師到底需要具備哪些專業技能,面試者在面試之前到底需要準備哪些東西呢?

本文陳列的這些內容既可以作為個人簡歷中的內容,也可以作為面試的時候跟面試官聊的東西,你可以把這些內容寫到你的簡歷中,當然更需要的是你在面試的時候向面試官展示這些專業技能。

相信此文對正在尋覓Java程序員(Java工程師)職位的freshman以及希望成為中高級Java開發者的junior都會有所幫助。


掌握這 11 個方法論,搞定一場完美技術面試


專業技能

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

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

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

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

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

6.熟悉常用的關係型數據庫產品(MySQL、Oracle),熟練的使用SQL和PL/SQL進行數據庫編程。

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

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

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

說明:上面羅列的這些東西並不是每一項你都要爛熟於心,根據企業招聘的具體要求可以做相應的有針對性的準備。

我個人覺得前6項應該是最低要求,是作為一個Java開發者必須要具備的專業技能。

掌握這 11 個方法論,搞定一場完美技術面試

項目介紹

項目介紹

我們應該如何向面試官介紹項目?

本系統是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實現,可以使用JSP作為MVC中的V,也可使用模板引擎(如Freemarker和Velocity)來生成視圖,還可以是各種文檔或報表(如Excel和PDF等),而Servlet和自定義的控制器是MVC中的C,當然Spring MVC中提供了作為前端控制器的DispatcherServlet;

J通常是事務腳本,

K應該是AOP(面向切面編程)技術,

L目前廣泛使用的有memcached和Redis;

M的選擇方案很多,最有可能的是Hibernate和MyBatis,也可以兩種技術同時運用,但通常是將增刪改交給Hibernate來處理,而複雜的查詢則由MyBatis完成,

此外TopLink、jOOQ也是優秀的持久層解決方案;底層的數據存取傳統上是使用關係型數據庫,可以是MySQL、Oracle、SQLServer、DB2等,隨著大數據時代的來臨,也可以採用NoSQL(如MongoDB、MemBase、BigTable等)和其他大數據存取方案(如GFS、HDFS等);

項目的開發模型P可以是瀑布模型、快速原型模型、增量模型、螺旋模型、噴泉模型、RAD模型等。

掌握這 11 個方法論,搞定一場完美技術面試

項目開發流程

1.可行性分析

可行性分析報告 / 項目開發計劃書

2.需求分析 >>> 需求規格說明書

· OOAD(用例圖、時序圖、活動圖)

· 界面原型:幫助理解需求、業務層設計時推導事務腳本

3.設計 >>> 概要設計說明書/詳細設計說明書

· 抽取業務實體(領域對象):類圖、E-R圖(概念設計階段)

· 分層架構:確定各層的技術實現方案(具體到使用的框架、數據庫服務器、應用服務器等)。

業務層設計:事務腳本模式(事務:用戶發送一次請求就是一個事務;

腳本:一個方法或一個函數;事務腳本:把一次請求封裝為一個方法或一個函數;

事務腳本模式:一個事務開始於腳本的打開,終止於腳本的關閉)。

業務層涉及的對象有三種類型:事務腳本類(封裝了業務的流程)、數據訪問對象(DAO,封裝了持久化操作)、數據傳輸對象(DTO,封裝了失血/貧血領域對象),三者之間的關係是事務腳本類組合(聚合)數據訪問對象,這二者都依賴了數據傳輸對象

· 正向工程(UML類圖生成Java代碼)和逆向工程(Java代碼生成UML類圖)

· 數據庫物理設計(ER圖轉換成表間關係圖、建庫和建表、使用工具插入測試數據)

4.編碼

5.測試 >>> 測試報告 / 缺陷報告

· 單元測試:對軟件中的最小可測試單元進行檢查和驗證,在Java中是對類中的方法進行測試,可以使用JUnit工具來實施。

· 集成測試:集成測試也叫組裝測試或聯合測試。在單元測試的基礎上,將所有模塊按照設計要求組裝成為子系統進行測試。

· 系統測試:將已經確認的軟件、硬件、外設、網絡等元素結合在一起,進行信息系統的各種組裝測試和確認測試,系統測試是針對整個產品系統進行的測試,目的是驗證系統是否滿足了需求規格的定義,找出與需求規格不符或與之矛盾的地方,從而提出更加完善的方案。

· 驗收測試:在軟件產品完成了單元測試、集成測試和系統測試之後,產品發佈之前所進行的軟件測試活動。它是技術測試的最後一個階段,也稱為交付測試。驗收測試的目的是確保軟件準備就緒,並且可以讓最終用戶將其用於執行軟件的既定功能和任務。

6.交付和維護 >>> 用戶手冊 / 操作手冊

掌握這 11 個方法論,搞定一場完美技術面試

項目管理

· 版本控制: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、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等。

· 安全框架:Shiro、PicketBox等。

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

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

· UI插件:EasyUI、MiniUI等。

· 富文本框:UEditor、CKEditor等。

面試提問

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

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

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

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

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

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

說明:對於沒有實際項目經驗的,可以在前程無憂、智聯招聘、拉勾網等網站上搜索招聘Java程序員的公司,找到他們的官方網站了解他們做的項目,查看項目的詳細介紹,然後嘗試完成其中一部分功能,最好請教一下高人看看自己的設計和代碼是否恰當,這樣相當於積累了一定的項目經驗。

"
作者:駱昊
來源:https://blog.csdn.net/jackfrued/article/details/45035097

想要成為合格的Java程序員或工程師到底需要具備哪些專業技能,面試者在面試之前到底需要準備哪些東西呢?

本文陳列的這些內容既可以作為個人簡歷中的內容,也可以作為面試的時候跟面試官聊的東西,你可以把這些內容寫到你的簡歷中,當然更需要的是你在面試的時候向面試官展示這些專業技能。

相信此文對正在尋覓Java程序員(Java工程師)職位的freshman以及希望成為中高級Java開發者的junior都會有所幫助。


掌握這 11 個方法論,搞定一場完美技術面試


專業技能

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

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

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

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

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

6.熟悉常用的關係型數據庫產品(MySQL、Oracle),熟練的使用SQL和PL/SQL進行數據庫編程。

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

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

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

說明:上面羅列的這些東西並不是每一項你都要爛熟於心,根據企業招聘的具體要求可以做相應的有針對性的準備。

我個人覺得前6項應該是最低要求,是作為一個Java開發者必須要具備的專業技能。

掌握這 11 個方法論,搞定一場完美技術面試

項目介紹

項目介紹

我們應該如何向面試官介紹項目?

本系統是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實現,可以使用JSP作為MVC中的V,也可使用模板引擎(如Freemarker和Velocity)來生成視圖,還可以是各種文檔或報表(如Excel和PDF等),而Servlet和自定義的控制器是MVC中的C,當然Spring MVC中提供了作為前端控制器的DispatcherServlet;

J通常是事務腳本,

K應該是AOP(面向切面編程)技術,

L目前廣泛使用的有memcached和Redis;

M的選擇方案很多,最有可能的是Hibernate和MyBatis,也可以兩種技術同時運用,但通常是將增刪改交給Hibernate來處理,而複雜的查詢則由MyBatis完成,

此外TopLink、jOOQ也是優秀的持久層解決方案;底層的數據存取傳統上是使用關係型數據庫,可以是MySQL、Oracle、SQLServer、DB2等,隨著大數據時代的來臨,也可以採用NoSQL(如MongoDB、MemBase、BigTable等)和其他大數據存取方案(如GFS、HDFS等);

項目的開發模型P可以是瀑布模型、快速原型模型、增量模型、螺旋模型、噴泉模型、RAD模型等。

掌握這 11 個方法論,搞定一場完美技術面試

項目開發流程

1.可行性分析

可行性分析報告 / 項目開發計劃書

2.需求分析 >>> 需求規格說明書

· OOAD(用例圖、時序圖、活動圖)

· 界面原型:幫助理解需求、業務層設計時推導事務腳本

3.設計 >>> 概要設計說明書/詳細設計說明書

· 抽取業務實體(領域對象):類圖、E-R圖(概念設計階段)

· 分層架構:確定各層的技術實現方案(具體到使用的框架、數據庫服務器、應用服務器等)。

業務層設計:事務腳本模式(事務:用戶發送一次請求就是一個事務;

腳本:一個方法或一個函數;事務腳本:把一次請求封裝為一個方法或一個函數;

事務腳本模式:一個事務開始於腳本的打開,終止於腳本的關閉)。

業務層涉及的對象有三種類型:事務腳本類(封裝了業務的流程)、數據訪問對象(DAO,封裝了持久化操作)、數據傳輸對象(DTO,封裝了失血/貧血領域對象),三者之間的關係是事務腳本類組合(聚合)數據訪問對象,這二者都依賴了數據傳輸對象

· 正向工程(UML類圖生成Java代碼)和逆向工程(Java代碼生成UML類圖)

· 數據庫物理設計(ER圖轉換成表間關係圖、建庫和建表、使用工具插入測試數據)

4.編碼

5.測試 >>> 測試報告 / 缺陷報告

· 單元測試:對軟件中的最小可測試單元進行檢查和驗證,在Java中是對類中的方法進行測試,可以使用JUnit工具來實施。

· 集成測試:集成測試也叫組裝測試或聯合測試。在單元測試的基礎上,將所有模塊按照設計要求組裝成為子系統進行測試。

· 系統測試:將已經確認的軟件、硬件、外設、網絡等元素結合在一起,進行信息系統的各種組裝測試和確認測試,系統測試是針對整個產品系統進行的測試,目的是驗證系統是否滿足了需求規格的定義,找出與需求規格不符或與之矛盾的地方,從而提出更加完善的方案。

· 驗收測試:在軟件產品完成了單元測試、集成測試和系統測試之後,產品發佈之前所進行的軟件測試活動。它是技術測試的最後一個階段,也稱為交付測試。驗收測試的目的是確保軟件準備就緒,並且可以讓最終用戶將其用於執行軟件的既定功能和任務。

6.交付和維護 >>> 用戶手冊 / 操作手冊

掌握這 11 個方法論,搞定一場完美技術面試

項目管理

· 版本控制: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、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等。

· 安全框架:Shiro、PicketBox等。

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

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

· UI插件:EasyUI、MiniUI等。

· 富文本框:UEditor、CKEditor等。

面試提問

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

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

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

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

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

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

說明:對於沒有實際項目經驗的,可以在前程無憂、智聯招聘、拉勾網等網站上搜索招聘Java程序員的公司,找到他們的官方網站了解他們做的項目,查看項目的詳細介紹,然後嘗試完成其中一部分功能,最好請教一下高人看看自己的設計和代碼是否恰當,這樣相當於積累了一定的項目經驗。

掌握這 11 個方法論,搞定一場完美技術面試

常見錯誤

1.只在計算機上練習

2.不做行為面試題演練

3.不做模擬面試訓練

4.試圖死記硬背答案

5.不大聲說出你的解題思路

6.代碼不夠嚴謹

7.不寫測試代碼

8.輕言放棄

反問面試官的問題

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

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

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

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

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

S.A.R.法則

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

"
作者:駱昊
來源:https://blog.csdn.net/jackfrued/article/details/45035097

想要成為合格的Java程序員或工程師到底需要具備哪些專業技能,面試者在面試之前到底需要準備哪些東西呢?

本文陳列的這些內容既可以作為個人簡歷中的內容,也可以作為面試的時候跟面試官聊的東西,你可以把這些內容寫到你的簡歷中,當然更需要的是你在面試的時候向面試官展示這些專業技能。

相信此文對正在尋覓Java程序員(Java工程師)職位的freshman以及希望成為中高級Java開發者的junior都會有所幫助。


掌握這 11 個方法論,搞定一場完美技術面試


專業技能

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

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

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

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

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

6.熟悉常用的關係型數據庫產品(MySQL、Oracle),熟練的使用SQL和PL/SQL進行數據庫編程。

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

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

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

說明:上面羅列的這些東西並不是每一項你都要爛熟於心,根據企業招聘的具體要求可以做相應的有針對性的準備。

我個人覺得前6項應該是最低要求,是作為一個Java開發者必須要具備的專業技能。

掌握這 11 個方法論,搞定一場完美技術面試

項目介紹

項目介紹

我們應該如何向面試官介紹項目?

本系統是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實現,可以使用JSP作為MVC中的V,也可使用模板引擎(如Freemarker和Velocity)來生成視圖,還可以是各種文檔或報表(如Excel和PDF等),而Servlet和自定義的控制器是MVC中的C,當然Spring MVC中提供了作為前端控制器的DispatcherServlet;

J通常是事務腳本,

K應該是AOP(面向切面編程)技術,

L目前廣泛使用的有memcached和Redis;

M的選擇方案很多,最有可能的是Hibernate和MyBatis,也可以兩種技術同時運用,但通常是將增刪改交給Hibernate來處理,而複雜的查詢則由MyBatis完成,

此外TopLink、jOOQ也是優秀的持久層解決方案;底層的數據存取傳統上是使用關係型數據庫,可以是MySQL、Oracle、SQLServer、DB2等,隨著大數據時代的來臨,也可以採用NoSQL(如MongoDB、MemBase、BigTable等)和其他大數據存取方案(如GFS、HDFS等);

項目的開發模型P可以是瀑布模型、快速原型模型、增量模型、螺旋模型、噴泉模型、RAD模型等。

掌握這 11 個方法論,搞定一場完美技術面試

項目開發流程

1.可行性分析

可行性分析報告 / 項目開發計劃書

2.需求分析 >>> 需求規格說明書

· OOAD(用例圖、時序圖、活動圖)

· 界面原型:幫助理解需求、業務層設計時推導事務腳本

3.設計 >>> 概要設計說明書/詳細設計說明書

· 抽取業務實體(領域對象):類圖、E-R圖(概念設計階段)

· 分層架構:確定各層的技術實現方案(具體到使用的框架、數據庫服務器、應用服務器等)。

業務層設計:事務腳本模式(事務:用戶發送一次請求就是一個事務;

腳本:一個方法或一個函數;事務腳本:把一次請求封裝為一個方法或一個函數;

事務腳本模式:一個事務開始於腳本的打開,終止於腳本的關閉)。

業務層涉及的對象有三種類型:事務腳本類(封裝了業務的流程)、數據訪問對象(DAO,封裝了持久化操作)、數據傳輸對象(DTO,封裝了失血/貧血領域對象),三者之間的關係是事務腳本類組合(聚合)數據訪問對象,這二者都依賴了數據傳輸對象

· 正向工程(UML類圖生成Java代碼)和逆向工程(Java代碼生成UML類圖)

· 數據庫物理設計(ER圖轉換成表間關係圖、建庫和建表、使用工具插入測試數據)

4.編碼

5.測試 >>> 測試報告 / 缺陷報告

· 單元測試:對軟件中的最小可測試單元進行檢查和驗證,在Java中是對類中的方法進行測試,可以使用JUnit工具來實施。

· 集成測試:集成測試也叫組裝測試或聯合測試。在單元測試的基礎上,將所有模塊按照設計要求組裝成為子系統進行測試。

· 系統測試:將已經確認的軟件、硬件、外設、網絡等元素結合在一起,進行信息系統的各種組裝測試和確認測試,系統測試是針對整個產品系統進行的測試,目的是驗證系統是否滿足了需求規格的定義,找出與需求規格不符或與之矛盾的地方,從而提出更加完善的方案。

· 驗收測試:在軟件產品完成了單元測試、集成測試和系統測試之後,產品發佈之前所進行的軟件測試活動。它是技術測試的最後一個階段,也稱為交付測試。驗收測試的目的是確保軟件準備就緒,並且可以讓最終用戶將其用於執行軟件的既定功能和任務。

6.交付和維護 >>> 用戶手冊 / 操作手冊

掌握這 11 個方法論,搞定一場完美技術面試

項目管理

· 版本控制: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、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等。

· 安全框架:Shiro、PicketBox等。

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

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

· UI插件:EasyUI、MiniUI等。

· 富文本框:UEditor、CKEditor等。

面試提問

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

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

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

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

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

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

說明:對於沒有實際項目經驗的,可以在前程無憂、智聯招聘、拉勾網等網站上搜索招聘Java程序員的公司,找到他們的官方網站了解他們做的項目,查看項目的詳細介紹,然後嘗試完成其中一部分功能,最好請教一下高人看看自己的設計和代碼是否恰當,這樣相當於積累了一定的項目經驗。

掌握這 11 個方法論,搞定一場完美技術面試

常見錯誤

1.只在計算機上練習

2.不做行為面試題演練

3.不做模擬面試訓練

4.試圖死記硬背答案

5.不大聲說出你的解題思路

6.代碼不夠嚴謹

7.不寫測試代碼

8.輕言放棄

反問面試官的問題

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

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

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

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

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

S.A.R.法則

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

掌握這 11 個方法論,搞定一場完美技術面試

算法題的五種解法

1.舉例法:通過舉例子發現其中的一般規則。

例子:圓內接三角形是銳角三角形的概率是多少?這是搜狗的一個面試題,可以在圓上隨意畫三個點連接成三角形就可以知道答案了。

2.模式匹配法

例子:一個有序數組的元素經過循環移動,元素的順序變成"3 4 5 6 1 2"。怎樣找到數組中最小的那個元素,假設數組中的元素各不相同。這個題目和折半查找看起來是那麼相似,因此可以借鑑折半查找的算法,最小元素顯然出現在"mid > right"的轉折點。

3.簡化推廣法

說明:簡化問題規模和數據類型,然後再發現通用的解法。

4.簡單構造法

例子:找出"abcde"的所有可能的排列組合。先考慮只有"a"的情況,再考慮"ab"的情況,以此類推。最終你可能會得到一個遞歸公式。這種方法往往會演變成遞歸法。

5.數據結構頭腦風暴法

例子:隨機生成一些數字,並找出其中位數。這種問題可以在頭腦中將你瞭解的數據結構過一遍,看看哪種是最合適的數據結構。上面的題目可以建立兩個堆,一個大根堆和一個小根堆,較小的元素放在大根堆,較大的元素放在小根堆,如果兩個堆不平衡,可以從其中一個堆取出元素放入另一個堆即可。最後中位數應該是兩個堆的根之一。

錄取談判

1. 要理直氣壯的提出具體的待遇要求

2. 開出比預期稍高的價碼

3. 不要只盯著薪水(很多公司更願意就薪水之外的條件做出讓步)

4. 使用最合適的方法(可以嘗試在電話或E-mail中談判待遇)

"

相關推薦

推薦中...