1、熟練的使用Java語言進行面向對象程序設計,有良好的編程習慣,熟悉常用的JavaAPI,包括I/O(NIO)、Socket、JDBC、XML、集合框架、多線程(並發編程)、反射等。
2、熟悉基於JSP和Servlet的JavaWeb開發,熟練的使用JSTL和EL編寫無腳本動態頁面,對Servlet和JSP的工作原理和生命周期有深入了解,有使用監聽器、過濾器等Web組件以及MVC架構模式進行JavaWeb項目開發經驗。
3、對Spring的IoC容器和AOP原理有深入了解,熟練的使用Spring進行事務、日誌、安全性等的管理,熟練的運用Spring框架管理各種Web組件及其依賴關系,有使用SpringMVC作為表示層技術以及使用Spring提供的持久化支持進行Web項目開發的經驗,熟悉Spring對其他框架的整合。
4、熟悉Hibernate和MyBatis的核心API,熟練的使用Hibernate、MyBatis等ORM框架,對Hibernate的關聯映射、繼承映射、組件映射、緩存機制、事務管理以及性能調優等有深入的理解。
5、熟練的使用HTML、CSS和JavaScript進行Web前端開發,熟悉jQuery和Bootstrap,有使用前端MVC框架(AngularJS)和JavaScript模板引擎(HandleBars)進行項目開發的經驗,對Ajax技術在Web項目中的應用有深入理解。
6、熟練的使用SQL和PL/SQL進行資料庫編程,熟悉常用的關系型資料庫產品(MySQL、Oracle)。
7、熟悉面向對象的設計原則,熟練的使用UML進行面向對象的分析和設計,有TDD(測試驅動開發)和DDD(領域驅動設計)的經驗,對GoF設計模式和企業應用架構模式有深入的了解和實際開發的相關經驗。
8、熟悉Apache、NginX、Tomcat、WildFly、Weblogic等Web伺服器和應用伺服器的使用,熟悉多種伺服器整合、集群和負載均衡的配置。
9、熟練的使用產品原型工具Axure,熟練的使用設計建模工具PowerDesigner和EnterpriseArchitect,熟練的使用Java開發環境Eclipse和IntelliJ,熟練的使用前端開發環境WebStorm,熟練的使用軟體版本控制工具SVN和Git,熟練的使用項目構建和管理工具Maven和Gradle。
說明:上面羅列的這些東西並不是每一項你都要爛熟於心,根據企業招聘的具體要求可以做相應的有針對性的准備。但是前6項應該是最低要求,是作為一個Java軟體工程師必須要具備的專業技能。
2. 做一個java高級程序員甚至架構師 應該掌握哪些技術
當前主流框架和緩存機制,各種資料庫的優缺點及緩存機制,框架的整合,框架的沖突及解決方案。具備一定的程序調優和sql語句調優能力,主流的工作流框架,必備的單元測試編寫。扎實的程序語言基礎。
3. hibernate的緩存機制舉例
為了提高系統性能,hibernate也使用了緩存機制。在hibernate框架中,主要包含兩個方面的緩存,一級緩存和二級緩存。hibernate緩存的作用主要表現在以下兩個方面: 1) 通過主鍵(ID)載入數據的時候 .2) 延遲載入中。
一級緩存:hibernate的一級緩存是由session提供的,因此它只存在session的生命周期中。也就是說session關閉的時候該
session所管理的一級緩存也隨之被清除。hibernate的一級緩存是session所內置的,默認開啟,不能被卸載,也不能進行任何配置。在緩
存中的對象,具有持久性,session對象負責管理.一級緩存的優點是使用同一個session對象多次查詢同一個數據對象,僅對資料庫查詢一次。一級
緩存採用的是Key-Value的MAP方式來實現的。在緩存實體對象時,對象的主關鍵字ID是MAP的Key,實體對象就是對象的值。所以說一級緩存是
以實體對象為單位進行存儲的。訪問的時候使用的是主鍵關鍵字ID。一級緩存使用的是自動維護的功能。但可以通過session提供的手動方法對一級緩存的
管理進行手動干預。evict()方法用於將某個對象從session的一級緩存中清除。clear()方法用於將session緩存中的方法全部清除。
二級緩存:二級緩存的實現原理與一級緩存是一樣的。也是通過Key-Value的Map來實現對對象的緩存。二級緩存是作用在
SessionFactory范圍內的。因此它它可被所有的Session對象所共享。需要注意的是放入緩存中的數據不能有第三方的應用對數據進行修改。
二級緩存默認關閉,需要程序員手動開啟。首先導入ehcache.jar二級緩存包。然後,在src下添加ehcache.xml配置,同時,在
hibernate.cfg.xml中啟用二級緩存<property
name="hibernate.cache.use_second_level_cache">
true</property><property
name="hibernate.cache.provider_class">
net.sf.ehcache.hibernate.EhCacheProvider</property>。第三:指定使用二級緩存緩存哪
種類型的對象,在hbm.xml中添加<cache region="sampleCache1" usage="read-only"/>
4. 緩存和主存對系統程序員和應用程序員是透明的是什麼意思
意思就是
系統程序員和應用程序員在設計系統或者設計程序的時候都會把硬體因素考慮進去(包括緩存和主存),一個合格的系統程序員和應用程序員必須知道,理解存儲機制,以優化系統和程序。
另一層:我覺得這里的程序員更多的偏向黑客之類的意思
5. java程序員需要掌握哪些基本的技能
java程序員需要掌握的基本技能:
使用Java語言進行面向對象程序設計,有良好的編程習慣,熟悉常用的Java API,包括集合框架、多線程(並發編程)、I/O(NIO)、Socket、JDBC、XML、反射等;
JSP和Servlet的Java Web開發,對Servlet和JSP的工作原理和生命周期有深入了解,熟練的使用JSTL和EL編寫無腳本動態頁面,有使用監聽器、過濾器等Web組件以及MVC架構模式進行Java Web項目開發的經驗;
對Spring的IoC容器和AOP原理有深入了解,熟練的運用Spring框架管理各種Web組件及其依賴關系,熟練的使用Spring進行事務、日誌、安全性等的管理,有使用SpringMVC作為表示層技術以及使用Spring提供的持久化支持進行Web項目開發的經驗,熟悉Spring對其他框架的整合;
熟練的使用Hibernate、MyBatis等ORM框架,熟悉Hibernate和MyBatis的核心API,對Hibernate的關聯映射、繼承映射、組件映射、緩存機制、事務管理以及性能調優等有深入的理解;
熟練的使用HTML、CSS和Java進行Web前端開發,熟悉jQuery和Bootstrap,對Ajax技術在Web項目中的應用有深入理解,有使用前端MVC框架(AngularJS)和Java模板引擎進行項目開發的經驗;
熟悉常用的關系型資料庫產品MySQL、Oracle,熟練的使用SQL和PL/SQL進行資料庫編程。