A. 學習java軟體工程師要具備什麼條件
一、專業技能
1、熟練的使用、Socket、JDBC、XML、反射等。
2、熟悉基於jsP和Servlet的JavaWeb開發,對Servlet和JSP的工作原理和生命周期有深入了解,熟練的使用JSTL和EL編寫無腳本動態頁面,有使用監聽器、過濾器等Web組件以及MVC架構模式進行JavaWeb項目開發經驗。
3、對Spring的IoC容器和AOP原理有深入了解,熟練的運用Spring框架管理各種Web組件及其依賴關系,熟練的使用Spring進行事務、日誌、安全性等的管理,有使用SpringMVC作為表示層技術以及使用Spring提供的持久化支持進行Web項目開發的經驗,熟悉Spring對其他框架的整合。
4、熟練的使用Hibernate、MyBatis等ORM框架,熟悉Hibernate和MyBatis的核心API,對Hibernate的關聯映射、繼承映射、組件映射、緩存機制、事務管理以及性能調優等有深入的理解。
5、熟練的使用HTML、CSS和和進行項目開發的經驗。
6、熟悉常用的關系型資料庫產品(MySQL、Oracle),熟練的使用SQL和PL/SQL進行資料庫編程。
7、熟悉面向對象的設計原則,對GoF設計模式和企業應用架構模式有深入的了解和實際開發的相關經驗,熟練的使用UML進行面向對象的分析和設計,有TDD(測試驅動開發)和DDD(領域驅動設計)的經驗。
8、熟悉Apache、NginX、Tomcat、WildFly、Weblogic等Web伺服器和應用伺服器的使用,熟悉多種伺服器整合、集群和負載均衡的配置。
9、熟練的使用產品原型工具Axure,熟練的使用設計建模工具PowerDesigner和EnterpriseArchitect,熟練的使用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;
F最有可能是jQuery庫及其插件或者是Bootstrap框架,當然如果要構建單頁應用(SPA)最佳的方案是前端MVC框架(如AngularJS)和,最有可能的實現框架是SpringMVC,除此之外還有Struts2、JSF以及Apache為JSF提供的MyFaces實現。
H是JSP,JSP作為MVC中的V,也可使用模板引擎(如Freemarker和Velocity)來生成視圖
還可以是各種文檔或報表(如Excel和PDF等)。
I是Servlet或者自定義的控制器,他們是MVC中的C,當然SpringMVC中提供了作為前端控制器的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模型等。
B. java中如何自動定位
自動定位需要特定的api,比如網路等。
在需要的地方調用第三方提供的api調用定位相關代碼就好。
C. 應該怎樣學習JAVA順序是什麼
Java環境搭建、Java流程式控制制語句-for循環、switch選擇判斷、循環嵌套、數組拷貝、多維數組、final關鍵字、構造函數的調用、類的訪問許可權和路徑、面向對象高級特性、Java異常處理、Set,Map,List介面及介面實現類、Java線程、同步阻塞、JavaIO流、文件的操作,復制,讀寫,刪除等。
MySQL安裝、管理、創建資料庫、MySQLUPDATE 查詢、Mysql高級操作、JDBC、JDBC資料庫連接操作,JDBC動態Sql處理、Servlet3.0 網頁重定向、Servlet3.0 新增的註解支持、AJAX、responseText屬性詳解等。
Struts2異常處理、Struts2+Log4j集成、Struts2和JSON實例、Hibernate5、Hibernate集合映射、Hibernate組件映射、Spring4.0、SpringAOP+ AspectJ框架、Spring 與其它Web框架集成、Spring Hibernate支持等。
SpringMVC、Spring MVC生成JSON數據、MyBatis、MyBatis 環境配置及入門、Mybatis set標簽、Mybatis trim標簽、Shiro、Shiro快速入門教程、Shiro Web應用等。
SpringBoot、全局異常處理、過濾器監聽器、EHCache緩存、SpringBoot Quartz定時任務、Vue、Vue.js 安裝、模板語法、計算屬性、事件處理器、Vue.js 自定義指令、Vue.js 路由等
ActiveM環境搭建、生產者和消費者、消息持久化操作、RSA數字加密演算法、Codebar條形碼生成器、zxing二維碼生成器、HighCharts統計圖、Echarts統計圖、網路播放器ckplayer、嵌入式網路播放器,可以瀏覽器和移動端隨意使用
分布式服務框架的理解,Dubbo架構設計詳解及其核心要點,框架運行原理分析、SpringData數據訪問、Lucene搜索引擎、Lucene的全文搜索伺服器介紹、索引建立方式、Solr海量數據搜索引擎、Socket網路通信、實現RMI遠程對象通訊、使用JMS消息服務、Kafka分布式消息系統、WebService與RestfulWS等
Spring Security安全框架、實現Web應用安全控制、緩存應用與EhCache框架、OSCache與JBossCache框架、MyBatis與Hibernate緩存機制、NoSQL應用與SQL調優、MongoDB
NoSQL資料庫、Redis內存資料庫、實現RedisSession共享、SQL語句的優化、實現資料庫讀寫分離、WEB應用集群及性能優化、Maven項目管理工具、Web伺服器負載均衡、實現Nginx與Tomcat集群、使用LoadRunner測試工具、性能優化之內存調優、代碼優化與重構的方法等。
D. java 初級、中級、高級工程師等 如何區分
初級水平(認知理解技術為主):
項目實戰方面:
1.能夠熟練使用三大框架或者springboot進行基本的業務開發,熟悉MVC架構
2.能寫工作流,熟悉常用的設計模式
java部分:
1.能熟練應用封裝,繼承,多態這三大特性。能熟練使用list,set等collection介面,及map介面。
2.對java的較為復雜的技術能夠靈活使用如:多線程,反射,io流,網路編程和資料庫編程
3.sql能夠熟練掌握,如子查詢,mybatis的復雜查詢
中級水平(利用技術解決復雜業務和理解技術的原理為主):
1.對常用的框架的原理有較清晰的理解,能夠掌握其設計思想和所用到的設計模式。
2.能獨立的完成項目的某些模塊的任務
3.能夠進行性能優化,代碼規范,編程習慣良好無冗餘代碼
4.對緩存,事務管理,日誌,分布式等復雜技術有著深入理解
高級水平(技術領導):
1.能對需求進行架構設計,選擇框架以適應最合適的業務,作為某個項目的領導,帶領團隊完成項目。
2.有自己的開源項目,可以寫出自己的組件,對開源的框架能夠進行二次編寫,java核心技術有著非常深入的理解
架構師
能管理多個高級工程師及以下級別,提升工作效率
其發展戰略可以參考下圖:
1、Java是一門面向對象編程語言,不僅吸收了C++語言的各種優點,還摒棄了C++里難以理解的多 繼承、指針等概念,因此Java語言具有功能強大和簡單易用兩個特徵。
2、Java語言作為靜態面向對象編程語言的代表,極好地實現了面向對象理論,允許程序員以優雅 的思維方式進行復雜的編程。
3、Java具有簡單性、面向對象、分布式、健壯性、安全性、平台獨立與可移植性、多線程、動態 性等特點。
4、Java可以編寫桌面應用程序、Web應用程序、分布式系統和嵌入式系統應用程序等。 2018年9 月25日,Java11(18.9 LTS)正式發布,支持期限至2026年9月。
E. Java培訓班一般都教什麼內容
階段一:揭開企業開發神秘面紗 (4周)
本階段主要目標是讓學員初步了解真實的企業開發流程,掌握開發JavaEE企業應用必要的基礎知識,並通過簡單B/S應用,為學員揭開企業開發的神秘面紗。
主要課程內容:
1) Web開發基礎:HTML語言、JavaScript、CSS、DOM等
2) Oracle資料庫基礎:安裝、配置Oracle資料庫,熟練掌握SQL語句
3) 操作系統:Windows /Linux的安裝、管理
4) JavaEE環境搭建:搭建JavaEE開發環境、運行環境
實踐項目:典型電子商務網站
階段二:夯實企業開發核心技術(8周)
要勝任企業開發,必須扎實掌握企業開發所需的核心技術。本階段主要目標是讓學員能夠掌握並熟練使用JavaEE企業開發所需的核心技術。
主要課程內容:
1) Java SE核心技術:Java語言核心編程技術,
2) Java EE Web開發技術:Servlet/JSP/JavaBean編程技術、MVC模式
3) Java EE流行框架技術:Struts2/Hibernate3/Spring2流行框架
4) Java EE企業開發通用組件:log4j、JFreeChart、分頁、目錄樹等
5) UML與設計模式:統一建模語言UML、經典設計模式
6) 富客戶端(RIA)開發:AJAX、Flex等
實踐項目:(一)即時通訊系統 (二)國家煙草生產銷售管理系統
階段三:模擬真實企業開發環境(4周)
掌握了企業開發核心技術後,如何正確運用到真實的企業開發流程中才是關鍵。本階段,以真實的項目、真實的流程,帶學員模擬真實的企業開發流程,為學員進行「准員工」訓練。
主要課程內容:
1) 需求分析 2) 原型設計 3) 系統設計 4) 代碼編寫 5) 測試
6) 項目提交 7) 項目評審
實戰項目:中國移動IDC運營管理系統
階段四:如何敲開企業大門(增值服務)
當具備了企業所要求的技術功底後,要敲開企業的大門,仍需要具備一些「軟技能」,本階段主要為學員提供企業前沿技術講解,職業規劃和發展指導,簡歷與面試輔導等免費服務,從各個方面保障就業。
F. 學習java難嗎一般要學多久
前言
回想幾年前的自己,在學校裡面左手穩著鍵盤,右手捏住滑鼠,不停的動著右手的中指,一聲Penta KIll把自己帶入了一個虛幻的世界
日復一日,之前那個好學又勤奮的自己慢慢開始轉變,從每天的外賣到內急的時候都感覺在浪費時間,此時我已經知道現在的自己已經頹廢了,就這樣渾渾噩噩的過了三年
直到有一天,在睡夢中聽到一聲尖叫「啊!!!我找到工作了!!!面試官跟我說給我6.5K的實習工資!!!啊!!!」
此時的我只能在被窩裡面默默的哭泣,回想自己的三年時光,通過自己的努力上了黃金,然而這些跟室友找到工作相比,我的內心是無比的空虛、害怕
眼裡已經打濕了我的枕頭,擦乾眼角上的淚水,用被子掩蓋住淚濕了的枕頭,起床洗漱,我發誓,我的人生轉折點就從此刻開始,我要努力學習Java,每天必須保持6個小時的時間去學習,一定要保持自己精神狀態,利用好每一分每一秒
開始整理我的學習路線,保存到我成為高級Java工程師
階段1 java語言基礎
1-1-Java基礎語法
1、第1節 java運行環境
2、第2節 HelloWorld案例
3、第3節 關鍵字&標識符
4、第4節 常量&變數
5、第5節 數據類型轉換
6、第6節 運算符
7、第7節 方法入門
8、第8節 JDK9新特性-Jshell
9、第9節 選擇結構-if語句-switch語句
10、第10節 循環結構-for-while-do..while
11、第11節 開發工具-IDEA
12、第12節 方法復習
13、第13節 方法重載
14、第14節 數組
小總結:
這個階段我花了半個月的時間去學習,也就是90個小時的時間,其中有27個小時是我用來看理論的知識,另外的63個小時是我用來給自己練手的,每一個知識點我都要做很多的題目,直到自己拿到題目的時候,能夠把自己的思路轉為代碼實現
毫無疑問,這個階段最耗時的自然是循環結構、選擇結構,因為這兩個知識點對於一個初學者來說很不友好,不僅代碼量增加了,邏輯思維也是很繞的,如果不保持自己的思路清晰,你就理解不了他每一步的結果
然後就是數組,這一個階段可以說是全新的階段,我們可以把我們需要的數據都保存在數組裡面,在這個知識點結束之後我還做了一個數組版的學生管理系統
1-2 -面向對象和封裝
1、1_2_1_01_面向對象思想的概述
2、1_2_1_02_面向對象思想的舉例
3、1_2_1_03_類和對象的關系
4、1_2_1_04_類的定義
5、1_2_1_05_對象的創建及其使用
6、1_2_1_06_手機類練習
7、1_2_1_07_一個對象的內存圖
8、1_2_1_08_兩個對象使用同一個方法的內存
9、1_2_1_09_兩個引用指向同一個對象的
10、1_2_1_10_使用對象類型作為方法的參
11、1_2_1_11_使用對象類型作為方法的返
12、1_2_1_12_成員變數和局部變數的區別
13、1_2_1_13_面向對象三大特徵之封裝性
14、1_2_1_14_private關鍵字的作用及使用
15、1_2_1_15_練習使用private關鍵字定義
16、1_2_1_16_this關鍵字的作用
17、1_2_1_17_構造方法
18、1_2_1_18_定義一個標準的類
小總結:
這一個階段花的時間足足有一個月,時間的分配也是按照30%的時間去看理論,70%的時間去動手敲代碼
我覺得這個階段每一個知識點都是特別的重要,在這個階段我學會了什麼是對象,學會了如何面向對象編程,也學會了如何使用對象編程去偷懶,把重復的事情都封裝成了一個對象,交給這個對象去幫我做
1-3-Java語言高級
1、01-常用API_1
2、02-繼承與多態
3、03-常用API第二部分
4、04-集合
5、05-異常與多線程
6、06-File
7、07-網路編程提取碼:s5ks
8、08-JDK8新特性
9、09-基礎加強
10、10-MySQL
11、11 -JDBC
小總結:
是的,這個階段我花了兩個月,一個月學完JavaSE,然後一個月學完了MySQL跟JDBC,話說這個階段是最難的,也是最重要的,這個階段的東西你學不懂就代表你後面的知識都處於一個危機邊緣
在這個階段我做了四個小項目,和一些零零碎碎的練習題,代碼加起來應該有三四萬行了吧;其中有三個項目是學生管理系統,我從數組版把它改為了集合版,然後又改為了IO版,最後改為了MySQL版;然後還做了一個ATM小型的桌面程序
然後個人感覺我在這個階段學得是比較扎實的,期間還去看了許多的集合的源碼,雖然有的看不懂,但是對於我一個初學者來說已經很了不起了
階段2 JavaWeb+旅遊網
小總結:
這個階段的知識非常多,我不僅學習了前端三劍客,還學了JavaWEB、JSP、JSTL、EL,然後為了做一個項目去練手,還學習了Redis和Maven
這個階段我花了兩個月的時間,包括跟著做好這個項目,因為我前面的基礎部分學得比較扎實吧,所以感覺這部分比較簡單,難點就是JavaWEB的過濾器,這個知識點我花的時間比較多
然後就是大概的從面向對象編程轉為了面向介面編程了
01 HTML和CSS
1、第1節 概念介紹
2、第2節 基本標簽
3、第3節 表單標簽
4、第4節 CSS概述
5、第5節 CSS_選擇器
6、第6節 CSS屬性
7、第7節 CSS_案例-注冊頁面
02 JavaScript
1、01 JavaScript_簡介
2、02 JavaScript基礎語法
3、03 JavaScript運算符
4、04 JavaScript特殊語法
5、05 JavaScript_語法_流程式控制制語
6、06 JavaScript_對象
7、07 DOM和事件的簡單學習
8、08 BOM對象
9、09 DOM對象
10、10JavaScirpt中的事件
03 BootStrap
1、01 快速入門
2、02Bootstrap_柵格系統
3、03Bootstrap_全局CSS樣式
4、04Bootstrap_組件和插件
5、05案例_旅遊網
04 XML
1、01 xml基礎
2、02 xml_約束
3、03 xml_解析
05 Tomcat
1、01web相關概念
2、02 tomcat基本操作
3、03 tomcat_部署項目
06-Servlet和HTTP請求協議
1、01Servlet_快速入門
2、02Servlet_生命周期方法
3、03Servlet_3.0註解配置
4、04 IDEA與tomcat相關配置
5、05 Servlet_體系結構與urlpartten配置
6、06 HTTP請求協議
07 -Request和Respons
1、01 Request原理和繼承體系
2、02 Request_獲取請求數據
3、03 請求轉發和request共享數據
4、04 Request_獲取ServletContext
5、05 request登錄案例
6、06 HTTP響應協議
7、07 response之重定向
8、08 response之相對路徑和絕對路徑
9、09 response之輸出數據
10、10 response之驗證碼
11、11 ServletContext對象
12、12 文件下載
08-Cookie和Session
1、第1節 Cookie快速入門
2、第2節 Cookie_細節
3、第3節 Cookie案例
4、第4節 JSP改造Cookie案例
5、第5節 Session快速入門
6、第6節 Session細節
7、第7節 Session之驗證碼案例
09-JSP,EL和JSTL
1、第1節 JSP基礎語法
2、第2節 MVC
3、第3節 EL介紹和運算符
4、第4節 EL獲取域中存儲的數據
5、第5節 JSTL常用標簽
10-綜合案例(用戶信息)
1、第1節 登錄功能
2、第2節 添加刪除修改功能
3、第3節 刪除選中功能
4、第4節 分頁查詢功能
5、第5節 復雜條件查詢功能
11-Filter和Listener
1、第1節 Filter快速入門
2、第2節 Filter細節
3、第3節 Filter案例
4、第4節 監聽器
12-Jquery
1、第1節 JQuery基礎
2、第2節 JQuery選擇器
3、第3節 Jquery基礎案例
4、第4節 JQuery動畫和遍歷
5、第5節 JQuery事件綁定和切換
6、第6節 Jquery高級案例
13-Ajax和JSON
1、第1節 原生JS方式實現Ajax
2、第2節 JQuery方式實現Ajax
3、第3節 JSON基礎語法
4、第4節 JSON_解析器
14-Redis
1、第1節 Redis環境搭建
2、第2節 Redis命令操作
3、第3節 Redis持久化
4、第4節 Jedis代碼操作
5、第5節 Jedis連接池
6、第6節 redis案例
15-Maven基礎
1、第1節 基本概念
2、第2節 maven的安裝和倉庫種類
3、第3節 maven標准目錄結構和常用命令
4、第4節 maven生命周期和概念模型圖
5、第5節 使用骨架創建maven的java工程
6、第6節 maven工程servlet實例
16-旅遊網
1、01 准備工作
2、02 注冊功能
3、03 登陸和退出功能
4、04 BaseServlet抽取
5、05 分類數據展示功能
6、06 旅遊線路分頁展示分頁展示
7、07 旅遊線路查詢
8、08 旅遊線路詳情
9、09 旅遊線路收藏
階段三:基本框架SSM
小總結:
這個階段相對於JavaWEB來說還是比較簡單的,少了很多的代碼量,但是卻多了很多的配置,稍微不注意就會把這些配置給搞錯,期間出現了好幾次注入bean失敗的錯誤,這是我最不能夠容忍的,同樣的錯誤居然出現了好幾次,而且都是沒有給service加上@Service這個註解導致的;所以,在同一個地方跌倒多次是最不應該的,以後一定的加強注意了
在此期間,我還把JavaWEB做的那個項目改為了SSM版的,在改的過程中才體會到這些代碼真的是很浪費,之前一個一個參數的接收,現在只需要一個對象就可以接收到了,而且更加的讓我明白面向介面編程的含義了
階段3 1.Mybatis
1、01.Mybatis課程介紹及環境搭建
2、02.Mybatis入門案例
3、03.自定義Mybatis框架
4、04.自定義Mybatis框架基於註解開發
5、05.使用Mybatis完成CRUD
6、06.使用Mybatis完成DAO層的開發
7、07.Mybatis的連接池及事務
8、08.動態SQL
9、09.Mybatis的多表操作
10、10.JNDI擴展知識
11、11.Mybatis的緩存
12、12.Mybatis註解開發
階段3 2.Spring
1、01.Spring框架簡介
2、02.程序間耦合
3、03.Spring的 IOC 和 DI
4、04.Spring的常用註解
5、05.基於XML的IOC的案例1
6、06.Spring的新註解
7、07.銀行轉賬案例
8、08.面向切面編程 AOP
9、09.JdbcTemplate的基本使用
10、10.Spring中事務控制
階段3 3.SpringMVC
1、01.SpringMVC概述及入門案例
2、02.參數綁定及自定義類型轉換
3、03.SpringMVC常用註解
4、04.SpringMVC返回值類型及響應數據類型
5、05.文件上傳
6、06.異常處理及攔截器
7、07.SSM整合案例
階段四:高級框架
小總結:
這個階段可不止Spring Boot,還有springcloud,springsecurity等等這些框架,就不一一列出來了,資料網上一大堆
學了Spring Boot之後你才會發現,SSM是多麼的麻煩,Spring Boot為不僅為我們減少了代碼量,還為我們減少了很多的配置,採用註解的方式
當然,這么智能的框架,我能不把做的項目改為Spring Boot版本嗎?
階段4 4.Spring Boot
1、01.spring boot 介紹
2、02.spring boot 入門
3、03.spring boot 原理分析
4、04.spring boot 配置文件
5、05.spring boot 集成提取碼:ywin
階段4 5.Git
1、01.Git簡介及安裝使用
2、02.連接遠程倉庫
3、03.Git分支
參考:《2020最新Java基礎精講視頻教程和學習路線!》
原文鏈接:網頁鏈接