本文目錄一覽:
- 1、怎麼自學java工程師
- 2、Java程序開發步驟?
- 3、java可以開發什麼項目?
- 4、學Java有哪些可以練手的項目
- 5、JAVA面試:項目中,你負責哪幾個模塊?實現什麼功能?用了哪些技術?介紹一下你的項目開發流程?
- 6、java項目開發在多表情況下的DAO設計問題
怎麼自學java工程師
小夥伴想自學java開發技術,想必小夥伴的自學能力和自控能力比較強的,那小夥伴如何系統的自學java開發技術呢?
自學java開發技術首先是要選擇適合自己的java視頻,由於是自學java,小夥伴在找java視頻的時候最好是能找到講的比較詳細的,附有項目案例的全套java視頻。B站上或在百度搜索java相關視頻都可以找到,我比較喜歡康師傅的java視頻教程,講的比較細,比較適合自學。
小夥伴想要自學好java開發技術,基礎知識積累很重要。小夥伴在學習java開發技術的時,要鞏固好自己的基礎知識,結合一些小的項目來深入理解java開發技術知識。
小夥伴在學習java開發技術過程中,不要忽略了項目實戰的重要性。只有理論實踐相結合的去學習,才能更好的理解java開發技術知識與運用。
多交流,培養自己編程思維。小夥伴在自學的過程中,最好是能和身邊正在從事編程行業的朋友進行交流,了解一下他的編程思維是什麼,自己有哪些不足,還可以通過和朋友的交流,讓你學到更多新穎的、簡便的解決問題的方法。
Java程序開發步驟?
一個完整的Java程序開發步驟主要包括:
1、項目啟動
1)、項目組成立(公司成員、客戶成員)
2)、制定項目預期目標
3)、制定項目計劃周期
4)、建立好項目組成員溝通機制
2、需求調研
1)、創建調研計劃、協調調研時間
2)、收集客戶資料,獲取客戶需求
所有的資料都需要保留一份,資料中存疑的需要及時詢問
3)、編寫需求文檔
重點描述出客戶的業務流程和性能要求。
採用Word、Excel、Rose等形式。
4)、需求變更記錄
5)、確定開發環境和運行環境
6)、擴展性要求
7)、與舊系統的接駁要求。
8)、估算出項目工作量
本階段需要一套需求管理系統來進行需求的管理。
本階段的需求文檔也是用戶測試的依據。
3、系統設計/詳細設計
一個系統可以分為基礎平台和應用模塊兩部分。
1)、選擇基礎平台,無論是採用第三方平台還是自行開發平台,都需要深入了解,查看是否符合要求。
2)、應用模塊設計(針對業務流程)
3)、中間件的採用或自行開發,需要深入了解。
4)、用戶界面的設計
如果用戶界面設計完畢並確認,即可初步寫出用戶使用手冊、管理員使用手冊。
5)、變更記錄
本階段的系統設計是集成測試的依據。
4、程序開發
創建開發任務計劃表、開發計劃日程表
1)、優先編寫測試用例
2)、按照編碼規範編寫代碼
3)、按照文檔注釋規範注釋
以上形成開發文檔。
本階段需要一套版本管理系統。
本階段的測試用例也是單元測試的依據。
如果能做到,最好每日構建。
5、測試
本階段需要一套Bug管理系統,形成需求、設計、開發、測試互動。
1)、編寫測試計劃和測試方案
2)、功能測試
單元測試、集成測試
3)、性能測試
集成測試、壓力測試
如果能做到,最好能進行自動化測試。
如果能做到,做分析統計工作。
最後形成測試報告。
6、試用、培訓、維護
本階段需要解決:
1)、解決異地修改和公司修改的同步問題。
2)、用戶測試中的Bug修改問題,按照級別分為
a)、程序Bug
b)、設計變更
c)、需求變更
盡量按照a b c的順序來進行修改,盡量避免b、c級的修改。
最後形成安裝手冊、維護記錄。
以上是Java項目開發過程中的基本步驟!
java可以開發什麼項目?
小編收集了java開發10個練手項目教程,大企業實戰項目教程+源碼,將近5G的資料通通送給你!
項目一:Ting域主持人
項目介紹:Ting域主持人項目是一個標準的互聯網項目,主要為各種需要主持人的場合提供主持人聘請相關功能。項目包含了前台和後台。前台主要是讓新人和婚慶公司搜索相關主持人並進行聘請,在線對主持人下訂單。後台是讓主持人對自己訂單的管理以及管理員對整個平台的管理。
技術架構:Spring、SpringMVC、MyBatis、MyBatisPlus、移動支付、簡訊驗證、RBAC、EasyUI、POI、百度chart
項目亮點:真實企業項目;已上線項目;包含企業產品經理設計的項目原型;標準互聯網項目,包含前後端;完整的第三方平台接入
2、未來出行汽車租賃平台
項目介紹:未來出行汽車租賃平台是為汽車出租、出售進行管理的平台。管理員平台中可以對租賃人和汽車進行管理。項目包含:客戶管理、業務管理、系統管理、汽車管理、租賃人管理等模塊。項目中還包含了完善的許可權管理相關功能。
技術架構:Spring、SpringMVC、MyBatis、MyBatisPlus、移動支付、簡訊驗證、RBAC、EasyUI、POI、百度chart
項目亮點:完善的頁面資源;汽車租賃業務全部實現;概括能力強。包含了所學的全部技術
3、至尊智能家居
項目介紹:智能家居隨著互聯網和物聯網的發展逐漸走進千家萬戶。智能家居的企業和工廠越來越多。至尊智能家居是智能家居企業進行綜合管理的內部系統。可以實現智能家居管理、人事行政管理、系統公告、知識管理、任務管理、銷售管理、項目管理、統計分析、系統設置、產品資料管理等功能。
技術架構:Spring Boot、SpringMVC、MyBatis、Druid、Logback、Quartz、Shiro、Swagger2、Linux、BootStrap
項目亮點:使用快速開發框架,真實感受最初進入企業的感覺;小組項目,完全模擬企業項目組開發中如何進行配合;Linux伺服器,不僅僅是開發項目,還包含了部署項目
4、百戰商城
項目介紹:百戰商城項目是一個大型綜合性的B2C平台。完全採用SOA模式架構,使用Dubbo實現服務調用。基於高並發、海量數據環境進行實現。
百戰商城分為前後台兩套系統。後台系統使用FastDFS實現分散式文件存儲主要負責商品管理,商品分類管理,CMS等內容。前台系統使用Redis實現緩存數據查詢包含首頁服務,搜索服務,單點登錄服務、購物車服務,訂單服務等。
技術架構:Spring Boot、Spring MVC、MyBatis、Zookeeper、Dubbo、Redis、Solr、RabbitMQ、FastDFS、Nginx、Spring Security、Spring Session、MyBatis Plus、MyCat
項目亮點:真實大型互聯網項目呈現;SOA架構;高並發解決方案;RabbitMQ實現流量削峰和非同步消息;使用Solr實現海量數據搜索;Redis緩存穿透、緩存雪崩、緩存擊穿解決方案;基於Linux平台部署該項目,企業真實伺服器環境;Nginx服務代理、負載均衡;使用Navicat做資料庫分庫分表及讀寫分離;FastDFS分散式文件存儲;Spring Security 完成許可權驗證;Spring Session 分散式Session
5、Livegoods房源租賃海選平台
項目介紹:本項目為前後端分離項目,移動客戶端為其平台。作為互聯網時代房屋平台,Livegoods擁有完善的房屋租賃資源搜索能力,可以根據城市定位,精確高效的搜索到需要的租賃房源信息。本系統分為租客平台、業主平台、用戶管理平台兩大功能平台。
技術架構:SpringBoot、SpringMVC、MyBatis、SpringDataMongoDB、SpringData、ElasticSearch、MongoDB、Spring Cloud、ElasticSearch、FastDFS、Nginx、支付
項目亮點:前後端分離項目,感受目前企業開發最主流的前後端分離開發模式;移動端項目,可以感受Java程序員開發app服務端的實現過程;微服務架構;秒殺系統實現;海量數據搜索;鏡像和雲
6、數字貨幣交易所項目
項目介紹:開源數字貨幣交易所,基於Java開發的比特幣交易所,包含BTC交易所、ETH交易所、數字貨幣交易所、交易平台、撮合交易引擎等核心模塊。項目技術採用業界最流行、社區非常活躍的開源組件Spring Cloud Alibaba來構建我們的交易系統,是行業第一家基於Alibaba技術的大型項目,也是Spring Cloud的最佳實踐之一。
項目架構:
後端技術:Spring Cloud Alibaba + Spring Boot + Mybatis Plus + Elasticsearch + Kafka + Mongodb + Zookeeper + RocketMQ + OAuth2、0 + Jwt + Redis + Hutool + Orika + Fst + Swagger-ui + Mycat + Docker + ECS + OSS + 騰訊防水牆
前端技術:Vue + iView + less + axios
7、尚學堂OA系統
項目介紹:尚學堂OA系統取自真實的尚學堂辦公自動化平台,包括人事管理、考勤管理、報銷管理、收支管理等多個模塊。可以全面練習JSP/Servlet核心技能、MVC模式、Ajax、資料庫設計和多表SQL語句操作、PowerDesigner繪製資料庫模型圖、業務流程圖、多種面向對象模型圖,還有驗證碼、POI、Echarts、JUnit、kindeditor、My97DatePicker等輔助技術。通過該項目,學生熟悉項目設計開發流程,具有自主設計和開發項目初步能力。
功能模塊:尚學堂OA系統:包括人事管理、考勤管理、報銷管理、收支管理等多個模塊。包含人事管理中的部門管理、崗位管理練習單表的MVC操作,人事管理中的員工管理練習多表的MVC操作。考勤管理練習Ajax的應用。報銷管理涉及理解業務流程、異常鏈、事務管理等多項技能。收支管理主要是練習Echarts圖表插件的使用,使用柱狀圖、餅圖等直觀顯示統計數據。
需要java項目資料的小夥伴可以添加一下分享資料的官方老師WX:18731997677,備註「gx尚學堂」可以找老師免費領取幾649套簡歷模板哦!
學Java有哪些可以練手的項目
1.各種管理系統
源碼下載(實例一):
jsp開發完整的博研圖書館後台管理系統,不使用框架開發的,太完美了
源碼下載(實例二):
javaWeb圖書館管理系統源碼mysql版本
源碼下載(實例三)
GitHub – uboger/LibraryManager: JAVA GUI 圖書館管理系統
源碼下載(實例四):
java swing開發企業人事管理系統源代碼下載
2.簡易的聊天系統
源碼下載(實例一):
java swing開發網路聊天室群聊系統,基於java多線程socket編程
源碼下載(實例二):
java swing開發大貓聊天室源碼,簡單易懂,適合java swing初學者
源碼下載(實例三):
java websocket開發簡單聊天室系統,實現群聊與一對一單人聊天案例
源碼下載(實例四):
jsp開發簡單聊天室demo-分享
3.實現通訊錄
java通訊錄實現了添加刪除和查找功能
源碼下載(二):
JAVA版通訊錄管理系統課程設計源碼
源碼下載(三):
Java Swing界面.完美設計通訊錄..有需要的下
4.坦克大戰
源碼下載(一):
俄羅斯方塊 JAVA版
源碼下載(二):
GitHub – FieldSoft-HelloClyde/Tetris-Swing: Swing編寫的俄羅斯方塊
源碼下載(三):
java swing開發的俄羅斯方塊遊戲,包含完整代碼+詳細注釋
5.五子棋
源碼下載(一):
Java實踐(十一)——五子棋
源碼下載(二):
java swing開發的五子棋小遊戲源碼
源碼下載(三):
java swing開發單機版五子棋源代碼下載
源碼下載(四):
Java五子棋演算法和代碼
6.中國象棋
源碼下載(一):Java實踐(十二)——中國象棋
7.貪吃蛇
java貪吃蛇源代碼 、 java貪吃蛇源代碼
以上是總結出來的簡單的練手項目,希望對你有幫助
JAVA面試:項目中,你負責哪幾個模塊?實現什麼功能?用了哪些技術?介紹一下你的項目開發流程?
要說清楚這個問題,得要看你有沒有真正去做一些東西。就算沒有親自做,那也要有自己的理解,要不然是不能自圓其說的。
舉個例子,就說比較常見的OA項目,一般會有文件櫃的功能。
這個功能實現用戶上傳和下載文件到自己的網路文件夾裡面(實際上就是伺服器裡面),那麼一般來說就要實現增刪文件夾、上傳下載文件、樹形顯示目錄結構(是否帶複選框)、管理目錄許可權等功能。而上傳下載或許又分單文件、多文件和目錄。目錄許可權又有允許所有人增刪或部分人增刪或只能查看等等,如果是部分人,怎麼指定。如果是部分許可權,怎麼指定。
使用技術嘛,這個就比較簡單了,用了什麼就說什麼。比如Ajax、EXT、Hibernete、Struts等等。。
開發流程就說開始怎麼設計,基於什麼考慮這麼設計,主要是技術了解程度和時間安排方面。後來或許進行了更改,又是為什麼。可以從數據結構到為何才用某種技術。
當然,描述的時候沒必要這麼詳細,捻重要的、自己熟悉的說,主要是能讓面試的人感受到你描述的東西就是你做的,你很了解整個過程。技術不必描述太深,主要是開發思想。
java項目開發在多表情況下的DAO設計問題
package com.xxx.web.dao.base;
import java.io.Serializable;
import java.util.LinkedHashMap;
import javax.annotation.Resource;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import com.xxx.bean.QueryResult;
import com.xxx.utils.GenericsUtils;
/**
* Dao公共類
* @author Administrator
* 本類主要是各個dao實現類的父類,以後寫dao實現類時只要繼承此類即可
*/
@SuppressWarnings(“unchecked”)
@Transactional
public abstract class DaoSupportT implements DaoT{
protected ClassT entityClass = GenericsUtils.getGenericsType(this.getClass());
@Resource protected SessionFactory sessionFactory;//注入SessionFactory實例
/**
* 插入一個實體
* @param o
*/
public void createObject(Object o){
sessionFactory.getCurrentSession().save(o);
}
/**
* 刪除一個實體
* @param o
*/
public void deleteObject(Object o){
sessionFactory.getCurrentSession().delete(o);
}
/**
* 更新一個實體
* @param o
*/
public void updateObject(Object o){
sessionFactory.getCurrentSession().update(o);
}
/**
* 查詢一個實體
* @param o
*/
@Transactional(readOnly=true,propagation=Propagation.NOT_SUPPORTED)
public T searchObject(Serializable id){
if(id == null) throw new RuntimeException(this.entityClass.getName()+ “:傳入的實體id不能為空”);
return (T)sessionFactory.getCurrentSession().get(this.entityClass, id);
}
@Transactional(readOnly=true,propagation=Propagation.NOT_SUPPORTED)
public long getCount() {
return (Long)sessionFactory.getCurrentSession().createQuery(“select count(o) from “+ (this.entityClass.getSimpleName())+ ” o”).uniqueResult();
}
@Transactional(readOnly=true,propagation=Propagation.NOT_SUPPORTED)
public QueryResultT getScrollData(int firstindex, int maxresult, LinkedHashMapString, String orderby) {
return getScrollData(firstindex,maxresult,null,null,orderby);
}
@Transactional(readOnly=true,propagation=Propagation.NOT_SUPPORTED)
public QueryResultT getScrollData(int firstindex, long maxresult, String wherejpql, Object[] queryParams) {
return getScrollData(firstindex,(int) maxresult,wherejpql,queryParams,null);
}
@Transactional(readOnly=true,propagation=Propagation.NOT_SUPPORTED)
public QueryResultT getScrollData(int firstindex, int maxresult) {
return getScrollData(firstindex,maxresult,null,null,null);
}
/**
* 查詢實體,並返回一個結果集
* @param firstIndex 前置索引
* @param maxNum 要查詢的數量
* @param wherehql hql語句
* @param params 參數
* @return QueryResultT結果集
*
*
* 如果想取出前20條,並以倒序,則hibernate以最後一個為1,
* 比如,資料庫中有20條數據,則你取出後10條,並以倒序顯示出來,則它的邏輯是20,19,18,…..11,懂了吧,
* 相應的查詢語句為
* getScrollData(int firstIndex, int maxNum,orderby)
*
*
*
*/
@Transactional(readOnly=true,propagation=Propagation.NOT_SUPPORTED)
public QueryResultT getScrollData(int firstIndex, int maxNum, String wherehql, Object[] params, LinkedHashMapString, String orderby ){
QueryResultT qr = new QueryResultT();
Session session = sessionFactory.openSession();
Query query = session.createQuery(” select o from “+this.entityClass.getSimpleName()+” o ” +(wherehql==null ||””.equals(wherehql.trim())?” “:” where “+wherehql)+ buildOrderby(orderby));
if(firstIndex!=-1 maxNum!=-1)
{
query.setFirstResult(firstIndex-1).setMaxResults(maxNum);
}
setParams(query, params);
qr.setResultList(query.list());
query = session.createQuery(” select count(o) from “+this.entityClass.getSimpleName()+” o ” +(wherehql==null ||””.equals(wherehql.trim())?” “:” where “+wherehql));
setParams(query, params);
qr.setTotalRecord((Long)query.uniqueResult());
session.close();
return qr;
}
給分,你的分太少了
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/242631.html