- 相關(guān)推薦
計算機java開(kāi)發(fā)實(shí)習周記范文
對于現在的在校大學(xué)生來(lái)說(shuō)其實(shí)積極的參與社會(huì )實(shí)習其實(shí)是對自己非常有幫助的,那么,實(shí)習周記怎樣寫(xiě)?
第一周
實(shí)習第一個(gè)禮拜,算是適應期。主要了解一些公司的背景、產(chǎn)品、發(fā)展方向等。剛到實(shí)習公司,不是像學(xué)校里的朝九晚五,而是朝八晚九。 我們不可能簡(jiǎn)單的了解一些企業(yè)文化,簡(jiǎn)單的學(xué)學(xué)新的知識就可以了,我們的這個(gè)實(shí)習必將是一個(gè)繁忙的實(shí)習,也必將是一個(gè)充實(shí)的,進(jìn)步的實(shí)習。來(lái)到這里,我們要忘掉大學(xué)里自由的作息時(shí)間,克服困難,養成良好的工作生活習慣 ;诟鞣矫娴脑,雖然在去之前我們做了比較充足的準備,但還是遇到了一些困難,例如學(xué)習時(shí)間長(cháng),實(shí)戰比較繁多,但時(shí)間又比較的短,難以保證按時(shí)按質(zhì)按量完成。下午下了班,員工們都回去了,我還在那兒練習,一直到晚上9點(diǎn),才能回住處休息。中午也沒(méi)有休息的地方,只能趴在電腦前休息一會(huì ),一兩周下來(lái),相當地疲憊。但我們都明白自己來(lái)實(shí)習的任務(wù),都堅持著(zhù)完成自己的任務(wù)和使命。這個(gè)星期熟悉了工作環(huán)境、java編程的環(huán)境配臵。等慢慢熟悉起來(lái),做起事情也越來(lái)越順手了.簡(jiǎn)單的總結為幾個(gè)字,那就是:多看,多問(wèn),多觀(guān)察,多思考!
第二周
實(shí)習第二個(gè)禮拜,主要是熟悉java的基礎語(yǔ)法,把基礎打扎實(shí),以后在開(kāi)發(fā)中才能如魚(yú)得水。學(xué)習總結如下幾點(diǎn):
1、類(lèi)之間的關(guān)系:關(guān)聯(lián)、聚合、繼承、實(shí)現和多態(tài)。
2、基本數據類(lèi)型:整數型、浮點(diǎn)型、字符型、布爾型。
3、常用邏輯語(yǔ)句和循環(huán)語(yǔ)句:switch只支持int類(lèi)型判斷,沒(méi)有寫(xiě)break易穿透至下一個(gè)循環(huán),jdk7.0貌似增強了支持數據類(lèi)型。
4、Break:強行退出循環(huán);Continue:跳出當前循環(huán)。
5、修飾符:pbulic,private,protected,default。設臵訪(fǎng)問(wèn)權限。
6、Static關(guān)鍵字:靜態(tài)修飾符,它修飾的方法、類(lèi)和變量可以全局調用。
7、Final關(guān)鍵字:禁止重寫(xiě)。
8、This關(guān)鍵字:指向自身引用。
9、string:是不可變的字符序列。(兩個(gè)string變量必須用copy的方式在內存中new出新的數據塊)
10、stringBuffer:是可變的字符序列,可以直接添加字符。
第三周
實(shí)習第三個(gè)禮拜,主要是熟悉java的高級語(yǔ)法(核心)
繼承:子類(lèi)繼承父類(lèi)的所有屬性和方法,如果方法和屬性被private修飾,子類(lèi)則無(wú)法讀取。子類(lèi)使用Super關(guān)鍵字繼承。父類(lèi)無(wú)法調用子類(lèi)方法。 構造方法:方法名稱(chēng)必須與類(lèi)名相同,且沒(méi)有返回值。Object類(lèi)是所有類(lèi)的父類(lèi),即java中的根類(lèi)。無(wú)參構造方法默認繼承object的。(構造方法的重載,實(shí)現不同參數的構造)
重載:方法相同,參數類(lèi)型不同,數量不同。構造方法中也常使用方法重載。 重寫(xiě):重寫(xiě)方法必須和被重寫(xiě)方法具有相同參數列表、相同方法和相同返回值。重寫(xiě)方法不能使用比被重寫(xiě)方法更嚴格的訪(fǎng)問(wèn)權限。
抽象:抽象類(lèi)被繼承后,方法必須被重寫(xiě)并實(shí)現,否則子類(lèi)也還是抽象類(lèi)。抽象方法只需聲明,無(wú)需實(shí)現。接口:實(shí)現關(guān)鍵字implements。接口中所有成員變
量和方法都是public。接口可以繼承其他接口,并添加新的屬性和方法。接口和實(shí)現類(lèi)之間存在多態(tài)。
多態(tài):三個(gè)必要條件分別是繼承、重寫(xiě)和父類(lèi)引用子類(lèi)對象。(java的核心思想)
第四周
實(shí)習第四個(gè)禮拜,主要熟悉了java的高級應用
線(xiàn)程:進(jìn)程是運行中的應用程序,是一套順序執行的指令,每個(gè)進(jìn)程都有自己獨立的內存空間。線(xiàn)程是一個(gè)并發(fā)執行的順序流,一個(gè)進(jìn)程包括多個(gè)順序執行流程,這些流程稱(chēng)為線(xiàn)程。 JVM 就是一個(gè)進(jìn)程,在JVM 中分出線(xiàn)程,比如main()就是主線(xiàn)程。同時(shí)開(kāi)辟并發(fā)執行的序列即多線(xiàn)程。調用start()方法,線(xiàn)程啟動(dòng);run()方法結束,線(xiàn)程就終止。線(xiàn)程是一個(gè)操作系統創(chuàng )建并維護的一個(gè)資源。對于單CPU 系統來(lái)說(shuō),某一個(gè)時(shí)刻只可能由一個(gè)線(xiàn)程在運行。一個(gè)Thread 對象就表示一個(gè)線(xiàn)程。進(jìn)程的數據空間獨立;線(xiàn)程的數據空間共享, 能充分使用CPU 的資源。線(xiàn)程間通信更容易。共享數據就要加鎖、解鎖,會(huì )降低效率。
I/O:是在JVM 和外部數據源之間交換數據。按數據傳輸方向劃分:輸入流和輸出;按數據單位劃分:字節流和字符流;過(guò)濾流用來(lái)封裝節點(diǎn)流或者其他過(guò)濾流,從而給節點(diǎn)流或其他的過(guò)濾流增加功能。
第五周
實(shí)習第五個(gè)禮拜,使用Collection框架做派叫號系統
首先分析項目需求,概述如下:
1.產(chǎn)品參與者
顧客:到營(yíng)業(yè)大廳排隊取號
柜員:提供業(yè)務(wù)服務(wù)的柜臺業(yè)務(wù)員
管理員:負責對業(yè)務(wù)類(lèi)型、業(yè)務(wù)受理情況進(jìn)行實(shí)時(shí)查看、調配的管理者
2.功能需求
1)、取號:顧客來(lái)到營(yíng)業(yè)大廳通過(guò)取號機取號,可以選擇自己要辦理的業(yè)務(wù)類(lèi)型。取號后自動(dòng)進(jìn)入排隊中。等待叫號;
2)、叫號:柜員可以通過(guò)叫號端進(jìn)行重復呼叫、暫停服務(wù)和轉移。叫號端可是軟件也可以是硬件設備;
3)、管理業(yè)務(wù)類(lèi)型:管理人員可以通過(guò)后臺管理進(jìn)行業(yè)務(wù)類(lèi)型的管理?梢蕴砑、禁用、修改一種業(yè)務(wù)類(lèi)型,為某種業(yè)務(wù)類(lèi)型可以設臵每天最大辦理量;
4)、管理窗口:管理人員可以通過(guò)后臺管理對業(yè)務(wù)窗口進(jìn)行管理?梢詾槟硞(gè)窗口指定辦理某種業(yè)務(wù)類(lèi)型;
5)、統計整合數據:系統可以定時(shí)的整合數據,將分散在每天的數據按人、業(yè)務(wù)類(lèi)型、時(shí)間進(jìn)行整合,可以將統計數據輸出成圖表形式;
6)、查看辦理情況:可以查看當前流量、已經(jīng)辦理、未辦理的人數。當前辦理效率,歷史數據等等;
7)、記錄日志:系統對關(guān)鍵的地方進(jìn)行日志記錄,以便系統可以在出錯時(shí)進(jìn)行調試和處理。 實(shí)施代碼編寫(xiě)。第一個(gè)項目設計,感覺(jué)難度很大。之前所學(xué)的是零零散散的知識點(diǎn),現在要把之前所學(xué)的知識連貫起來(lái),剛開(kāi)始不知道怎么去連貫,后來(lái)看了需求分析文檔,分析圖,慢慢的有點(diǎn)思路。在后面的做項目的過(guò)程中,遇到了太多的問(wèn)題,通過(guò)自己的思考、問(wèn)同事,問(wèn)老師慢慢的解決了。而在第一個(gè)項目中也學(xué)到了很多東西。
第六周
1、數據庫范式 作用:盡可能減少數據冗余、保證數據完整性、識別出實(shí)體、關(guān)系以及表的缺失
第一范式:字段都為單一屬性,且屬性為基礎類(lèi)型
第二范式:屬性必須完全依賴(lài)關(guān)鍵字
第三范式:非主鍵屬性不能依賴(lài)其他的非主鍵屬性
mysql 的學(xué)習,在學(xué)校里我對mysql已有了初步的了解。指導老師教我要靈活多變,什么時(shí)候要用到臨時(shí)表,嵌套查詢(xún),存儲過(guò)程用的地方等,叫我多看幾個(gè)例子,并敲下代碼運行下,體會(huì )里面的數據生成,查詢(xún)出自己要的數據等。然后再根據這些數據寫(xiě)出語(yǔ)句,生成需要的流程,這就是數據挖掘的精髓!那么存儲過(guò)程與一般的 SQL語(yǔ)句有什么區別呢?
存儲過(guò)程的優(yōu)點(diǎn):
1.存儲過(guò)程只在創(chuàng )造時(shí)進(jìn)行編譯,以后每次執行存儲過(guò)程都不需再重新編譯,而一般sql語(yǔ)句每執行一次就編譯一次,所以使用存儲過(guò)程可提高數據庫執行速度。
2.當對數據庫進(jìn)行復雜操作時(shí)(如對多個(gè)表進(jìn)行
Update,Insert,Query,Delete時(shí)),可將此復雜操作用存儲過(guò)程封裝起來(lái)與數據庫提供的事務(wù)處理結合一起使用。 3.存儲過(guò)程可以重復使用,可減少數據庫開(kāi)發(fā)人員的工作量
從中我學(xué)到了:存儲過(guò)程是數據在存儲到數據庫的過(guò)程中,可以對這些數據進(jìn)行操作,不然數據就是直接從頁(yè)面獲取,直接原樣存儲。
第七周
實(shí)習第七個(gè)禮拜,為了進(jìn)一步了解java開(kāi)發(fā)的相關(guān)知識,掌握java開(kāi)發(fā)的基本技術(shù),豐富java開(kāi)發(fā)的實(shí)戰經(jīng)驗,代碼的復用性。學(xué)習SQL的基礎知識及正確的運用方法,和有用的相關(guān)技術(shù),提高自己的工作效率。通過(guò)項目重構,培養我們綜合運用已學(xué)知識Java語(yǔ)言的面向對象編程能力;培養我們動(dòng)手能力;培養我們良好編程規范、編程方法;以便能較全面地理解、掌握和綜合運用所學(xué)的知識,提高自身的編程能力;增強自己的團隊協(xié)作意識,了解軟件開(kāi)發(fā)的思考角度和主要流程。為以后能夠更快地進(jìn)入工作狀態(tài)并且能夠更好的工作,打好一定的基礎。
從這里,我才真正的意識到實(shí)施一個(gè)軟件工程并不是說(shuō)簡(jiǎn)單的會(huì )編碼就能夠解決問(wèn)題的,我們更多的精力不是放在編碼上,編碼只是一個(gè)很小的模塊,只占到那么小的一個(gè)部分。這個(gè)事實(shí)在很大程度上顛覆了我以前的思想,在我以前的認識中,似乎整個(gè)軟件就是編碼,除此無(wú)它,還好有老師的指導,不然真的會(huì )出現老師所說(shuō)的,撞得頭破血流之后才想起來(lái)用軟件工程的思想來(lái)完成這個(gè)工作。
項目程序的編程是一個(gè)非常煩瑣而枯燥的過(guò)程,需要耐心和毅力去完成,不然中途出現過(guò)多的錯誤,會(huì )使之后的校驗略顯費時(shí)。
實(shí)習項目的代碼編寫(xiě),從而進(jìn)入到后期的校對和驗收過(guò)程,但同時(shí)也少不了反復的調試和修改,為我的程序軟件更加簡(jiǎn)單更加實(shí)用。
第八周
實(shí)習第八個(gè)禮拜,主要了解網(wǎng)頁(yè)的基本架構B/S 架構:瀏覽器-服務(wù)器(Browser/Server)結構,簡(jiǎn)稱(chēng)B/S結構與C/S結構不同,其客戶(hù)端不需要安裝專(zhuān)門(mén)的軟件,只需要瀏覽器即可,瀏覽器通過(guò)Web服務(wù)器與數據庫進(jìn)行交互,可以方便的在不同平臺下工作。服務(wù)器端可采用高性能計算機,并安裝Oracle、Sybase、Informix等大型數據庫。
B/S結構簡(jiǎn)化了客戶(hù)端的工作,它是隨著(zhù)Internet技術(shù)興起而產(chǎn)生的,對C/S技術(shù)的改進(jìn),但該結構下服務(wù)器端的工作較重,對服務(wù)器的性能要求更高。C/S架構:主從式架構(Client–server model) 或客戶(hù)端-服務(wù)器(Client/Server)結構簡(jiǎn)稱(chēng)C/S結構是一種網(wǎng)絡(luò )架構,它把客戶(hù)端(Client) (通常是一個(gè)采用圖形用戶(hù)界面的程序)與服務(wù)器(Server) 區分開(kāi)來(lái)。
每一個(gè)客戶(hù)端軟件的實(shí)例都可以向一個(gè)服務(wù)器或應用程序服務(wù)器發(fā)出請求。 經(jīng)典C/S系統:QQ/MSN/ICQ…
HTTP協(xié)議:超文本傳輸協(xié)議(HTTP,HyperTextTransfer Protocol)是互聯(lián)網(wǎng)上應用最為廣泛的一種網(wǎng)絡(luò )協(xié)議。
第九周
HTML :是一種標記語(yǔ)言、忽略大小寫(xiě),語(yǔ)法寬松、使用 HTML 標記和元素,可以:控制頁(yè)面和內容的外觀(guān)、發(fā)布聯(lián)機文檔、使用 HTML 文檔中插入的鏈接檢索聯(lián)機信息、創(chuàng )建聯(lián)機表單,收集用戶(hù)的信息、執行事務(wù)等等、插入動(dòng)畫(huà)、開(kāi)發(fā)幫助文件等。
CSS:樣式會(huì )根據下面的規則層疊于一個(gè)新的虛擬樣式表中,其中數字 d 擁有最高的優(yōu)先權。瀏覽器兼容:一旦為頁(yè)面設臵了恰當的 DTD,大多數瀏覽器都會(huì )按照上面的圖示來(lái)呈現內容。然而 IE 5 和 6 的呈現卻是不正確的。根據 W3C 的規范,元素內容占據的空間是由 width 屬性設臵的,而內容周?chē)?padding 和 border 值是另外計算的。不幸的是,IE5.X 和 6 在怪異模式中使用自己的非標準模型。這些瀏覽器的 width 屬性不是內容的寬度,而是內容、填充和邊框的寬度的總和。
雖然有方法解決這個(gè)問(wèn)題。但是目前最好的解決方案是回避這個(gè)問(wèn)題。也就是,不要給元素添加具有指定寬度的內邊距,而是嘗試將內邊距或外邊距添加到元素的父元素和子元素。這些屬性是DIV布局的奠基石。由于瀏覽器的不同,盒模式中也有差異,比如說(shuō)對于寬度盒高度,在不同瀏覽器中定義是不同的,IE6 是包含邊框 、內邊距,而FF的只是指內容的寬度。細節上的差異,往往是我們在日常工作中能總結出來(lái)的。當你的CSS寫(xiě)的不兼容時(shí)候,你自然就會(huì )想起這些內容。
第十周
JavaScript是一種基于對象和事件驅動(dòng)并具有安全性能的腳本語(yǔ)言
基本特點(diǎn):基于對象的語(yǔ)言、簡(jiǎn)單性、安全性、動(dòng)態(tài)性、跨平臺性、是一種腳本編寫(xiě)語(yǔ)言、解釋型語(yǔ)言(不用編譯、直接由瀏覽器解釋執行)
使用typeof操作符判斷
NaN--not a number,即非數值a、NaN用于表示一個(gè)本來(lái)要返回數值的操作數未返回值的情況;b、任何涉及NaN的操作都會(huì )返回NaN;c、NaN與任何值都不相等包括NaN本身,返回false
isNaN函數--判斷某個(gè)值是否為數值
如果是數字值,返回本身、如果是null,返回0、如果是undefined,返回NaN、如果是字符串,遵循以下規則:
-–如果字符串中只包含數字,則將其轉換為十進(jìn)制(忽略前導0)
-–如果字符串中包含有效的浮點(diǎn)格式,將其轉換為浮點(diǎn)數值(忽略前導0) -–如果是空字符串,將其轉換為0
-–如果字符串中包含非以上格式,則將其轉換為NaN
如果是對象,則調用對象的valueOf()方法,然后依據前面的規則轉換返回的值。如果轉換的結果是NaN,則調用對象的toString()方法,再次依照前面的規則轉換返回的字符串值。
parseInt- 將字符串轉換為整數類(lèi)型的數值,規則如下、忽略字符串前面的空格,直至找到第一個(gè)非空字符、如果第一個(gè)字符不是數字符號或者負號,返回NaN、如果第一個(gè)字符是數字,則繼續解析直至字符串解析完畢或者遇到一個(gè)非數字符號為止、如果上步解析的結果以0開(kāi)頭,則將其當作八進(jìn)制來(lái)解析;如果以0x開(kāi)頭,則將其當作十六進(jìn)制來(lái)解析。
第十一周
Servlet生命周期
Servlet 的并發(fā)問(wèn)題:在Servlet中使用靜態(tài)變量和成員變量是,要非常小心。如果你的程序改變這些變量值的時(shí)候,就會(huì )發(fā)生并發(fā)問(wèn)題。如果從不會(huì )去改變,只是讀取,則不會(huì )發(fā)生并發(fā)局部變量永遠不會(huì )有并發(fā)問(wèn)題。Servlet的并發(fā)處理:不使用靜態(tài)變量和成員變量、如果一定要使用,要加鎖,但會(huì )影響性能
資源訪(fǎng)問(wèn):WebRoot下面的都叫容器內的資源、Servlet、容器外的資源、forward vs redirect 都能訪(fǎng)問(wèn)內部資源,redirect還可以訪(fǎng)問(wèn)外部資源、使用forward是在后臺轉發(fā);瀏覽器也不知道干了什么,所以地址不會(huì )變、而redirect 要先回到瀏覽器,告訴瀏覽器要訪(fǎng)問(wèn)誰(shuí),所以瀏覽器的地址欄要發(fā)變化、當訪(fǎng)問(wèn)內部資源時(shí),使用firward效率會(huì )更高。
Session 是容器為每個(gè)客戶(hù)端開(kāi)辟內存空間,專(zhuān);第十二周;實(shí)習第十二個(gè)禮拜;MVC:Model--職責分明,便于風(fēng)開(kāi)發(fā)、優(yōu)點(diǎn);JSP技術(shù)使用Java編程語(yǔ)言編寫(xiě)類(lèi)XML的ta;Web服務(wù)器在遇到訪(fǎng)問(wèn)JSP網(wǎng)頁(yè)的請求時(shí),首先執;JSP與JavaServlet一樣,是在服務(wù)器端;JSP:為什么要學(xué)EL和 jstl、在一個(gè)系統中,;EL表達式:${屬性名}//屬性Session 是容器為每個(gè)客戶(hù)端開(kāi)辟內存空間,專(zhuān)門(mén)用來(lái)保持狀態(tài)信息、 Session需要一個(gè)id來(lái)標識:sessionid、 要求客戶(hù)端要保留id、 每一次訪(fǎng)問(wèn)時(shí)都帶上這個(gè)id、 a、Session的基本特點(diǎn):保存在服務(wù)器端(安全性高,保護隱私)、類(lèi)似Hashtable的數據結構保存、支持任何類(lèi)型的對象、b、保存會(huì )話(huà)id的技術(shù)(aporia)、Cookie表單隱藏字段、c、獲取Session、d、Session存取信息、e、設臵Session的有效時(shí)間
第十二周
MVC:Model--職責分明,便于風(fēng)開(kāi)發(fā)、優(yōu)點(diǎn):解耦,職責分明,便于分工開(kāi)發(fā)、缺點(diǎn):分成三部分,造成系統架構復雜,對于小系統不適合、造成調試困難,一旦出現錯誤,可能是Model,也可能是view也可能是control、對開(kāi)發(fā)人員要求比較高。
JSP 技術(shù)使用Java編程語(yǔ)言編寫(xiě)類(lèi)XML的tags和scriptlets,來(lái)封裝產(chǎn)生動(dòng)態(tài)網(wǎng)頁(yè)的處理邏輯。網(wǎng)頁(yè)還能通過(guò)tags和scriptlets訪(fǎng)問(wèn)存在于服務(wù)端的資源的應用邏輯。JSP將網(wǎng)頁(yè)邏輯與網(wǎng)頁(yè)設計和顯示分離,支持可重用的基于組件的設計,使基于Web的應用程序的開(kāi)發(fā)變得迅速和容易。
Web服務(wù)器在遇到訪(fǎng)問(wèn)JSP網(wǎng)頁(yè)的請求時(shí),首先執行其中的程序段,然后將執行結果連同JSP文件中的HTML代碼一起返回給客戶(hù)。插入的Java程序段可以操作數據庫、重新定向網(wǎng)頁(yè)等,以實(shí)現建立動(dòng)態(tài)網(wǎng)頁(yè)所需要的功能。
JSP與JavaServlet一樣,是在服務(wù)器端執行的,通常返回給客戶(hù)端的就是一個(gè)HTML文本,因此客戶(hù)端只要有瀏覽器就能瀏覽。
JSP:為什么要學(xué)EL和jstl、在一個(gè)系統中,頁(yè)面通常是由美工開(kāi)設計完成,美工并不懂java語(yǔ)言、當美工看到頁(yè)面上充滿(mǎn)著(zhù)java代碼時(shí),會(huì )干擾美工維護頁(yè)面,造成維護困難、如何做到動(dòng)態(tài)頁(yè)面沒(méi)有java代碼?EL表達式和JSTL。
EL 表達式:${ 屬性名 } //屬性名是調用對象的setAttribute(屬性名,屬性值)、在servlet往范圍對象中設臵屬性,forward到目標頁(yè)面、EL訪(fǎng)問(wèn)常量值,直接輸出 ${ 常量 }、可以使用==判斷字符串 、存取器[] 讀取對象的值、使用.可以訪(fǎng)問(wèn)對象的屬性,讀取map的key、讀取數組只能用[]。
第十三周
功能需求如下:
這是一個(gè)網(wǎng)上在線(xiàn)購物系統(B2C)。
系統需要提供網(wǎng)上購物的功能。
用戶(hù)能夠隨意瀏覽商品,并能獲取商品的詳細信息,如圖片預覽、商品描述等。 系統能夠向用戶(hù)提供一些瀏覽信息,讓用戶(hù)能夠快速的了解系統出售商品信息,如特價(jià)促銷(xiāo),店長(cháng)推薦,排行榜,新上架商品等。
系統能夠提供3級分類(lèi)商品。
系統能夠提供品牌分類(lèi)。 系統能夠提供公告信息,讓用戶(hù)快速了解系統的通告信息。
系統能夠提供論壇的方式,供用戶(hù)發(fā)表對商品的評論的功能。
系統能夠提供搜索功能,讓用戶(hù)快速了解他需要的產(chǎn)品。
用戶(hù)在瀏覽3級分類(lèi)商品的時(shí)候,需要體統高級篩選功能,如不同方式瀏覽商品信息、按價(jià)格排序商品,按規格瀏覽商品等功能。
用戶(hù)購物需要注冊成為本系統的會(huì )員,并能隨時(shí)修改自己的信息(如收貨信息等)。
會(huì )員能夠收藏自己喜歡的商品,并能隨時(shí)關(guān)注該商品。
會(huì )員能夠查看已購買(mǎi)的商品。
會(huì )員能夠完成與論壇的相關(guān)功能。
總結:通過(guò)實(shí)戰,發(fā)現自己學(xué)得不是自己想象的那么好,有些功能還是做不出來(lái)。通過(guò)新豆商城項目,發(fā)現自己的不足,跟同事之間的交流中,能學(xué)到很多新知識。簡(jiǎn)單的總結為幾個(gè)字,那就是:多看,多問(wèn),多觀(guān)察,多思考!
第十四周
一、 AJAX是什么?在傳統的web應用中,用戶(hù)與應用的每一次交互,都是首先用戶(hù)通過(guò)瀏覽器向服務(wù)器端發(fā)送一個(gè)請求,服務(wù)器解析這個(gè)請求,將相應的響應信息返回給瀏覽器。在服務(wù)器端業(yè)務(wù)邏輯非常復雜或者需要耗時(shí)較長(cháng)的情況下,瀏覽器等待刷新時(shí),頁(yè)面經(jīng)常是一片空白,用戶(hù)只能被動(dòng)等待服務(wù)器端響應完成,在此期間客戶(hù)不能在頁(yè)面上做任何操作,帶給用戶(hù)非常糟糕的體驗。它包括:基于XHTML和CSS標準的表示;使用DOM進(jìn)行動(dòng)態(tài)顯示和交互;使用XML和 XSLT進(jìn)行數據交換與處理使用XMLHttpRequest與服務(wù)器進(jìn)行異步通信;使用JavaScript綁定一切。
二、使用AJAX 的利弊:使用AJAX,可以為開(kāi)發(fā)人員、終端用戶(hù)帶來(lái)可見(jiàn)的便捷:減輕服務(wù)器的負擔。AJAX的原則是“按需取數據”,可以最大程度的減少冗余請求和響應對服務(wù)器造成的負擔。無(wú)刷新更新頁(yè)面,減少用戶(hù)心理和實(shí)際的等待時(shí)間。特別是當讀取大量數據的時(shí)候,AJAX使用XMLHTTP對象發(fā)送請求并獲取服務(wù)器響應,在不重新載入整個(gè)頁(yè)面的情況下用Javascript操作DOM最終更新頁(yè)面。在讀取數據的過(guò)程中,用戶(hù)面對的不是白屏,是原來(lái)頁(yè)面的內容,用戶(hù)可以繼續進(jìn)行其他操作,只有當數據接收完畢之后才更新相應部分內容。帶來(lái)更好的用戶(hù)體驗。一直以來(lái),B/S程序在用戶(hù)易操作性、界面友好性上跟C/S相比都有較大的差距,隨著(zhù)AJAX的應用,這種情況將得到較大的改觀(guān)?梢园岩郧胺⻊(wù)器負擔的一些工作轉嫁到客戶(hù)端,利用客戶(hù)端閑臵的能力來(lái)處理,減輕服務(wù)器的負擔。
第十五周
XML:概念:可擴展的標記語(yǔ)言、優(yōu)點(diǎn):結構化,平臺、語(yǔ)言無(wú)關(guān),標準的
XML讀寫(xiě)XML格式的文檔,完成數據交換、聲明:大多數XML文檔以XML聲明作為開(kāi)始、建議使用XML聲明,但它不是必需的。如果有,它一定是文檔的第一行內容。、注釋、實(shí)體:不能直接表示的符號、五個(gè)實(shí)體、自定義實(shí)體、CDATA:一段文本,不會(huì )被解析器解析。
Log4j:是Apache的一個(gè)開(kāi)放源代碼項目,通過(guò)使用Log4j,我們可以控制日志信息輸送的目的地是控制臺、文件、GUI組件、甚至是套接口服務(wù) 器、NT的事件記錄器、UNIX Syslog守護進(jìn)程等;我們也可以控制每一條日志的輸出格式;通過(guò)定義每一條日志信息的級別,我們能夠更加細致地控制日志的生成過(guò)程。
Log4j 由三個(gè)重要的組件構成:日志信息的優(yōu)先級,日志信息的輸出目的地,日志信息的輸出格式。日志信息的優(yōu)先級從高到低有ERROR、WARN、 INFO、DEBUG,分別用來(lái)指定這條日志信息的重要程度;日志信息的輸出目的地指定了日志將打印到控制臺還是文件中;而輸出格式則控制了日志信息的顯示內容。
第十六周
Hibernate是一個(gè)開(kāi)放源代碼的對象關(guān)系映射框架,它對JDBC進(jìn)行了非常輕量級的對象封裝,使得Java程序員可以隨心所欲的使用對象編程思維來(lái)操縱數據庫。 Hibernate可以應用在任何使用JDBC的場(chǎng)合,既可以在Java的客戶(hù)端程序使用,也可以在Servlet/JSP的Web應用中使用,最具革命意義的是,Hibernate可以在應用EJB的J2EE架構中取代CMP,完成數據持久化的重任。 數據庫設計:a) 降低關(guān)聯(lián)的復雜性、b) 盡量不使用聯(lián)合主鍵、c) ID的生成機制,不同的數據庫所提供的機制并不完全一樣、d) 適當的冗余數據,不過(guò)分追求高范式
2、 HQL優(yōu)化:HQL如果拋開(kāi)它同HIBERNATE本身一些緩存機制的關(guān)聯(lián),HQL的優(yōu)化技巧同普通的SQL優(yōu)化技巧一樣,可以很容易在網(wǎng)上找到一些經(jīng)驗之談。
加載策略:延遲加載vs立即加載、-延遲加載(默認) 不會(huì )立即命中數據庫,使用數據時(shí)命中、在可以改變?yōu)榱⒓础?使用數據必須在session關(guān)閉之前、-立即加載:立即命中數據庫,不管有沒(méi)有數據
抓取策略、查詢(xún)抓取:(N+1)、連接抓。盒枰陉P(guān)聯(lián)的對象中設臵fetch="select|join"、N+1 與 1+M:-針對一端,如果查詢(xún)有m個(gè)對象,這時(shí)會(huì )先發(fā)送1條sql語(yǔ)句查出m個(gè)對象,然后再發(fā)送m條sql語(yǔ)句查關(guān)聯(lián)對象,這就是1+M、-針對多端,如果查詢(xún)有n個(gè)對象,那么對每個(gè)對象需要重新發(fā)送一條sql語(yǔ)句,這就是n+1。
事務(wù)控制:事務(wù)方面對性能有影響的主要包括:事務(wù)方式的選用,事務(wù)隔離級別以及鎖的選用a) 事務(wù)方式選用:如果不涉及多個(gè)事務(wù)管理器事務(wù)的話(huà),不需要使用JTA,只有JDBC的事務(wù)控制就可以。b) 事務(wù)隔離級別:參見(jiàn)標準的SQL事務(wù)隔離級別c) 鎖的選用:共享鎖、獨占鎖、更新鎖、死鎖、悲觀(guān)鎖、樂(lè )觀(guān)鎖。
第十七周
前面做過(guò)的新豆商城,使用JDBC來(lái)連接數據庫,現在學(xué)習了Hibernate,所以把所有連接數據庫的代碼轉變成hibernate來(lái)連接。
為什么選擇Hibernate:由于是對JDBC的輕易級封閉,內存消耗少,最快的運行效率。、開(kāi)發(fā)效率高,Eclipse、JBuilder等主流 JAVA集成開(kāi)發(fā)環(huán)境對Hibernate有很好的支持,在大的項目,特別是持久層關(guān)系映射很復雜的情況下,Hibernate效率高的驚人。分布式,安全檢查,集群,負載均衡的支持。輕量級封裝,避免引入過(guò)多復雜的問(wèn)題,調試容易,也減輕程序員的負擔。具有可擴展性,API開(kāi)放,當本身功能不夠用的時(shí)候,可以自己遍碼進(jìn)行擴展。對JDBC訪(fǎng)問(wèn)數據庫的代碼做了封裝,大大簡(jiǎn)化了數據訪(fǎng)問(wèn)層繁瑣的重復性代碼。
總結:通過(guò)hibernate連接,發(fā)現比以前用JDBC連接的代碼量要少很多,簡(jiǎn)潔很多。唯一不好的是在XML的配臵文件中,經(jīng)常會(huì )有錯誤。我相信,這只是我對hibernate不熟悉造成的,當對hibernate使用多了,這些問(wèn)題就迎刃而解。
第十八周
在之前的項目基礎上,實(shí)現以下功能:
系統可以分為不同權限的管理員,管理本系統,如商品管理員、系統管理員等。
系統管理員可以配臵一些信息管理本系統。
系統可以管理商品(添加、刪除、修改、查詢(xún))。
系統可以管理商品分類(lèi)(添加、刪除、修改、查詢(xún))。
系統可以管理品牌(添加、刪除、修改、查詢(xún))。
系統可以管理論壇,根據商品分類(lèi)創(chuàng )建論壇分類(lèi)。自定義分類(lèi)等。
系統可以的論壇管理功能等,此處不再詳細累贅。
系統可以進(jìn)行訂單管理功能。
系統可以進(jìn)行用戶(hù)管理功能。
公告管理管理。
模板管理功能。
支付用送貨管理。
難點(diǎn):顧客的購物功能
1. 顧客點(diǎn)擊商品信息頁(yè)的購買(mǎi)按鈕,傳遞商品id、顏色到系統,系統根據客戶(hù)傳遞的值將商品放入購物車(chē)中,然后顯示購物車(chē)頁(yè)面。
顧客依此往復,添加產(chǎn)品。
2. 顧客可以修改購買(mǎi)商品的數量,此處使用Ajax技術(shù),動(dòng)態(tài)刷新頁(yè)面及商品小計金額和總金額。
3. 顧客可以刪除購物車(chē)中的商品,此處仍然使用Ajax技術(shù)。
4. 顧客點(diǎn)擊計算按鈕的時(shí)候,彈出結算頁(yè)面,顧客選擇送貨方式、付款方式、以及修改送貨地址等。用戶(hù)還可以選擇使用豆豆支付商品。
5. 顧客點(diǎn)擊提交完成本次購物,即完成一次訂單購物。
總結:通過(guò)實(shí)踐才能學(xué)到更多,更了解自己學(xué)會(huì )了多少。簡(jiǎn)單的總結為幾個(gè)字:多看,多問(wèn),多觀(guān)察,多思考!
第十九周
項目重構是團體合作,由6個(gè)人一起完成。要一起討論包的命名、實(shí)體類(lèi)。之后由技術(shù)總監把包的命名規范上傳到共享區,團隊做項目需要用到JIRA來(lái)跟進(jìn)每天的任務(wù)。每個(gè)人還需要寫(xiě)總結:今天做了什么?做的過(guò)程中遇到的一些問(wèn)題?明天打算做什么?這樣項目經(jīng)理才知道你今天完成了哪些內容。 我的任務(wù)主要是做后臺產(chǎn)品的管理,添加產(chǎn)品、修改產(chǎn)品、刪除產(chǎn)品、以及產(chǎn)品圖片的上傳功能。用戶(hù)訂單的實(shí)現。
在團隊合作中,我們提出的志同道合的口號就是團隊精神的具體表現,沒(méi)有一個(gè)共同的工作目標一切都很難實(shí)現,集體主義的具體表現就是團隊精神,在我們工作中離不開(kāi)團隊精神 的指引,團隊離不開(kāi)統一的指揮,才能保證團隊的順利工作和工作成績(jì)的取得,這就是團隊精神的巨大作用,在我們不同的歷史時(shí)期,團隊精神發(fā)揮了不同的作用, 有一點(diǎn)是可以值得大家重視的就是,在凝聚人心鼓舞士氣方面都具有十分重要的作用。在這里,我明白了團隊合作的重要性。 在接下來(lái)的代碼實(shí)施中,工作進(jìn)行的很順利。
第二十周
在新豆商城的項目設計中,總結:需求分析是重點(diǎn)。
前臺需求分析,系統前臺擁有2種用戶(hù),即瀏覽使用本系統的顧客,當顧客注冊為本系統的會(huì )員時(shí),即本系統的第2種。
功能描述如下:瀏覽、注冊、搜索、購物、登陸、消息功能、個(gè)人資料修改、收貨地址、積分交易、訂單查看等。
用例圖如下:(略)
需求分析,系統后臺擁有多種用戶(hù),簡(jiǎn)單描述如下:商品管理員、系統管理員等。由于時(shí)間關(guān)系,本系統后臺前期可能不做開(kāi)發(fā)。預想在后期專(zhuān)門(mén)開(kāi)發(fā)權限管理欄目,可以根據需要產(chǎn)生多種管理員以分配不同的;功能描述如下:商品管理、商品分類(lèi)管理、品牌管理、;后臺用例圖如下:;系統管理員;第二十一周;實(shí)習第二十一個(gè)禮拜;struts是開(kāi)源軟件;軟件工程師使用Struts為業(yè)務(wù)應用的每一層提供;Action,這個(gè)類(lèi)通常由用戶(hù)提供,該控制器負責;Model部分:由JavaBean組成,Acti;View部分:該部分采用管理欄目,可以根據需要產(chǎn)生多種管理員以分配不同的權限進(jìn)行管理。
功能描述如下:商品管理、商品分類(lèi)管理、品牌管理、訂單管理、送貨方式管理、會(huì )員管理、公告管理、模板管理、論壇分類(lèi)管理、帖子管理、系統配臵、支付管理等。
后臺用例圖如下:(略)
第二十一周
struts是開(kāi)源軟件。使用Struts的目的是為了幫助我們減少在運用MVC設計模型來(lái)開(kāi)發(fā)Web應用的時(shí)間。如果我們想混合使用Servlets和JSP的優(yōu)點(diǎn)來(lái)建立可擴展的應用,struts是一個(gè)不錯的選擇。
軟件工程師使用Struts為業(yè)務(wù)應用的每一層提供支持。它的目的是為了幫助我們減少在運用MVC設計模型來(lái)開(kāi)發(fā)Web應用的時(shí)間。我們仍然需要學(xué)習和應用該架構,不過(guò)它將可以完成其中一些繁重的工作。如果想混合使用Servlets和JSP的優(yōu)點(diǎn)來(lái)建立可擴展的應用。 Action,這個(gè)類(lèi)通常由用戶(hù)提供,該控制器負責接收來(lái)自ActionServlet的請求,并根據該請求調用模型的業(yè)務(wù)邏輯方法處理請求,并將處理結果返回給JSP頁(yè)面顯示。
Model 部分:由JavaBean組成,ActionForm用于封裝用戶(hù)的請求參數,封裝成ActionForm對象,該對象被ActionServlet轉發(fā)給Action,Action根據ActionForm里面的請求參數處理用戶(hù)的請求。JavaBean則封裝了底層的業(yè)務(wù)邏輯,包括數據庫訪(fǎng)問(wèn)等。
View部分:該部分采用JSP實(shí)現。Struts提供了豐富的標簽庫,通過(guò)標簽庫可以減少腳本的使用,自定義的標簽庫可以實(shí)現與Model的有效交互,并增加了現實(shí)功能。對應上圖的JSP部分。
Controller 組件:Controller組件有兩個(gè)部分組成——系統核心控制器,業(yè)務(wù)邏輯控制器。系統核心控制器,對應上圖的ActionServlet。該控制器由 Struts框架提供,繼承HttpServlet類(lèi),因此可以配臵成標注的Servlet。該控制器負責攔截所有的HTTP請求,然后根據用戶(hù)請求決定是否要轉給業(yè)務(wù)邏輯控制器。業(yè)務(wù)邏輯控制器,負責處理用戶(hù)請求,本身不具備處理能力,而是調用
Model來(lái)完成處理。對應Action部分。
總結:學(xué)習了才知道struts很強大。
第二十二周
Spring 也是一個(gè)開(kāi)源框架,Spring的用途不僅限于服務(wù)器端的開(kāi)發(fā)。從簡(jiǎn)單性、可測試性和松耦合的角度而言,任何Java應用都可以從Spring中受益。 傳統J2EE應用的開(kāi)發(fā)效率低,Spring作為開(kāi)源的中間件,獨立于各種應用服務(wù)器,甚至無(wú)須應用服務(wù)器的支持,也能提供應用服務(wù)器的功能,如聲明式事務(wù)、事務(wù)處理等。
簡(jiǎn)單來(lái)說(shuō),Spring是一個(gè)輕量級的控制反轉(IoC)和面向切面(AOP)的容器框架。輕量——從大小與開(kāi)銷(xiāo)兩方面而言Spring都是輕量的。完整的Spring框架可以在一個(gè)大小只有1MB多的JAR文件里發(fā)布。并且Spring所需的處理開(kāi)銷(xiāo)也是微不足道的。此外,Spring是非侵入式的:典型地,Spring應用中的對象不依賴(lài)于Spring的特定類(lèi)?刂品崔D——Spring通過(guò)一種稱(chēng)作控制反轉(IoC)的技術(shù)促進(jìn)了松耦合。面向切面——Spring提供了面向切面編程的豐富支持,允許通過(guò)分離應用的業(yè)務(wù)邏輯與系統級服務(wù)進(jìn)行內聚性的開(kāi)發(fā)。容器 ——Spring包含并管理應用對象的配臵和生命周期,在這個(gè)意義上它是一種容器,你可以配臵你的每個(gè)bean如何被創(chuàng )建——基于一個(gè)可配臵原型,你的 bean可以創(chuàng )建一個(gè)單獨的實(shí)例或者每次需要時(shí)都生成一個(gè)新的實(shí)例——以及它們是如何相互關(guān)聯(lián)的?蚣堋猄pring可以將簡(jiǎn)單的組件配臵、組合成為復雜的應用。在Spring中,應用對象被聲明式地組合,典型地是在一個(gè)XML文件里。Spring也提供了很多基礎功能(事務(wù)管理、持久化框架集成等等),將應用邏輯的開(kāi)發(fā)留給了你。
所有Spring的這些特征使你能夠編寫(xiě)更干凈、更可管理、并且更易于測試的代碼。它們也為Spring中的各種模塊提供了基礎支持。
第二十三周
項目概述:融合通信產(chǎn)品是一款基于云計算體系架構,融合所有通訊錄,集中管理用戶(hù)通訊會(huì )話(huà)的工具。它以融合通信錄為關(guān)系鏈,提供多種通信方式并融合至統一入口,并融合互聯(lián)網(wǎng)熱點(diǎn)應用,提供進(jìn)入互聯(lián)網(wǎng)的入口,可根據實(shí)際政企用戶(hù)的定制需求增加擴展功能。
功能范圍:支持android系統手機,暫不支持iphone。
處理流程:
導航欄:用于在層級結構的信息中導航,也可以用來(lái)管理屏幕信息
標簽欄:Tab欄用于切換子任務(wù)、視圖和模式。
內容欄:顯示頁(yè)面內容的區域
列表視圖:列表視圖在一行行格子里展示信息,可以劃分為塊或進(jìn)行歸組。用戶(hù)可以拖動(dòng)內容,以顯示更多行。用戶(hù)可以點(diǎn)擊選中一項,然后用控件增加或刪除行,選中多拍,查看某一行的更多信息或者展開(kāi)另一個(gè)表示視圖。當用戶(hù)選中某項目時(shí),表格會(huì )短暫地高亮。
浮出層:浮出層是一種臨時(shí)的視圖方式,可以通過(guò)用戶(hù)點(diǎn)擊控件或區域來(lái)召喚。
分段控件:是一條分割成多段的線(xiàn),每一段都像是按鈕,可以激活一種視圖方式。
關(guān)聯(lián)菜單:通過(guò)長(cháng)按屏幕上的內容來(lái)打開(kāi)關(guān)聯(lián)菜單,顯示被選中內容的一些可操作指令的列表,指令可以成為當前進(jìn)程的一部分,系統也能通過(guò)被選中內容去啟動(dòng)另一個(gè)進(jìn)程進(jìn)行操作。
第二十四周
上一個(gè)星期的實(shí)習下來(lái),有很多經(jīng)驗,有很多認識,自己總是有很多的感慨。也許在實(shí)習的這些天中,我也在逐漸的成長(cháng)。在認識學(xué)習逐漸的成熟。每個(gè)人都會(huì )在時(shí)間潮流中不斷認識自我,只不過(guò)是時(shí)間的長(cháng)短的問(wèn)題。因此待人要真誠,時(shí)時(shí)為人著(zhù)想,處處為人行事。能夠把自己溶入群體,而不恥向工人群眾學(xué)習。要想在如今的社會(huì )中生存,就要吸收新的思想與知識,不斷更新觀(guān)念,趨于完善。這樣才有利于思想與實(shí)際行動(dòng)真正地結合,只有在思想演練,才能在最短的時(shí)間里把自己要從事的行業(yè)中處于領(lǐng)先的地位進(jìn)而起著(zhù)不可替代的作用,因為我將會(huì )為它比其他人付出更多創(chuàng )造更多價(jià)值。我也應該得到我應得到的報酬與珍貴的經(jīng)驗。
在團隊合作中,項目經(jīng)理與技術(shù)經(jīng)理起了很大作用。團隊離不開(kāi)統一的指揮,才能保證團隊的順利工作和工作成績(jì)的取得,這就是團隊精神的巨大作用;還有一點(diǎn)是可以值得大家重視的就是,在凝聚人心鼓舞士氣方面都具有十分重要的作用。在這里,我更好的明白了團隊合作的精神與凝聚力。
第二十五周
最后總結一下我在實(shí)習過(guò)程中的收獲: 在工作有苦,有甜,有辛酸,有快樂(lè )。但總的來(lái)說(shuō)對自己還上一個(gè)不錯的鍛煉。失敗是成功之母,要想有成功就必定會(huì )有失敗,要能承受住失敗的打擊,從失敗中總結出經(jīng)驗,把它化成自己的知識為以后遇到同樣的事或者是類(lèi)似的事就不會(huì )出同樣的錯誤,感覺(jué)每周還是多接觸接觸一些事,對我們的成長(cháng)是有好處的,關(guān)鍵還是在于自己平時(shí)對一些事情的處理和總結,不管自己以后走到那里這個(gè)都是必須的,在工作的時(shí)候不過(guò)分的依賴(lài)師傅而自己不去動(dòng)手,不去想。如果是這樣的話(huà),你永遠不會(huì )得到進(jìn)步,只能在社會(huì )的競爭中被淘汰,在工作中要不斷的學(xué)習積累,完善自己,而不是得過(guò)且過(guò)。要能做別人不能做的事,吃別人不能吃的苦,有苦以后才能有甜。
實(shí)習是為將來(lái)打基礎的重要階段,珍惜自己每一個(gè)工作的機會(huì ),不論什么人,什么學(xué)歷,從事什么工作,好好的表現、展示自己的能力,不要錯過(guò)好的機遇。沒(méi)有一件事情是輕輕松松的,但每一件事都是讓人成長(cháng)的,經(jīng)歷一段過(guò)程,喜悅或是艱辛,盡管經(jīng)歷的方式不盡相同,但它的結果是相同的,我們都會(huì )因涉事而成長(cháng)。通過(guò)實(shí)習,我自身發(fā)生了重大的轉變。首先,進(jìn)入公司,你就是一名職業(yè)人,不再是一名學(xué)生,你要具備一名職業(yè)人應具備的素養,不遲到不早退是必然的,而且還要時(shí)刻嚴格要求自己,公司的規定要嚴格遵守。然后,在技術(shù)上也有了很大的提高,學(xué)習了很多公司自己的框架和工具,這都是一些前輩的寶貴經(jīng)驗。而且所作的軟件應用性更強。所以,我要堅定自己的信念,在公司好好實(shí)習,爭取提早轉正,我相信我會(huì )在JAVA開(kāi)發(fā)這條路上走的更長(cháng)更遠。
【計算機java開(kāi)發(fā)實(shí)習周記】相關(guān)文章:
java實(shí)習周記07-20
Java軟件開(kāi)發(fā)實(shí)習報告07-12
計算機Java實(shí)習報告08-12
計算機實(shí)習周記11-18
計算機專(zhuān)業(yè)實(shí)習周記11-09
java開(kāi)發(fā)崗位職責10-12
java開(kāi)發(fā)的崗位職責05-08
計算機實(shí)習周記(精選15篇)05-24