java頂崗實習周記

字號:


    社會是一所最好的大學,實習中深刻的感受只有經歷過的人才會體驗到。下面是由出國留學網小編為大家整理的“java頂崗實習周記”,文章僅供參考,希望對您有所幫助。
    java頂崗實習周記
    第一周
    實習第一個禮拜,算是適應期。主要了解一些公司的背景、產品、發(fā)展方向等。剛到實習公司,不是像學校里的朝九晚五,而是朝八晚九。 我們不可能簡單的了解一些企業(yè)文化,簡單的學學新的知識就可以了,我們的這個實習必將是一個繁忙的實習,也必將是一個充實的,進步的實習。來到這里,我們要忘掉大學里自由的作息時間,克服困難,養(yǎng)成良好的工作生活習慣。
    基于各方面的原因,雖然在去之前我們做了比較充足的準備,但還是遇到了一些困難,例如學習時間長,實戰(zhàn)比較繁多,但時間又比較的短,難以保證按時按質按量完成。下午下了班,員工們都回去了,我還在那兒練習,一直到晚上9點,才能回住處休息。中午也沒有休息的地方,只能趴在電腦前休息一會,一兩周下來,相當?shù)仄v。但我們都明白自己來實習的任務,都堅持著完成自己的任務和使命。這個星期熟悉了工作環(huán)境、java編程的環(huán)境。等慢慢熟悉起來,做起事情也越來越順手了。簡單的總結為幾個字,那就是:多看,多問,多觀察,多思考!
    第二周
    實習第二個禮拜,主要是熟悉java的基礎語法,把基礎打扎實,以后在開發(fā)中才能如魚得水。學習總結如下幾點:
    1、類之間的關系:關聯(lián)、聚合、繼承、實現(xiàn)和多態(tài)。
    2、基本數(shù)據(jù)類型:整數(shù)型、浮點型、字符型、布爾型。
    3、常用邏輯語句和循環(huán)語句:switch只支持int類型判斷,沒有寫break易穿透至下一個循環(huán),XX貌似增強了支持數(shù)據(jù)類型。
    4、Break:強行退出循環(huán);Continue:跳出當前循環(huán)。
    5、修飾符:pbulic,private,protected,default。設臵訪問權限。
    6、Static關鍵字:靜態(tài)修飾符,它修飾的方法、類和變量可以全局調用。
    7、Final關鍵字:禁止重寫。
    8、This關鍵字:指向自身引用。
    9、string:是不可變的字符序列。(兩個string變量必須用copy的方式在內存中new出新的數(shù)據(jù)塊)
    10、stringBuffer:是可變的字符序列,可以直接添加字符。
    第三周
    實習第三個禮拜,主要是熟悉java的高級語法(核心)
    繼承:子類繼承父類的所有屬性和方法,如果方法和屬性被private修飾,子類則無法讀取。子類使用Super關鍵字繼承。父類無法調用子類方法。 構造方法:方法名稱必須與類名相同,且沒有返回值。Object類是所有類的父類,即java中的根類。無參構造方法默認繼承object的。(構造方法的重載,實現(xiàn)不同參數(shù)的構造)
    重載:方法相同,參數(shù)類型不同,數(shù)量不同。構造方法中也常使用方法重載。 重寫:重寫方法必須和被重寫方法具有相同參數(shù)列表、相同方法和相同返回值。重寫方法不能使用比被重寫方法更嚴格的訪問權限。
    抽象:抽象類被繼承后,方法必須被重寫并實現(xiàn),否則子類也還是抽象類。抽象方法只需聲明,無需實現(xiàn)。接口:實現(xiàn)關鍵字implements。接口中所有成員變
    量和方法都是public。接口可以繼承其他接口,并添加新的屬性和方法。接口和實現(xiàn)類之間存在多態(tài)。
    多態(tài):三個必要條件分別是繼承、重寫和父類引用子類對象。(java的核心思想)
    第四周
    實習第四個禮拜,主要熟悉了java的高級應用
    線程:進程是運行中的應用程序,是一套順序執(zhí)行的指令,每個進程都有自己獨立的內存空間。線程是一個并發(fā)執(zhí)行的順序流,一個進程包括多個順序執(zhí)行流程,這些流程稱為線程。
    JVM 就是一個進程,在JVM 中分出線程,比如main()就是主線程。同時開辟并發(fā)執(zhí)行的序列即多線程。調用start()方法,線程啟動;run()方法結束,線程就終止。線程是一個操作系統(tǒng)創(chuàng)建并維護的一個資源。對于單CPU 系統(tǒng)來說,某一個時刻只可能由一個線程在運行。一個Thread 對象就表示一個線程。進程的數(shù)據(jù)空間獨立;線程的數(shù)據(jù)空間共享, 能充分使用CPU 的資源。線程間通信更容易。共享數(shù)據(jù)就要加鎖、解鎖,會降低效率。
    I/O:是在JVM 和外部數(shù)據(jù)源之間交換數(shù)據(jù)。按數(shù)據(jù)傳輸方向劃分:輸入流和輸出;按數(shù)據(jù)單位劃分:字節(jié)流和字符流;過濾流用來封裝節(jié)點流或者其他過濾流,從而給節(jié)點流或其他的過濾流增加功能。
    第五周
    實習第五個禮拜,使用Collection框架做派叫號系統(tǒng)。
    首先分析項目需求,概述如下:
    1.產品參與者
    顧客:到營業(yè)大廳排隊取號
    柜員:提供業(yè)務服務的柜臺業(yè)務員
    管理員:負責對業(yè)務類型、業(yè)務受理情況進行實時查看、調配的管理者
    2.功能需求
    1)、取號:顧客來到營業(yè)大廳通過取號機取號,可以選擇自己要辦理的業(yè)務類型。取號后自動進入排隊中。等待叫號;
    2)、叫號:柜員可以通過叫號端進行重復呼叫、暫停服務和轉移。叫號端可是軟件也可以是硬件設備;
    3)、管理業(yè)務類型:管理人員可以通過后臺管理進行業(yè)務類型的管理。可以添加、禁用、修改一種業(yè)務類型,為某種業(yè)務類型可以設臵每天最大辦理量;
    4)、管理窗口:管理人員可以通過后臺管理對業(yè)務窗口進行管理??梢詾槟硞€窗口指定辦理某種業(yè)務類型;
    5)、統(tǒng)計整合數(shù)據(jù):系統(tǒng)可以定時的整合數(shù)據(jù),將分散在每天的數(shù)據(jù)按人、業(yè)務類型、時間進行整合,可以將統(tǒng)計數(shù)據(jù)輸出成圖表形式;
    6)、查看辦理情況:可以查看當前流量、已經辦理、未辦理的人數(shù)。當前辦理效率,歷史數(shù)據(jù)等等;
    7)、記錄日志:系統(tǒng)對關鍵的地方進行日志記錄,以便系統(tǒng)可以在出錯時進行調試和處理。   實施代碼編寫。第一個項目設計,感覺難度很大。之前所學的是零零散散的知識點,現(xiàn)在要把之前所學的知識連貫起來,剛開始不知道怎么去連貫,后來看了需求分析文檔,分析圖,慢慢的有點思路。在后面的做項目的過程中,遇到了太多的問題,通過自己的思考、問同事,問老師慢慢的解決了。而在第一個項目中也學到了很多東西。
    第六周
    1、數(shù)據(jù)庫范式 作用:盡可能減少數(shù)據(jù)冗余、保證數(shù)據(jù)完整性、識別出實體、關系以及表的缺失。
    第一范式:字段都為單一屬性,且屬性為基礎類型。
    第二范式:屬性必須完全依賴關鍵字。
    第三范式:非主鍵屬性不能依賴其他的非主鍵屬性。
    mysql 的學習,在學校里我對mysql已有了初步的了解。指導老師教我要靈活多變,什么時候要用到臨時表,嵌套查詢,存儲過程用的地方等,叫我多看幾個例子,并敲下代碼運行下,體會里面的數(shù)據(jù)生成,查詢出自己要的數(shù)據(jù)等。然后再根據(jù)這些數(shù)據(jù)寫出語句,生成需要的流程,這就是數(shù)據(jù)挖掘的精髓!那么存儲過程與一般的 SQL語句有什么區(qū)別呢?
    存儲過程的優(yōu)點:
    1.存儲過程只在創(chuàng)造時進行編譯,以后每次執(zhí)行存儲過程都不需再重新編譯,而一般sql語句每執(zhí)行一次就編譯一次,所以使用存儲過程可提高數(shù)據(jù)庫執(zhí)行速度。
    2.當對數(shù)據(jù)庫進行復雜操作時(如對多個表進行Update,Insert,Query,Delete時),可將此復雜操作用存儲過程封裝起來與數(shù)據(jù)庫提供的事務處理結合一起使用。
    3.存儲過程可以重復使用,可減少數(shù)據(jù)庫開發(fā)人員的工作量。
    從中我學到了:存儲過程是數(shù)據(jù)在存儲到數(shù)據(jù)庫的過程中,可以對這些數(shù)據(jù)進行操作,不然數(shù)據(jù)就是直接從頁面獲取,直接原樣存儲。
    第七周
    實習第七個禮拜,為了進一步了解java開發(fā)的相關知識,掌握java開發(fā)的基本技術,豐富java開發(fā)的實戰(zhàn)經驗,代碼的復用性。學習SQL的基礎知識及正確的運用方法,和有用的相關技術,提高自己的工作效率。通過項目重構,培養(yǎng)我們綜合運用已學知識Java語言的面向對象編程能力;培養(yǎng)我們動手能力;培養(yǎng)我們良好編程規(guī)范、編程方法;以便能較全面地理解、掌握和綜合運用所學的知識,提高自身的編程能力;增強自己的團隊協(xié)作意識,了解軟件開發(fā)的思考角度和主要流程。為以后能夠更快地進入工作狀態(tài)并且能夠更好的工作,打好一定的基礎。
    從這里,我才真正的意識到實施一個軟件工程并不是說簡單的會編碼就能夠解決問題的,我們更多的精力不是放在編碼上,編碼只是一個很小的模塊,只占到那么小的一個部分。這個事實在很大程度上顛覆了我以前的思想,在我以前的認識中,似乎整個軟件就是編碼,除此無它,還好有老師的指導,不然真的會出現(xiàn)老師所說的,撞得頭破血流之后才想起來用軟件工程的思想來完成這個工作。
    項目程序的編程是一個非常煩瑣而枯燥的過程,需要耐心和毅力去完成,不然中途出現(xiàn)過多的錯誤,會使之后的校驗略顯費時。實習項目的代碼編寫,從而進入到后期的校對和驗收過程,但同時也少不了反復的調試和修改,為我的程序軟件更加簡單更加實用。
    第八周
    實習第八個禮拜,主要了解網頁的基本架構B/S 架構:瀏覽器-服務器(Browser/Server)結構,簡稱B/S結構與C/S結構不同,其客戶端不需要安裝專門的軟件,只需要瀏覽器即可,瀏覽器通過Web服務器與數(shù)據(jù)庫進行交互,可以方便的在不同平臺下工作。服務器端可采用高性能計算機,并安裝Oracle、Sybase、Informix等大型數(shù)據(jù)庫。
    B/S結構簡化了客戶端的工作,它是隨著Internet技術興起而產生的,對C/S技術的改進,但該結構下服務器端的工作較重,對服務器的性能要求更高。C/S架構:主從式架構(Client–server model) 或客戶端-服務器(Client/Server)結構簡稱C/S結構是一種網絡架構,它把客戶端(Client) (通常是一個采用圖形用戶界面的程序)與服務器(Server) 區(qū)分開來。
    每一個客戶端軟件的實例都可以向一個服務器或應用程序服務器發(fā)出請求。 經典C/S系統(tǒng):QQ/MSN/ICQ…
    HTTP協(xié)議:超文本傳輸協(xié)議(HTTP,HyperTextTransfer Protocol)是互聯(lián)網上應用最為廣泛的一種網絡協(xié)議。
    第九周
    HTML :是一種標記語言、忽略大小寫,語法寬松、使用 HTML 標記和元素,可以:控制頁面和內容的外觀、發(fā)布聯(lián)機文檔、使用 HTML 文檔中插入的鏈接檢索聯(lián)機信息、創(chuàng)建聯(lián)機表單,收集用戶的信息、執(zhí)行事務等等、插入動畫、開發(fā)幫助文件等。
    CSS:樣式會根據(jù)下面的規(guī)則層疊于一個新的虛擬樣式表中,其中數(shù)字 d 擁有最高的優(yōu)先權。瀏覽器兼容:一旦為頁面設臵了恰當?shù)?DTD,大多數(shù)瀏覽器都會按照上面的圖示來呈現(xiàn)內容。然而 IE 5 和 6 的呈現(xiàn)卻是不正確的。根據(jù) W3C 的規(guī)范,元素內容占據(jù)的空間是由 width 屬性設臵的,而內容周圍的 padding 和 border 值是另外計算的。不幸的是,IE5.X 和 6 在怪異模式中使用自己的非標準模型。這些瀏覽器的 width 屬性不是內容的寬度,而是內容、填充和邊框的寬度的總和。
    雖然有方法解決這個問題。但是目前最好的解決方案是回避這個問題。也就是,不要給元素添加具有指定寬度的內邊距,而是嘗試將內邊距或外邊距添加到元素的父元素和子元素。這些屬性是DIV布局的奠基石。由于瀏覽器的不同,盒模式中也有差異,比如說對于寬度盒高度,在不同瀏覽器中定義是不同的,IE6   是包含邊框 、內邊距,而FF的只是指內容的寬度。細節(jié)上的差異,往往是我們在日常工作中能總結出來的。當你的CSS寫的不兼容時候,你自然就會想起這些內容。
    第十周
    JavaScript是一種基于對象和事件驅動并具有安全性能的腳本語言。
    基本特點:基于對象的語言、簡單性、安全性、動態(tài)性、跨平臺性、是一種腳本編寫語言、解釋型語言(不用編譯、直接由瀏覽器解釋執(zhí)行)。
    使用typeof操作符判斷。
    NaN--not a number,即非數(shù)值a、NaN用于表示一個本來要返回數(shù)值的操作數(shù)未返回值的情況;b、任何涉及NaN的操作都會返回NaN;c、NaN與任何值都不相等包括NaN本身,返回false
    isNaN函數(shù)--判斷某個值是否為數(shù)值。
    如果是數(shù)字值,返回本身、如果是null,返回0、如果是undefined,返回NaN、如果是字符串,遵循以下規(guī)則:
    –如果字符串中只包含數(shù)字,則將其轉換為十進制(忽略前導0)
    –如果字符串中包含有效的浮點格式,將其轉換為浮點數(shù)值(忽略前導0) -–如果是空字符串,將其轉換為0
    –如果字符串中包含非以上格式,則將其轉換為NaN
    - 如果是對象,則調用對象的valueOf()方法,然后依據(jù)前面的規(guī)則轉換返回的值。如果轉換的結果是NaN,則調用對象的toString()方法,再次依照前面的規(guī)則轉換返回的字符串值。
    parseInt- 將字符串轉換為整數(shù)類型的數(shù)值,規(guī)則如下、忽略字符串前面的空格,直至找到第一個非空字符、如果第一個字符不是數(shù)字符號或者負號,返回NaN、如果第一個字符是數(shù)字,則繼續(xù)解析直至字符串解析完畢或者遇到一個非數(shù)字符號為止、如果上步解析的結果以0開頭,則將其當作八進制來解析;如果以0x開頭,則將其當作十六進制來解析。
    第十一周
    Servlet生命周期
    Servlet 的并發(fā)問題:在Servlet中使用靜態(tài)變量和成員變量是,要非常小心。如果你的程序改變這些變量值的時候,就會發(fā)生并發(fā)問題。如果從不會去改變,只是讀取,則不會發(fā)生并發(fā)局部變量永遠不會有并發(fā)問題。Servlet的并發(fā)處理:不使用靜態(tài)變量和成員變量、如果一定要使用,要加鎖,但會影響性能
    資源訪問:WebRoot下面的都叫容器內的資源、Servlet、容器外的資源、forward vs redirect 都能訪問內部資源,redirect還可以訪問外部資源、使用forward是在后臺轉發(fā);瀏覽器也不知道干了什么,所以地址不會變、而redirect 要先回到瀏覽器,告訴瀏覽器要訪問誰,所以瀏覽器的地址欄要發(fā)變化、當訪問內部資源時,使用firward效率會更高。
    Session 是容器為每個客戶端開辟內存空間,專;第十二周;實習第十二個禮拜;MVC:Model--職責分明,便于風開發(fā)、優(yōu)點;JSP技術使用Java編程語言編寫類XML的ta;Web服務器在遇到訪問JSP網頁的請求時,首先執(zhí);JSP與JavaServlet一樣,是在服務器端;JSP:為什么要學EL和 jstl、在一個系統(tǒng)中,;EL表達式:${屬性名}//屬性Session 是容器為每個客戶端開辟內存空間,專門用來保持狀態(tài)信息、 Session需要一個id來標識:sessionid、要求客戶端要保留id、每一次訪問時都帶上這個id、
    a、Session的基本特點:保存在服務器端(安全性高,保護隱私)、類似Hashtable的數(shù)據(jù)結構保存、支持任何類型的對象。
    b、保存會話id的技術(aporia)、Cookie表單隱藏字段。
    c、獲取Session。
    d、Session存取信息。
    e、設臵Session的有效時間。
    第十二周
    MVC:Model--職責分明,便于風開發(fā)、優(yōu)點:解耦,職責分明,便于分工開發(fā)、缺點:分成三部分,造成系統(tǒng)架構復雜,對于小系統(tǒng)不適合、造成調試困難,一旦出現(xiàn)錯誤,可能是Model,也可能是view也可能是control、對開發(fā)人員要求比較高。
    JSP 技術使用Java編程語言編寫類XML的tags和scriptlets,來封裝產生動態(tài)網頁的處理邏輯。網頁還能通過tags和scriptlets訪問存在于服務端的資源的應用邏輯。JSP將網頁邏輯與網頁設計和顯示分離,支持可重用的基于組件的設計,使基于Web的應用程序的開發(fā)變得迅速和容易。
    Web服務器在遇到訪問JSP網頁的請求時,首先執(zhí)行其中的程序段,然后將執(zhí)行結果連同JSP文件中的HTML代碼一起返回給客戶。插入的Java程序段可以操作數(shù)據(jù)庫、重新定向網頁等,以實現(xiàn)建立動態(tài)網頁所需要的功能。
    JSP與JavaServlet一樣,是在服務器端執(zhí)行的,通常返回給客戶端的就是一個HTML文本,因此客戶端只要有瀏覽器就能瀏覽。
    JSP:為什么要學EL和jstl、在一個系統(tǒng)中,頁面通常是由美工開設計完成,美工并不懂java語言、當美工看到頁面上充滿著java代碼時,會干擾美工維護頁面,造成維護困難、如何做到動態(tài)頁面沒有java代碼?EL表達式和JSTL。
    EL 表達式:${ 屬性名 } //屬性名是調用對象的setAttribute(屬性名,屬性值)、在servlet往范圍對象中設臵屬性,forward到目標頁面、EL訪問常量值,直接輸出 ${ 常量 }、可以使用==判斷字符串 、存取器[] 讀取對象的值、使用.可以訪問對象的屬性,讀取map的key、讀取數(shù)組只能用[]。
    第十三周
    功能需求如下:
    這是一個網上在線購物系統(tǒng)(B2C)。
    系統(tǒng)需要提供網上購物的功能。
    用戶能夠隨意瀏覽商品,并能獲取商品的詳細信息,如圖片預覽、商品描述等。   系統(tǒng)能夠向用戶提供一些瀏覽信息,讓用戶能夠快速的了解系統(tǒng)出售商品信息,如特價促銷,店長推薦,排行榜,新上架商品等。
    系統(tǒng)能夠提供3級分類商品。
    系統(tǒng)能夠提供品牌分類。
    系統(tǒng)能夠提供公告信息,讓用戶快速了解系統(tǒng)的通告信息。
    系統(tǒng)能夠提供論壇的方式,供用戶發(fā)表對商品的評論的功能。
    系統(tǒng)能夠提供搜索功能,讓用戶快速了解他需要的產品。
    用戶在瀏覽3級分類商品的時候,需要體統(tǒng)高級篩選功能,如不同方式瀏覽商品信息、按價格排序商品,按規(guī)格瀏覽商品等功能。
    用戶購物需要注冊成為本系統(tǒng)的會員,并能隨時修改自己的信息(如收貨信息等)。
    會員能夠收藏自己喜歡的商品,并能隨時關注該商品。
    會員能夠查看已購買的商品。
    會員能夠完成與論壇的相關功能。
    總結:通過實戰(zhàn),發(fā)現(xiàn)自己學得不是自己想象的那么好,有些功能還是做不出來。通過新豆商城項目,發(fā)現(xiàn)自己的不足,跟同事之間的交流中,能學到很多新知識。簡單的總結為幾個字,那就是:多看,多問,多觀察,多思考!
    第十四周
    一、 AJAX是什么?在傳統(tǒng)的web應用中,用戶與應用的每一次交互,都是首先用戶通過瀏覽器向服務器端發(fā)送一個請求,服務器解析這個請求,將相應的響應信息返回給瀏覽器。在服務器端業(yè)務邏輯非常復雜或者需要耗時較長的情況下,瀏覽器等待刷新時,頁面經常是一片空白,用戶只能被動等待服務器端響應完成,在此期間客戶不能在頁面上做任何操作,帶給用戶非常糟糕的體驗。它包括:基于XHTML和CSS標準的表示;使用DOM進行動態(tài)顯示和交互;使用XML和 XSLT進行數(shù)據(jù)交換與處理使用XMLHttpRequest與服務器進行異步通信;使用JavaScript綁定一切。
    二、使用AJAX 的利弊:使用AJAX,可以為開發(fā)人員、終端用戶帶來可見的便捷:減輕服務器的負擔。AJAX的原則是“按需取數(shù)據(jù)”,可以最大程度的減少冗余請求和響應對服務器造成的負擔。無刷新更新頁面,減少用戶心理和實際的等待時間。特別是當讀取大量數(shù)據(jù)的時候,AJAX使用XMLHTTP對象發(fā)送請求并獲取服務器響應,在不重新載入整個頁面的情況下用Javascript操作DOM最終更新頁面。在讀取數(shù)據(jù)的過程中,用戶面對的不是白屏,是原來頁面的內容,用戶可以繼續(xù)進行其他操作,只有當數(shù)據(jù)接收完畢之后才更新相應部分內容。帶來更好的用戶體驗。
    一直以來,B/S程序在用戶易操作性、界面友好性上跟C/S相比都有較大的差距,隨著AJAX的應用,這種情況將得到較大的改觀??梢园岩郧胺掌髫摀囊恍┕ぷ鬓D嫁到客戶端,利用客戶端閑臵的能力來處理,減輕服務器的負擔。