java程序員實(shí)習(xí)周記
實(shí)習(xí)使大學(xué)生增加社會(huì)閱歷,積累工作經(jīng)驗(yàn)。社會(huì)閱歷和工作經(jīng)驗(yàn)是職業(yè)場(chǎng)中的決定因素,但這些因素是校園里學(xué)不到的,只有參加社會(huì)實(shí)踐活動(dòng),才能縮短畢業(yè)后適應(yīng)社會(huì)的時(shí)間,在社會(huì)實(shí)踐中日積月累,把體驗(yàn)融入自己的知識(shí),通過實(shí)踐的檢驗(yàn),最終升華為自身的閱歷和經(jīng)驗(yàn)。以下就是小編整理的java程序員實(shí)習(xí)周記,一起來看看吧!
java程序員實(shí)習(xí)周記
java程序員實(shí)習(xí)第一周
XML:概念:可擴(kuò)展的標(biāo)記語(yǔ)言、優(yōu)點(diǎn):結(jié)構(gòu)化,平臺(tái)、語(yǔ)言無關(guān),標(biāo)準(zhǔn)的
XML讀寫XML格式的文檔,完成數(shù)據(jù)交換、聲明:大多數(shù)XML文檔以XML聲明作為開始、建議使用XML聲明,但它不是必需的。如果有,它一定是文檔的java程序員實(shí)習(xí)第一行內(nèi)容。、注釋、實(shí)體:不能直接表示的符號(hào)、五個(gè)實(shí)體、自定義實(shí)體、CDATA:一段文本,不會(huì)被解析器解析。
Log4j:是Apache的一個(gè)開放源代碼項(xiàng)目,通過使用Log4j,我們可以控制日志信息輸送的目的地是控制臺(tái)、文件、GUI組件、甚至是套接口服務(wù) 器、NT的事件記錄器、UNIX Syslog守護(hù)進(jìn)程等;我們也可以控制每一條日志的輸出格式;通過定義每一條日志信息的級(jí)別,我們能夠更加細(xì)致地控制日志的生成過程。
Log4j 由三個(gè)重要的組件構(gòu)成:日志信息的優(yōu)先級(jí),日志信息的輸出目的地,日志信息的輸出格式。日志信息的優(yōu)先級(jí)從高到低有ERROR、WARN、 INFO、DEBUG,分別用來指定這條日志信息的重要程度;日志信息的輸出目的地指定了日志將打印到控制臺(tái)還是文件中;而輸出格式則控制了日志信息的顯示內(nèi)容。
java程序員實(shí)習(xí)第二周
Hibernate是一個(gè)開放源代碼的對(duì)象關(guān)系映射框架,它對(duì)JDBC進(jìn)行了非常輕量級(jí)的對(duì)象封裝,使得Java程序員可以隨心所欲的使用對(duì)象編程思維來操縱數(shù)據(jù)庫(kù)。 Hibernate可以應(yīng)用在任何使用JDBC的場(chǎng)合,既可以在Java的客戶端程序使用,也可以在Servlet/JSP的Web應(yīng)用中使用,最具革命意義的是,Hibernate可以在應(yīng)用EJB的J2EE架構(gòu)中取代CMP,完成數(shù)據(jù)持久化的重任。 數(shù)據(jù)庫(kù)設(shè)計(jì):a) 降低關(guān)聯(lián)的復(fù)雜性、b) 盡量不使用聯(lián)合主鍵、c) ID的生成機(jī)制,不同的數(shù)據(jù)庫(kù)所提供的機(jī)制并不完全一樣、d) 適當(dāng)?shù)娜哂鄶?shù)據(jù),不過分追求高范式
2、 HQL優(yōu)化:HQL如果拋開它同HIBERNATE本身一些緩存機(jī)制的關(guān)聯(lián),HQL的優(yōu)化技巧同普通的SQL優(yōu)化技巧一樣,可以很容易在網(wǎng)上找到一些經(jīng)驗(yàn)之談。
加載策略:延遲加載vs立即加載、-延遲加載(默認(rèn)) 不會(huì)立即命中數(shù)據(jù)庫(kù),使用數(shù)據(jù)時(shí)命中、在可以改變?yōu)榱⒓础?使用數(shù)據(jù)必須在session關(guān)閉之前、-立即加載:立即命中數(shù)據(jù)庫(kù),不管有沒有數(shù)據(jù)
抓取策略、查詢抓取:(N+1)、連接抓。盒枰陉P(guān)聯(lián)的對(duì)象中設(shè)臵fetch="select|join"、N+1 與 1+M:-針對(duì)一端,如果查詢有m個(gè)對(duì)象,這時(shí)會(huì)先發(fā)送1條sql語(yǔ)句查出m個(gè)對(duì)象,然后再發(fā)送m條sql語(yǔ)句查關(guān)聯(lián)對(duì)象,這就是1+M、-針對(duì)多端,如果查詢有n個(gè)對(duì)象,那么對(duì)每個(gè)對(duì)象需要重新發(fā)送一條sql語(yǔ)句,這就是n+1。
事務(wù)控制:事務(wù)方面對(duì)性能有影響的主要包括:事務(wù)方式的選用,事務(wù)隔離級(jí)別以及鎖的選用a) 事務(wù)方式選用:如果不涉及多個(gè)事務(wù)管理器事務(wù)的話,不需要使用JTA,只有JDBC的事務(wù)控制就可以。b) 事務(wù)隔離級(jí)別:參見標(biāo)準(zhǔn)的SQL事務(wù)隔離級(jí)別c) 鎖的選用:共享鎖、獨(dú)占鎖、更新鎖、死鎖、悲觀鎖、樂觀鎖。
java程序員實(shí)習(xí)第三周
前面做過的新豆商城,使用JDBC來連接數(shù)據(jù)庫(kù),現(xiàn)在學(xué)習(xí)了Hibernate,所以把所有連接數(shù)據(jù)庫(kù)的代碼轉(zhuǎn)變成hibernate來連接。
為什么選擇Hibernate:由于是對(duì)JDBC的輕易級(jí)封閉,內(nèi)存消耗少,最快的運(yùn)行效率。、開發(fā)效率高,Eclipse、JBuilder等主流 JAVA集成開發(fā)環(huán)境對(duì)Hibernate有很好的支持,在大的項(xiàng)目,特別是持久層關(guān)系映射很復(fù)雜的情況下,Hibernate效率高的驚人。分布式,安全檢查,集群,負(fù)載均衡的支持。輕量級(jí)封裝,避免引入過多復(fù)雜的問題,調(diào)試容易,也減輕程序員的負(fù)擔(dān)。具有可擴(kuò)展性,API開放,當(dāng)本身功能不夠用的時(shí)候,可以自己遍碼進(jìn)行擴(kuò)展。對(duì)JDBC訪問數(shù)據(jù)庫(kù)的代碼做了封裝,大大簡(jiǎn)化了數(shù)據(jù)訪問層繁瑣的重復(fù)性代碼。
總結(jié):通過hibernate連接,發(fā)現(xiàn)比以前用JDBC連接的代碼量要少很多,簡(jiǎn)潔很多。唯一不好的是在XML的配臵文件中,經(jīng)常會(huì)有錯(cuò)誤。我相信,這只是我對(duì)hibernate不熟悉造成的,當(dāng)對(duì)hibernate使用多了,這些問題就迎刃而解。
java程序員實(shí)習(xí)第四周
在之前的項(xiàng)目基礎(chǔ)上,實(shí)現(xiàn)以下功能:
系統(tǒng)可以分為不同權(quán)限的管理員,管理本系統(tǒng),如商品管理員、系統(tǒng)管理員等。
系統(tǒng)管理員可以配臵一些信息管理本系統(tǒng)。
系統(tǒng)可以管理商品(添加、刪除、修改、查詢)。
系統(tǒng)可以管理商品分類(添加、刪除、修改、查詢)。
系統(tǒng)可以管理品牌(添加、刪除、修改、查詢)。
系統(tǒng)可以管理論壇,根據(jù)商品分類創(chuàng)建論壇分類。自定義分類等。
系統(tǒng)可以的論壇管理功能等,此處不再詳細(xì)累贅。
系統(tǒng)可以進(jìn)行訂單管理功能。
系統(tǒng)可以進(jìn)行用戶管理功能。
公告管理管理。
模板管理功能。
支付用送貨管理。
難點(diǎn):顧客的購(gòu)物功能
1. 顧客點(diǎn)擊商品信息頁(yè)的購(gòu)買按鈕,傳遞商品id、顏色到系統(tǒng),系統(tǒng)根據(jù)客戶傳遞的值將商品放入購(gòu)物車中,然后顯示購(gòu)物車頁(yè)面。
顧客依此往復(fù),添加產(chǎn)品。
2. 顧客可以修改購(gòu)買商品的數(shù)量,此處使用Ajax技術(shù),動(dòng)態(tài)刷新頁(yè)面及商品小計(jì)金額和總金額。
3. 顧客可以刪除購(gòu)物車中的商品,此處仍然使用Ajax技術(shù)。
4. 顧客點(diǎn)擊計(jì)算按鈕的時(shí)候,彈出結(jié)算頁(yè)面,顧客選擇送貨方式、付款方式、以及修改送貨地址等。用戶還可以選擇使用豆豆支付商品。
5. 顧客點(diǎn)擊提交完成本次購(gòu)物,即完成一次訂單購(gòu)物。
總結(jié):通過實(shí)踐才能學(xué)到更多,更了解自己學(xué)會(huì)了多少。簡(jiǎn)單的總結(jié)為幾個(gè)字:多看,多問,多觀察,多思考!
java程序員實(shí)習(xí)第五周
項(xiàng)目重構(gòu)是團(tuán)體合作,由6個(gè)人一起完成。要一起討論包的命名、實(shí)體類。之后由技術(shù)總監(jiān)把包的命名規(guī)范上傳到共享區(qū),團(tuán)隊(duì)做項(xiàng)目需要用到JIRA來跟進(jìn)每天的任務(wù)。每個(gè)人還需要寫總結(jié):今天做了什么?做的過程中遇到的一些問題?明天打算做什么?這樣項(xiàng)目經(jīng)理才知道你今天完成了哪些內(nèi)容。 我的任務(wù)主要是做后臺(tái)產(chǎn)品的管理,添加產(chǎn)品、修改產(chǎn)品、刪除產(chǎn)品、以及產(chǎn)品圖片的上傳功能。用戶訂單的`實(shí)現(xiàn)。
在團(tuán)隊(duì)合作中,我們提出的志同道合的口號(hào)就是團(tuán)隊(duì)精神的具體表現(xiàn),沒有一個(gè)共同的工作目標(biāo)一切都很難實(shí)現(xiàn),集體主義的具體表現(xiàn)就是團(tuán)隊(duì)精神,在我們工作中離不開團(tuán)隊(duì)精神 的指引,團(tuán)隊(duì)離不開統(tǒng)一的指揮,才能保證團(tuán)隊(duì)的順利工作和工作成績(jī)的取得,這就是團(tuán)隊(duì)精神的巨大作用,在我們不同的歷史時(shí)期,團(tuán)隊(duì)精神發(fā)揮了不同的作用, 有一點(diǎn)是可以值得大家重視的就是,在凝聚人心鼓舞士氣方面都具有十分重要的作用。在這里,我明白了團(tuán)隊(duì)合作的重要性。 在接下來的代碼實(shí)施中,工作進(jìn)行的很順利。
java程序員實(shí)習(xí)第六周
在新豆商城的項(xiàng)目設(shè)計(jì)中,總結(jié):需求分析是重點(diǎn)。
前臺(tái)需求分析,系統(tǒng)前臺(tái)擁有2種用戶,即瀏覽使用本系統(tǒng)的顧客,當(dāng)顧客注冊(cè)為本系統(tǒng)的會(huì)員時(shí),即本系統(tǒng)的java程序員實(shí)習(xí)第2種。
功能描述如下:瀏覽、注冊(cè)、搜索、購(gòu)物、登陸、消息功能、個(gè)人資料修改、收貨地址、積分交易、訂單查看等。
用例圖如下:(略)
需求分析,系統(tǒng)后臺(tái)擁有多種用戶,簡(jiǎn)單描述如下:商品管理員、系統(tǒng)管理員等。由于時(shí)間關(guān)系,本系統(tǒng)后臺(tái)前期可能不做開發(fā)。預(yù)想在后期專門開發(fā)權(quán)限管理欄目,可以根據(jù)需要產(chǎn)生多種管理員以分配不同的;功能描述如下:商品管理、商品分類管理、品牌管理、;后臺(tái)用例圖如下:;系統(tǒng)管理員;java程序員實(shí)習(xí)第二十一周;實(shí)習(xí)java程序員實(shí)習(xí)第二十一個(gè)禮拜;struts是開源軟件;軟件工程師使用Struts為業(yè)務(wù)應(yīng)用的每一層提供;Action,這個(gè)類通常由用戶提供,該控制器負(fù)責(zé);Model部分:由JavaBean組成,Acti;View部分:該部分采用管理欄目,可以根據(jù)需要產(chǎn)生多種管理員以分配不同的權(quán)限進(jìn)行管理。
功能描述如下:商品管理、商品分類管理、品牌管理、訂單管理、送貨方式管理、會(huì)員管理、公告管理、模板管理、論壇分類管理、帖子管理、系統(tǒng)配臵、支付管理等。
后臺(tái)用例圖如下:(略)
java程序員實(shí)習(xí)第七周
struts是開源軟件。使用Struts的目的是為了幫助我們減少在運(yùn)用MVC設(shè)計(jì)模型來開發(fā)Web應(yīng)用的時(shí)間。如果我們想混合使用Servlets和JSP的優(yōu)點(diǎn)來建立可擴(kuò)展的應(yīng)用,struts是一個(gè)不錯(cuò)的選擇。
軟件工程師使用Struts為業(yè)務(wù)應(yīng)用的每一層提供支持。它的目的是為了幫助我們減少在運(yùn)用MVC設(shè)計(jì)模型來開發(fā)Web應(yīng)用的時(shí)間。我們?nèi)匀恍枰獙W(xué)習(xí)和應(yīng)用該架構(gòu),不過它將可以完成其中一些繁重的工作。如果想混合使用Servlets和JSP的優(yōu)點(diǎn)來建立可擴(kuò)展的應(yīng)用。 Action,這個(gè)類通常由用戶提供,該控制器負(fù)責(zé)接收來自ActionServlet的請(qǐng)求,并根據(jù)該請(qǐng)求調(diào)用模型的業(yè)務(wù)邏輯方法處理請(qǐng)求,并將處理結(jié)果返回給JSP頁(yè)面顯示。
Model 部分:由JavaBean組成,ActionForm用于封裝用戶的請(qǐng)求參數(shù),封裝成ActionForm對(duì)象,該對(duì)象被ActionServlet轉(zhuǎn)發(fā)給Action,Action根據(jù)ActionForm里面的請(qǐng)求參數(shù)處理用戶的請(qǐng)求。JavaBean則封裝了底層的業(yè)務(wù)邏輯,包括數(shù)據(jù)庫(kù)訪問等。
View部分:該部分采用JSP實(shí)現(xiàn)。Struts提供了豐富的標(biāo)簽庫(kù),通過標(biāo)簽庫(kù)可以減少腳本的使用,自定義的標(biāo)簽庫(kù)可以實(shí)現(xiàn)與Model的有效交互,并增加了現(xiàn)實(shí)功能。對(duì)應(yīng)上圖的JSP部分。
Controller 組件:Controller組件有兩個(gè)部分組成——系統(tǒng)核心控制器,業(yè)務(wù)邏輯控制器。系統(tǒng)核心控制器,對(duì)應(yīng)上圖的ActionServlet。該控制器由 Struts框架提供,繼承HttpServlet類,因此可以配臵成標(biāo)注的Servlet。該控制器負(fù)責(zé)攔截所有的HTTP請(qǐng)求,然后根據(jù)用戶請(qǐng)求決定是否要轉(zhuǎn)給業(yè)務(wù)邏輯控制器。業(yè)務(wù)邏輯控制器,負(fù)責(zé)處理用戶請(qǐng)求,本身不具備處理能力,而是調(diào)用
Model來完成處理。對(duì)應(yīng)Action部分。
總結(jié):學(xué)習(xí)了才知道struts很強(qiáng)大。
java程序員實(shí)習(xí)第八周
Spring 也是一個(gè)開源框架,Spring的用途不僅限于服務(wù)器端的開發(fā)。從簡(jiǎn)單性、可測(cè)試性和松耦合的角度而言,任何Java應(yīng)用都可以從Spring中受益。 傳統(tǒng)J2EE應(yīng)用的開發(fā)效率低,Spring作為開源的中間件,獨(dú)立于各種應(yīng)用服務(wù)器,甚至無須應(yīng)用服務(wù)器的支持,也能提供應(yīng)用服務(wù)器的功能,如聲明式事務(wù)、事務(wù)處理等。
簡(jiǎn)單來說,Spring是一個(gè)輕量級(jí)的控制反轉(zhuǎn)(IoC)和面向切面(AOP)的容器框架。輕量——從大小與開銷兩方面而言Spring都是輕量的。完整的Spring框架可以在一個(gè)大小只有1MB多的JAR文件里發(fā)布。并且Spring所需的處理開銷也是微不足道的。此外,Spring是非侵入式的:典型地,Spring應(yīng)用中的對(duì)象不依賴于Spring的特定類?刂品崔D(zhuǎn)——Spring通過一種稱作控制反轉(zhuǎn)(IoC)的技術(shù)促進(jìn)了松耦合。面向切面——Spring提供了面向切面編程的豐富支持,允許通過分離應(yīng)用的業(yè)務(wù)邏輯與系統(tǒng)級(jí)服務(wù)進(jìn)行內(nèi)聚性的開發(fā)。容器 ——Spring包含并管理應(yīng)用對(duì)象的配臵和生命周期,在這個(gè)意義上它是一種容器,你可以配臵你的每個(gè)bean如何被創(chuàng)建——基于一個(gè)可配臵原型,你的 bean可以創(chuàng)建一個(gè)單獨(dú)的實(shí)例或者每次需要時(shí)都生成一個(gè)新的實(shí)例——以及它們是如何相互關(guān)聯(lián)的。框架——Spring可以將簡(jiǎn)單的組件配臵、組合成為復(fù)雜的應(yīng)用。在Spring中,應(yīng)用對(duì)象被聲明式地組合,典型地是在一個(gè)XML文件里。Spring也提供了很多基礎(chǔ)功能(事務(wù)管理、持久化框架集成等等),將應(yīng)用邏輯的開發(fā)留給了你。
所有Spring的這些特征使你能夠編寫更干凈、更可管理、并且更易于測(cè)試的代碼。它們也為Spring中的各種模塊提供了基礎(chǔ)支持。
【java程序員實(shí)習(xí)周記】相關(guān)文章:
Java程序員認(rèn)證考試08-12
sun認(rèn)證java程序員10-25
sun認(rèn)證java程序員須知Java日志框架11-12
java程序員簡(jiǎn)歷自我評(píng)價(jià)12-23
java程序員簡(jiǎn)歷封面模板08-21
java程序員面試試題08-14
SUN認(rèn)證JAVA程序員簡(jiǎn)介05-12
初級(jí)java程序員任職要求11-11
初級(jí)java程序員面試要求11-11
java程序員面試題08-27