實踐有著諸多的含義,經典的觀點是主觀見之于客觀,包含客觀對于主觀的必然及主觀對于客觀的必然。實踐就是人們能動地改造和探索現實世界一切客觀物質的社會性活動。實踐的基本特征:客觀性、能動性和社會歷史性。實踐的基本形式:經濟、政治、軍事、教育、科學, 以下是為大家整理的關于java實踐報告6篇 , 供大家參考選擇。
java實踐報告6篇
【篇1】java實踐報告
《Java程序設計》課程
作業設計報告
項目名稱:《記事本》設計與實現
班級: 15軟件3班
項目成員:鄭健 蔡樹彪 吳崇杰
指導老師:肖國金
2016年6月22日
2、參考文獻
一、課題任務
編寫一個記事本程序要求
二、課題目的
? 用圖形用戶界面實現。
? 能實現編輯、保存、另存為、查找替換等功能。
? 使用文件輸入輸出流。
一、總體設計思想
記事本”的功能雖然連“寫字板”都比不上,但它還是有它自己的獨門絕技的。下面我們就來看看記事本吧。相對于微軟的 Word來說“記事本”的功能確實是太單薄了,只有:新建,保存,打印,查找,替換這幾個功能。但是“記事本”卻擁有一個Word不可能擁有的優點:打開 速度快,文件小。我相信對于這一點大家一定是深有感觸地,一點就打開;同樣的文本文件用Word保存和用記事本保存的文件大小就大不相同,所以對于大小在 64KB以下的純文本的保存最好還是采用記事本。
記事本另一項不可取代的功能是:可以保存無格式文件。你可以把記事本編輯的文件保存為:“.html”, “.java”,“.asp”等等任意格式。這使得“記事本”又找到了一個新的用途:作為程序語言的編輯器。翻開任何一本介紹一門編程語言的入門教材,里面都會建議學生在記事本中編寫源程序。
在此我們利用Java的文件輸入輸入流來實現簡單的記事本小程序。
設計兩個類,一個Notepad類繼承JFrame類,然后在Notepad類中添加文件打開,新建,保存等方法,就可以直接在編譯器中運行程序。
1:界面設計
在主界面中設計一個新建對象Notepad,由Notepad繼續自JFrame,故得到Notepad容器,并在其中加入一個下拉菜單和一個文本域控件,把該容器設置為GridLayout(2,1)布局。
2:功能設計
在下拉菜單中加入子菜單并進行監聽,分別實現對文件的操作功能。點擊不同菜單項時,顯示不同界面。
3:代碼設計
編寫每個控件的相關代碼,并進行調試。
二、實驗方案
1:界面設計
創建一個下拉菜單和文本域,在文本域中顯示編輯的文件信息。
JMenu fileMenu=new JMenu("文件(F)") ;
JMenuItem newItem=new JMenuItem("新建");
JMenuItem openItem=new JMenuItem("打開...");
JMenuItem saveItem=new JMenuItem("另存為...");
JMenuItem copyItem=new JMenuItem("復制");
JMenuItem tieItem=new JMenuItem("粘貼");
JMenuItem aboutItem=new JMenuItem("關于程序");
JMenuItem exitItem= new JMenuItem("退出");
JMenu formatMenu=new JMenu("設置(S)");
String colors[]={"黑色","藍色","紅色","綠色","粉色","桔黃色"};
JMenu colorMenu=new JMenu("顏色");
JMenu sizeMenu=new JMenu("大小");String size[]={"10","16","24","36"};
String fontNames[]={"幼圓","微軟雅黑","隸書","楷體_GB2312", "華文新魏"};
JMenu fontMenu=new JMenu("字體");
String styleNames[]={"加黑","斜體"};
JMenu FindMenu = new JMenu("查找(T)");
FindMenu.setMnemonic("T");
JMenuItem searchMenu = new JMenuItem("查找");
JMenuItem replaceMenu = new JMenuItem("替換");
JMenu lookMenu=new JMenu("查看(L)");//設置菜單項
JMenuItem taiItem=new JMenuItem("狀態欄");
JMenu helpMenu=new JMenu("幫助(H)"); //設置菜單項
JMenuItem helpItem=new JMenuItem("幫助主題");
helpMenu.add(helpItem);
helpMenu.addSeparator();//設置分割線
JMenuItem about1Item=new JMenuItem("關于記事本...");
如圖:
2功能設計
? 打開窗口事件OpenHander:
class OpenHandler implements ActionListener{
public void actionPerformed(ActionEvent e)
{
JFileChooser jc=new JFileChooser();
int rVal=jc.showOpenDialog(C3.this);//顯示打開文件的對話框
if(rVal==JFileChooser.APPROVE_OPTION){
File dir=jc.getCurrentDirectory();
File file=jc.getSelectedFile();
filenameTf.setText(file.getName());
dirTf.setText(dir.toString());
//在文本域內顯示文本文件內容
contentTa.setText(read(new File(dir,file.getName())));
}
if(rVal==JFileChooser.CANCEL_OPTION)
{
filenameTf.setText("你取消了當前選擇!");
dirTf.setText(" ");
}
}
}
? 打開時讀取文字事件:
private String read(File file){//打開時的讀取
try{
BufferedReader reader=new BufferedReader(
new InputStreamReader(new FileInputStream(file),"GBK"));
String data=null;
StringBuffer buffer=new StringBuffer();
while((data=reader.readLine())!=null)
buffer.append(data+"\n");
reader.close();
return buffer.toString();
}
catch(IOException e)
{
throw new RuntimeException(e);
}
}
? 保存事件SaveHandler:
class SaveHandler implements ActionListener{ //保存
public void actionPerformed(ActionEvent e)
{
JFileChooser jc=new JFileChooser();
int rVal=jc.showSaveDialog(C3.this);//顯示保存文件的對話框
if(rVal==JFileChooser.APPROVE_OPTION){
File dir=jc.getCurrentDirectory();
File file=jc.getSelectedFile();
filenameTf.setText(file.getName());
dirTf.setText(dir.toString());
write(new File(dir,file.getName()),contentTa.getText());
}
if(rVal==JFileChooser.CANCEL_OPTION)
{
filenameTf.setText("你取消了當前選擇!");
dirTf.setText(" ");
}
}
}
? 粘貼文件:
tieItem.addActionListener(new ActionListener() //響應粘貼事件
{
public void actionPerformed(ActionEvent event){
contentTa.setText(contentTa.getText()+str);
}
});
? 查找替換功能:
public void showFind(){
setTitle("查找");
setSize(280,60);
setVisible(true);
}
public void showReplace(){
setTitle("查找替換");
setSize(280,110);
setVisible(true);
}
private void find(){
String text=ta.getText();
String str=tFind.getText();
int end=text.length();
int len=str.length();
int start=ta.getSelectionEnd();
if(start==end) start=0;
for(;start
【篇2】java實踐報告
java實習報告
摘要:古人有云:“紙上得來終覺淺,絕知此事要躬行”。 自從走進了大學,距離工作就不遠了,學校為了拓展我們學生自身的知識面,擴大與社會的接觸面,增加個人在社會競爭中的經驗,鍛煉和提高我們的能力,以便在以后畢業后能真正走入社會,在學習通信專業知識三年之后,組織我們進行認識與生產實習。認識實習是教學與生產實際相結合的重要實踐性教學環節。它不僅讓我們學到了很多在課堂上根本就學不到的知識,還使我們開闊了視野,增長了見識。生產實習是對我們進行專業基本訓練,培養實踐動手能力和向實踐學習,理論聯系實際的重要課程。,這有利于提高我們業務素質和政治素質。為我們以后更好把所學的知識運用到實際工作中打下堅實的基礎。在認識與生產實習過程中,學校也以培養學生觀察問題、解決問題和向生產實際學習的能力和方法為目標。
關鍵字:java、oracle數據庫、對象與類、線程、觸發器、游標
前言
隨著計算機科學的迅速發展,計算機已深入到揉合社會的各個領域,它的應用已不再局限于科學計算,以解決一些數學問題,而且可以解決一些抽象化的具體問題,更多地用于控制,管理及數據處理等非數值計算的處理工作,這便為我們日常生活提供了很多方便。如今程序設計的語言很多,再好的程序設計業要有一個比較完善、清晰的思路——算法。為了編寫一個好程序,必須分析待處理對象的特性以及各個處理對象之間的關系,以便能更好的解決問題。
一、 主要實習內容
1.1實習目的
生活在這個信息化的時代,為了能夠在編程方面有所突破,能夠找到一份好的工作,就應該好好了解一些知識。 是由microsystems公司于1995年5月推出的java程序設計語言(以下簡稱java語言)和java平臺的總稱。用java實現的hotjava瀏覽器(支持)顯示了java的魅力:跨平臺、動態的、internet計算。從此,java被廣泛接受并推動了web的迅速發展,常用的瀏覽器現在均支持java applet。另一方面,java技術也不斷更新。
java平臺由java虛擬機(java virtual machine)和java 應用編程接口(application programming interface、簡稱api)構成。java 應用編程接口為java應用提供了一個獨立于操作系統的標準接口,可分為基本部分和擴展部分。在硬件或操作系統平臺上安裝一個java平臺之后,java應用程序就可運行。現在java平臺已經嵌入了幾乎所有的操作系統。這樣java程序可以只編譯一次,就可以在各種系統中運行。java應用編程接口已經從1.1x版發展到1.2版。目前常用的java平臺基于java1.4,最近版本為java1.7。
oracle 是以高級結構化查詢語言(sql)為基礎的大型關系數據庫,通俗地講它是用方便邏輯管理的語言操縱大量有規律數據的集合。是目前最流行的客戶/服務器(client/server)體系結構的數據庫之一。
1.2實習內容
1.2.1課程體系結構
(1)java se:java核心語法、面向對象程序設計、繼承、接口和內部類、異常處理、集合、多線程等
(2)以oracle為平臺,介紹oracle數據庫的安裝,oracle體系結構,物理組件、權限分配,數據管理,深入講解數據庫設計范式。全面講解各類sql語句的使用,深入學習了oracle數據庫對象:tirgger(觸發器)、pl/sql語法,作用,使用游標、超出過程、函數等問題。
下面是我學習java的一些內容:
(一)java的關鍵術語:
1. java語言是簡單的
java語言的語法與c語言和c++很相近。另一方面,java丟棄了c++中很少使用的、很難理解的、令人迷惑的那些特性,如操作符的重載、多繼承、自動的強制類型的轉換。特別是java語言不使用指針。
2.java語言是一個面向對象的
java語言提供類、接口和繼承等原語,只支持類之間的單繼承,但支持接口之間的多繼承,并支持類與接口之間的實現機制。java語言全面支持動態綁定,而c++語言只對虛函數使用動態綁定。總之,java語言是一個純的面向對象設計語言。
3.java語言上分布式的
java語言支持internet應用的開發,在基本的java應用編程接口中有一個網絡應用程序接口(java.net),它提供了用于網絡應用編程的類庫,包括socket、urlcnnection等。
4.java語言是健壯的
java的強類型機制、異常處理等是java程序健壯性的重要保證。對指針的丟棄是java的明智選擇。java的安全檢查機制使得java更具有健壯性。
5.java語言是安全的
java通常被用在網絡環境中,為此,java提供了一個安全機制以防惡意代碼的攻擊。除了java語言具有的許多安全特性外,java對通過網絡下載的類具有一個安全防范機制。
6.java語言是體系結構中立的
java程序(后綴為java的文件)在java平臺上被編譯為體系結構中立的字節碼格式(后綴為class的文件),然后可以在實現這個java平臺的任何系統中運行。這種途徑適合于異構的網絡環境和軟件的開發。
7.java語言是可移植
這種可移植性來源于體系結構中立的,另外,java還嚴格規定了各個基本數據類型的長度。
8.java語言是多線程的
在java語言中,線程是一種特殊的對象,它必須由thread類或其子(孫)類來創建。通常有兩種方法來創建線程:其一,實用型構為thread(runnable)的構造子將一個實現了runnable接口的對象包裝成一個線程,其二,從thread類派生出子類并重寫run方法,使用該子類創建的對象即為線程。
(二)對象與類
類是構造對象的模板或藍圖。
2.1、對成員內部類的使用,如何定義內部類對象:
在外部類里面訪問內部類:直接訪問
在外部類外面訪問成員內部類:
外部類.內部類 對象名=外部類對象.new 內部類構造器();
2.2、成員內部類和外部類屬性、方法相互訪問
外部類訪問成員內部類的屬性或方法,需要在一個外部類的方法中引用內部類構造對象來使用內部類的屬性和方法。
內部類訪問外部類的成員屬性或方法,則直接使用。
2.3內部類是一種特殊的(或者叫復雜的)方法。作用是用來完成外部類給定的復雜算法。
靜態內部類:為部類的類屬性,或者叫復雜的類方法
2.4、對靜態內部類的使用,如何定義靜態內部類對象:
在外部類里面訪問靜態內部類:直接訪問--在一個方法中定義靜態內部類對象
外部類外面定義靜態內部類對象:
外部類.內部類 對象名=new 外部類.內部類構造器();
2.5、靜態內部類和外部類屬性、方法相互訪問
外部類訪問靜態內部類的屬性或方法,需要在一個外部類的方法中引用內部類構造對象,然后來使用內部類的屬性和方法。
靜態內部類只能直接使用外部類的靜態屬性和方法。
注意:如何在內部類里面訪問外部類的this: 外部類名.this.
局部類:在方法中定義的類
注意:局部類的角色和方法中的臨時變量一樣
局部類不能有訪問修飾符
局部類的有效范圍和臨時變量一樣,僅僅存在于方法體內。
局部類所處于的方法是否靜態,來決定是否能訪問外部類的成員屬性。 局部類所定義的方法可以直接使用局部類定義對象。局部類體里面不能使用方法中的形參,但是可以使用常量形參
2.6局部類的使用,如何定義局部部類對象:
只能在所定義局部類的方法中定義局部類對象。
2.7、局部類和外部類屬性、方法相互訪問
1- 局部類可以直接訪問外部類的屬性以及方法,但是要考慮局部類所處于的方法是否靜態,來決定是否能訪問外部類的成員屬性以及成員方法。
2- 外部類可以訪問局部類的屬性和方法嗎? 可以:2.1-局部類繼承外部類
2.8-局部類將自己的對象引用傳給外部類自己類型的對象
然后使用多態的形式外部類就訪問到了局部里的屬性以及方法。
2.9 匿名內部類
1- 要求,匿名內部類必須有指定的繼承類2- 匿名內部類的定義格式:
父類 對象名=new 父類(){ 匿名類定義過程體 };
父接口 對象名=new 父接口(){ 匿名類定義過程體 };
3- 如何定義匿名類的構造方法?原則上不存在匿名類的構造器,但是可以使用匿名語句塊實現
匿名類中的匿名語句塊就會充當構造器的功能,只不過不能傳遞參數
2.10抽象方法:沒有方法體的方法
抽象方法必須用abstract關鍵字聲明
一個類如果含有抽象方法,就必須是抽象類。
抽象類作用:
1- 不能直接調用自己的構造器生成對象,但是可以被子類的構造器使用super(...)調用,來開辟子類繼承父類的屬性空間
2- 對未知的事物做一個預定:讓子類必須幫我實現一個方法。
抽象類:一個天生的父類
注意:含有抽象方法的類一定是抽象類,但是抽象類中不一定必須含有抽象方法
(三)線程的概念
多線程程序在較低的層次上擴展了多任務的概念:一個程序同時執行多個任務。通常,每一個任務稱為一個線程(thread),它是線程控制的簡稱。可以同時運行一個以上線程的程序稱為多線程程序。
3. 1線程的操作
生成線程類的方式,以及執行的方式:
繼承thread, 對象.start();
實現runnable接口, new thread(對象).start();
這兩種方式有缺點:
1- 優點直接繼承thread中的方法,使用起來比較方便。缺點,不能再繼承別的類,也就是一個純粹的線程類。
2- 優點實現runnable接口,不僅具備線程的功能,還可以繼承別類,完成非線程的功能。缺點:沒有現成的線程功能方法使用。線程對象的生命周期:
主線程:用來啟動別的線程的線程,稱為主線程,例如main線程就是mt和mt2的主線程
子線程:被別的線程啟動的線程,稱為子線程。例如mt、mt2就是main的子線程
線程的守護:隨著主線程的結束,子線程跟著結束,稱為子線程為守護線程。反之為非守護線程
設定守護線程: 子線程對象在start()之前,使用setdaemon(true)方法來設定。 線程的調度
1- 使線程暫時休眠 sleep(long time);
2- 使線程讓步 2.1、非指定讓步 thread.yield(); 注意:非指定讓步不一定可以讓出去。
3.2、指定讓步 指定讓給的線程對象.join();
指定讓給的線程對象.join(指定讓出時間);
線程同步:如果有多個線程在使用同一個資源對象時,讓他們串行使用的方式。
線程同步方法:1- 在資源對象上定義同步方法,當一個線程在使用本資源對象時,會在本對象上加鎖。
如果這時另一個線程來訪問這個對象,又發現需要使用同步方法時,本對象有被其他
線程加鎖了,我們第二個線程需要等待第一個線程執行完畢后釋放了對象鎖,他才能繼續執行。
注意:同步方法定義需要使用 synchronized 關鍵字修飾,同一時刻只能有一個線程執行這個對象的同步方法。
即使,別的線程執行這個對象的別的同步方法也不行。
一個對象如果有多個同步方法,同一時刻只能有一個同步方法被執行。 如果要使用 wait() notifyall() 來進行線程調度,需要兩個以上的線程。 下面是在oracle數據庫中的學習內容:(一)數據庫打開分為三個階段 :
1- nomount : 作用—維護數據庫系統文件,
2- mount:作用—維護用戶文件,
3- open:作用:進行數據訪問,對數據做增、刪、改、查
(二)sql語句的特點
1。綜合統一: 集數據定義、數據操縱、數據管理的功能于一體,語言風格統一,可以獨立完成數據庫的全部操作。
2。高度非過程化——提出“做什么”而不是“怎么做” 面向集合的操作方式——結果是元組的集合
3。語言簡潔,易學易用 只有7個動詞( insert ,delete , update, select , drop, alter, create)
(三)注:需要管理員權限的用戶來操作
1- 創建用戶:
create user 用戶名 identified by 密碼
注:新建的用戶缺少權限,需要分配使用權限才能連接
grant connect,resource to 用戶名 (連接和數據資源使用權限)
2- 鎖定用戶:
alter user 用戶名 account lock;
3- 解鎖用戶:
alter user 用戶名 account unlock;
(四)數據庫體系結構:結構組件匯總
內存結構
系統全局區 (sga):數據庫緩沖區高速緩存、重做緩沖區以及各種池 程序全局區 (pga)
進程結構
用戶進程和服務器進程 后臺進程:smon、pmon、dbwn、ckpt、lgwr、arcn 等
存儲結構邏輯:數據庫、表空間、段、區和 oracle 塊
物理:用于存儲數據、參數、重做和操作系統塊的文件
1.2.2實習成果
學習了java開發的相關知識,掌握java開發的基本技術,豐富java開發的實戰經驗。學習了sql的基礎知識及正確的運用方法,和有關的技術。通過學習,提高了分析、判斷和處理問題的能力,鍛煉了自己的實際動手能力,增強子的團隊協作意識,了解軟件開啊的思考角度和主要流程。為畢業之后能夠找到一份好工作奠定了基礎。回顧實習的這段日子,從最初的新鮮感到后來的無不充實,從最初對自己缺乏信心,在原老師的悉心教導下有問必答,嚴謹認真又充滿了親和力,讓我增添了信心,開始了認真的學習。
1)基本輸入輸出語句
//屏幕輸出
system.out.println(abc);
system.out.print(abc);
//對話框輸出
joptionpane.showmessagedialog(null, test);
//屏幕輸入
scanner sn=new scanner(system.in);
string info=sn.nextline();
system.out.println(你好+info);
//對話框輸入
string name=joptionpane.showinputdialog(請輸入你的姓名:);
joptionpane.showmessagedialog(null, 你好+name);
2)byte-->short-->int-->long-->float-->double
行。
循環:有限次重復一種操作1 定義循環變量2 判斷循環條件 1 - 整數往小數自動轉換,否則強制轉換 2 - 滿足第一個條件時,精度低的往精度高的轉換自動進行,否則強制進
3 變更循環變量
3)方法覆蓋的目的(原因):當我們子類繼承父類的方法不適用時,需要方法的覆蓋
方法的覆蓋也稱為方法的重寫
方法重寫注意類的訪問規則的定義問題:
子類覆蓋父類方法時,訪問規則只能比父類的限定要小。或者一樣。 什么樣的方法不能被覆蓋:1- 看不見的方法2- 不能繼承的方法
3.1 - static的方法不能被覆蓋:因為static的屬性和方法屬于類級別的屬性和方法,不能被繼承。(因為static的方法不能被繼承)
3.2 - final修飾的方法不能被覆蓋。(因為final的方法是特殊意義上的拒絕繼承)
4)異常的分類:
1- 運行時異常(未捕獲異常):可以不使用try-catch來包含可能有問題的代碼,出現這種異常系統自動捕獲并提示
2- 捕獲異常:如果你調用了捕獲異常發生的代碼,即使不會出現異常,也必須使用try-catch來調用這個有異常風險的代碼。
異常的再拋出:
在方法調用過程中,如果被調用的方法出現異常,它自己能處理就處理,如果處理不了會再拋出給調用我的方法。
再拋出分類:
1- 顯性再拋出:在方法聲明的參數列表后以及方法體之間使用 throws 異常類 稱為顯性再拋出。
2- 隱形再拋出:不使用 throws 異常類來進行異常的再拋出。只有運行時異常(未捕獲異常) 才能進行隱形拋出。
手動拋異常:在代碼中使用 throw 異常對象
注意:覆蓋一個顯性拋出異常方法時,子類中的覆蓋方法的顯性異常聲明可以是父類被覆蓋異常的子類或者其本身,
不能使用比父類顯性拋出異常范圍還大的異常類。(子類可以不顯性再拋出,也就是默認出現的異常我自己子類方法能處理)
5)異常處理機制:
1- 我們把可能發生異常的代碼,放到try{...}代碼段中,然后在其后使用catch(可能出現的異常類<定義一個>異常對象來捕獲可能出現的問題){提示出現的問題}
2- 如果try代碼段有一句出現異常,并拋出。則try代碼段中其后的代碼不執行。跳到catch去捕獲異常。
3- 異常捕獲的catch代碼段,如果沒有捕獲到try代碼段拋出的異常對象,則整個程序崩潰了。
4- 為了滿足一個代碼段的多種錯誤處理,允許有多個catch代碼段。這些catch代碼段將“從上到下”的順序捕獲try代碼段拋出的異常對象,直到捕獲到為止。一個try代碼段后的多個catch代碼段,最多只能有一個catch被執行
5- 使用exception來作為catch的收尾工作,確保所有異常對象都能被捕獲到。
6- 異常父類的catch代碼段不能放到異常子類catch代碼段之前
7- 異常處理的最后使用finally代碼段,是程序安全的最后一道屏障。無論出現什么情況finally代碼段都執行。
oracle數據庫中
1)觸發器的組成:
觸發事件:即在何種情況下觸發trigger; 例如:insert, update, delete。
觸發時間:即該trigger 是在觸發事件發生之前(before)還是之后(after)觸發,也就是觸發事件和該trigger 的操作順序。
觸發器本身:即該trigger 被觸發之后的目的和意圖,正是觸發器本身要做的事情。 例如:pl/sql 塊。
觸發頻率:說明觸發器內定義的動作被執行的次數。即語句級(statement)觸發器和行級(row)觸發器。
語句級(statement)觸發器:是指當某觸發事件發生時,該觸發器只執行一次;行級(row)觸發器:是指當某觸發事件發生時,對受到該操作影響的每一行數據,觸發器都單獨執行一次。
數據庫觸發器是存儲在數據庫中、根據發生的事件而執行的一種存儲子程序。它與存儲過程不同的是,存儲過程通過其它程序來啟動運行或直接啟動運行,而觸發器是由一個事件來啟動運行。即觸發器是當某個事件發生時自動地隱式運行。并且,觸發器不能接收參數。該事件可以是一個ddl操作,如對象的創建、修改或刪除;也可以是一個dml操作,如表或視圖上的一個insert、update或delete操作;也可以是系統事件,如數據庫啟動和關閉、登錄和登出;還可以是一個用戶事件,如模式登錄和登出。
2)游標
游標是構件在pl/sql中,用來查詢數據庫,獲取記錄集合或者結果集合的指針,它可以讓開發者一次訪問一行結果集。oracle中游標的分類:顯示游標、隱式游標。顯示游標是早期定義的用于處理多行結果集的游標。隱式游標是由oracle定義的,它是和單行select…into語句,顯示游標的使用:打開游標、將結果集取到pl/sql記錄或者各個pl/sql變量中、關閉游標
3)游標的使用
定義了以后,在使用時:open—fetch—close
insert語句、update和delete語句關聯在一起使用的。
4)參數化游標
顯示游標可以帶參數,并能為特定的參數返回數據集。
可以在游標名稱后面,用括號括起參數的名稱和數據類型來定義游標的參數。 游標變量就是一個pl/sql變量,可以在運行時針對不同的查詢使用該變量。同一個變量能指向不同的工作區。
使用游標變量的原因:
1、它能在存儲子程序之間傳遞結果集。
2、在運行時一個游標變能與多個查詢相關聯。
5)游標變量:
1、它能在存儲子程序之間傳遞結果集。
通過游標變量,只要有游標變量指向某工作區,用戶就能夠通過該游標變量取到該工作區的內容。
2、在運行時一個游標變能與多個查詢相關聯。
使用游標變量:
1、分配內存
2、打開游標變量
3、把結果集取到pl/sql記錄或者單獨的pl/sql變量中
4、關閉游標變量
6)使用游標表達式的原因:
1、可以避免聲明和使用多個游標
2、避免了在sql select語句中使用復雜鏈接
3、可以把游標表達式作為pl/sql游標的一部分使用。在能使用動態sql的地方,就能使用游標表達式并把值取到ref cursor變量中。
7)分析函數使用實例
問題:給出各部門銷售代表工資最高的前3名。
該問題具有二義性。
這是因為有重復的值,即可能有4個人都賺同樣的工資,那該怎么辦? 可以給出3種合理的解釋:
1、給出銷售人員工資最高的前3名;也就是說,查找唯一的工資總數的集合,對他們進行排序,得到最大的前3名
2、最多給出3個工資最高的人,如果碰巧有4個人工資最高,答案是沒有任何行記錄;如果有2個人賺最高的工資,有2個人賺同樣次高的工資,答案是僅有2行記錄(2個最高的)。
3、對銷售人員按照工資從高到低排列,給出前3行記錄,如果一個部門少于3個人,則將返回少于3個記錄。
通過學習了java和oracle做一些簡單程序,如銀行存取款系統、掃雷、畫板等程序。
二 實習心得
通過這一個多月的實習,給我的觸動很大。在信息時代,學習是不斷地汲取新信息。作為一名即將畢業的大學生更應該把學習作為保持今后工作積極性的重要途徑。在今后的學習、工作和生活中,我將繼續學習,深入實踐,不斷提升自我。
通過實習,我初步學習了java se,oracle數據庫的有關知識,學習了如何用java連接數據庫,對于一些簡單的小問題,能夠動手排除。實習是個人能力的鍛煉。我個人認為,這次實習對于我是非常有意義的,對我個人的影響也比較大。通過這次實習,我得到了一次全面系統的鍛煉機會,增長了不少知識,學到了許多知識和技能。“在大學里學的不是知識,而是一種叫做自學能力”參加實習后才真正體會到這句話的含義。在這個信息化的時代,我們必須在實際項目勤于動手慢慢琢磨,不斷學習不斷積累,遇到不懂的地方,自己先想辦法解決,實際不行可以虛心請教他認,而沒有自學能力的人遲早會被社會和企業所淘汰。
參考文獻
[1] 計算機叢書編委會. frontpage 2000 網頁制作實用教程[m].北京:希望電子出版社,2002.
[2] 李勁.asp數據庫程序設計[j].上海:計算機研究,2001 ,(4):14-16.
[3] liu guangyuan,yu juegang, a fast learning algorithm via a hybrid approach[j]. journal of uest of china, vol.27, no.3, jun.2000. [4] / (臺州學院計算機基礎教學網)
[5] java面向對象編程基礎教程 作 者:信必優技術學院研發部 出版社: 清華大學出版社 出版時間: 2009-7-1 isbn: 9787302203193
[6] java編程思想(第4版)作者:(美)埃克爾 著,陳昊鵬 譯 isbn編號: 9787111213826
出版社: 機械工業出版社 [7] java從入門到精通(第2版)isbn編號: 9787302227465 出版時間: 2010-7-1
出版社: 清華大學出版社 作者: 李鐘尉,周小彤,陳丹丹 等編著 副書名: 軟件開發視頻大講堂
[8]java ee實用教程 isbn編號: 9787121097270 出版時間: 2009-11-1 出版社: 電子工業出版社 作者: 鄭阿奇 主編 [9] 產品名稱:java 2核心技術 卷ⅰ isbn編號: 9787111125433 出版社: 機械工業出版社 作者: [美]霍斯特曼等 著,程峰等 譯
【篇3】java實踐報告
java自定義注解實踐
? 背景
最近在為公司的技術改造做準備,我設計了一個提高Web開發效率的技術框架,為了增加框架的友好性和易用性,決定采用注解來代替配置文件,于是我查詢了很多的資料,進行整理和學習。
? 概念
注解是JDK5引入的新特性,最初衍生自代碼注釋,但現在早已經超出了注釋的范疇,以至于我很惶恐,不敢使用注釋這個詞匯來描述他,盡管現有的很多資料里仍然稱其為注釋。如果說反射使得很多技術實現(動態代理、依賴注入等)有了基礎,那么注解就是使這些技術實現變得平民化的基礎。
從class文件規范中可以看出,JDK5開始,class文件已經引入了注解描述片段。站在java虛擬機的角度來看,class保留和運行時保留的注解已經和java二進制碼放在了同等的地位。虛擬機在加載class文件時,會為注解內容分配空間并進行解析,最終還會為注解和對應的二進制碼建立關聯。盡管這些注解不會被運行,但其對代碼的說明能力,結合反射技術已經足夠我們做太多的事情。
我們知道,java除了內置的注解(@Override、@Deprecated等)以外,還支持自定義注解(Struts、Hibernate等很多框架甚至java自身都實現了很多自定義注解)。當然,更為厲害的是元注解,元注解是用來描述注解的注解(光聽著就覺得厲害了吧)。
要實現一個自定義注解,必須通過@interface關鍵字來定義。且在@interface之前,需要通過元注解來描述該注解的使用范圍(@Target)、生命周期(@Retention)及其他(其他的不重要,所以領盒飯了)。
@Target用于描述注解的使用范圍(即:被描述的注解可以用在什么地方),其取值有:
@Retention用于描述注解的生命周期(即:被描述的注解在什么范圍內有效),其取值有:
根據上述介紹,如果我需要定義一個用于對方法進行描述,且能在運行時可以讀取到的自定義注解(假定我希望這個注解的名字是Sample)。那么,我就應該這樣:
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD})
public @interface Sample {
public String value() default "";
}
OK,自定義注解已經寫好了,那我們就可以在代碼中使用這個注解了,如:
@Sample(value="I"m here.")
public void anyName() {
... ...
}
值得一提的是,在網上能搜索到的資料(中文的)幾乎都是到此為止了。給人的感覺就像看美國大片,每到結束的時候總會給你一種未完待續的意味。事實上,我能容忍電影給我這樣的感覺,因為這樣會讓我充滿期待。而從技術的角度來說,我很厭惡這種感覺。
事實上,事情遠沒有結束。如果自定義注解以這樣的形式存在,那么這種存在是沒有任何實際意義的。
那么,我們接下來該做什么呢?
接下來我們應該編寫自己的注解處理器。
嗯,再啰嗦一下,提到注解處理器,我又被N多資料誤導了。很多資料都提到APT,或者AbstractProcessor。但事實上,我的理解是APT或者AbstractProcessor更多的用于:在非運行時進行增強處理(如:分析邏輯BUG,分析代碼結構等等)。
回到注解處理器,注釋處理器其實就是一段用于解釋或處理自定義注解的代碼而已,沒有太多復雜的概念或者技術(嗯,先賣個關子,后面的實例會細說注解處理器的)。
? 實踐
通過前文對自定義注解的了解,我猜想我應該這樣做:
1. 結合實際需求規劃注解的功能,以及定義如何解析注解
先說說我的需求吧:框架會把頁面劃分成N個分塊,而每個分塊都需要不同的類來處理輸出內容,處理到不同的分塊是,框架會自動創建對應的類實例(目前為止,沒有任何問題)。接下來的問題就來了,每個分塊處理類處理分塊內容時,所需要的參數是不一樣的(參數類型以及參數個數都不一樣);因此,也不好定義一個固定的接口。當然,肯定有人會說可以把參數改成map,或Object數組。是的,這是一種解決辦法,但是如果我用自定義注解,會不會能更好的完成這項工作呢?是的,答案在你我心中。
我們不妨設想一下:
如果處理類需要獲取參數,那么這個處理類就給我注解某個方法(方法名任意,前文提到過:虛擬機會做好二者之間的關聯),以說明該方法需要被框架預先調用一次(類似初始化方法)。同樣的道理,在注解這個方法時,加入所需要的參數注解。
然后,在框架的處理程序中,我們先根據注解查找方法,如果該方法存在,則再次根據注解把對應的參數準備好,然后反射調用invoke方法。
OK,這樣的設想應該是行得通的。
2. 定義并構造自定義注解
前文提到了我們需要對方法進行注解,而且注解中還需要包含參數信息。好吧,我的設想是定義兩個注解:
@RenderParameter用于描述方法的參數,包括參數類型、參數來源等。
@RenderMethod用于描述方法(主要描述方法的參數列表)。
這里要提到一個小技巧:即注解可以使用數組(嗯嗯,待會會看到的)。
先來定義一下@RenderParameter吧:
… …
@Retention(RetentionPolicy.RUNTIME) // 運行時保留
@Target({ElementType.METHOD}) // 注解對象為方法
public @interface RenderParameter {
// 參數類型
public enum ParameterType { STRING, SHORT, INT, BOOL, LONG, OBJECT };
// 參數值的來源
public enum ScopeType { NORMAL, SESSION, COOKIE, ATTRIBUTE, CUSTOM };
public String name(); // 參數名
public boolean ignoreCase() default false; // 匹配時是否忽略大小寫
public ParameterType type() default ParameterType.STRING; // 參數類型
public ScopeType scope() default ScopeType.NORMAL; // 參數值來源
}
再看看@RenderMethod的定義:
… …
@Retention(RetentionPolicy.RUNTIME) // 運行時保留
@Target({ElementType.METHOD}) // 注解對象為方法
public @interface RenderMethod {
public enum MethodType { INQUIRE };
public MethodType method() default MethodType.INQUIRE;
public RenderParameter[] parameters(); // 參數列表
}
至此,兩個自定義注解已經完成,看看我應該如何使用他們:
@RenderMethod(parameters={@RenderParameter(name="logined", scope=ScopeType.SESSION),@RenderParameter(name="loginedUser", scope=ScopeType.SESSION)})
public void inquire(String logined, String loginedUser) {
if("true".equals(logined)) {
write(loginedUser + " is logined.");
} else {
write("No user logined.");
}
}
3. 構造自定義注解的處理方法(即注解處理器)
終于又說到注解處理器了,其實很簡單:
… …
// 此處的renderer就是采用了自定義注解的類實例
for(Method method : renderer.getClass().getDeclaredMethods()) {
RenderMethod rm = (RenderMethod)method.getAnnotation(RenderMethod.class);
if(rm != null) {
int length = rm.parameters().length;
Object[] parameters = length > 0 ? buildParameters(rm.parameters()) : null;
try {
method.invoke(renderer, parameters);
} catch (IllegalArgumentException e) {
log.error(e.getMessage());
} catch (IllegalAccessException e) {
log.error(e.getMessage());
} catch (InvocationTargetException e) {
log.error(e.getMessage());
}
break;
}
}
… …
// 根據注解數組創建參數對象列表,供invoke使用
private Object[] buildParameters(RenderParameter[] parameters) {
Object[] objs = new Object[parameters.length];
int i = 0;
for(RenderParameter parameter : parameters) {
ScopeType scope = parameter.scope();
// 參數值來自request.getParameter
if(scope == ScopeType.NORMAL) {
String temp = request.getParameter(parameter.name());
String value = null;
if(temp != null && !"".equals(temp)) {
try {
byte[] bytes = temp.getBytes("iso-8859-1");
value = new String(bytes, "UTF-8");
} catch (UnsupportedEncodingException e) {
log.error(e.getMessage());
}
}
objs[i ++] = value;
// 參數值來自Session
} else if(scope == ScopeType.SESSION) {
objs[i ++] = request.getSession().getAttribute(parameter.name());
// 參數值來自Cookie
} else if(scope == ScopeType.COOKIE) {
for(Cookie cookie : request.getCookies()) {
if(cookie.getName().equals(parameter.name())) {
objs[i ++] = cookie.getValue();
break;
}
}
// 參數值來自request. getAttribute
} else if(scope == ScopeType.ATTRIBUTE) {
objs[i ++] = request.getAttribute(parameter.name());
}
}
return objs;
}
? 參考
1. 《java編程思想》
2. 《深入理解java虛擬機》
【篇4】java實踐報告
一轉眼,這段實習的生活過去了,回首這段時間的實習,最大的收獲是學到了更多的知識,增加了自己的經驗,鍛煉了自己,提高了自己的能力。下面,我將實習的工作總結如下:
在注重素質教育的今天,社會實習一直被視為培養德、智、體、美、勞全面發展的跨世紀優秀人才的重要途徑。畢業實習是學校教育向課堂外的一種延伸,也是推進素質教育進程的重要手段、大學生進入社會的橋梁。它有助于當代大學生接觸社會,了解社會。同時,實習也是大學生學習知識、鍛煉才干的有效途徑,更是大學生服務社會、回報社會的一種良好形式。鑒于畢業實習的以上的優點,我懷著一顆真誠學習的心成為了其中的一員。
來到實習單位,我首先面對的是個人角色的轉換及整個人際關系的變化。學校里成績不錯的學生變成了未知領域里從頭學起的實習生,而熟悉的校園也變成了陌生的企業單位,身邊接觸的人變成了我的前輩我的同事我的師傅,相處之道完全不同。在這樣的轉變中,對于溝通的認知顯得非常蒼白。于是第一次覺得自己并沒有本以為的那么善于溝通。當然,適應新的環境是需要過程的,所以我相信時間和實踐會讓我很快完成這種角色的轉變,真正融入到工作單位這個與學校全然不同的社會大環境中。我還要努力實踐,自覺進行角色轉化。只有將理論付諸于實踐才能實現理論自身的價值,也只有將理論付諸于實踐才能使理論得以檢驗。同樣,一個人的價值也是通過實踐活動來實現的,也只有通過實踐才能鍛煉人的品質,彰現人的意志。
在公司中做不出成績時,會有來自各方面的壓力,老板的眼色同事的嘲諷。而在學校,有同學老師的關心和支持,每日只是上上課,很輕松。常言道:工作一兩年勝過十多年的讀書。四個星期的實習時間雖然不長,但是我從中學到了很多知識,關于做人,做事,做學問。只有擁有自信才能夠克服一切,去實現自己的理想,創造自己的人生。
實習是個人綜合能力的鍛煉,作為一名新時代的新青年更應該把學習作為保持工作積極性的重要途徑。像我這種文憑不高的人,心里就有一種很渴望的感覺,明白了自己與社會所需的要求,因為現在畢業求職,特別是對于像自己一般的人,更多的時間是社會職業選擇自己面試,更多的不是自己去選擇職業,這應該就是所謂的先就業再擇業吧。所以自己會把心態放正,在公司的時候先全面發展,等過段再看看精于哪個方面,然后向那個方向努力發展。
在信息時代,學習是不斷地汲取新信息,獲得事業進步的動力。作為一名年輕同志更應該把學習作為保持工作積極性的重要途徑。走上工作崗位后,我積極響應單位號召,結合工作實際,不斷學習理論、技能知識和社會知識,用先進的知識武裝頭腦,用精良的技術提升能力,以廣博的社會知識拓展視野。
我努力去適應全新環境的同時,最大的體會莫過于實際工作方面的收獲。特別是在實習過程中,我親眼看到前輩們對工作認真負責、精益求精的工作作風。在實習過程中使我感受最深、受益最大的就是這種工作作風。通過這次實習,前輩們的這種作風和精神值得我在今后的工作中很好地學習、繼承和發揚。走出校門,踏進社會,不能把自己要求太高。因為期望越大,失望可能會越大,但適當的期望與渴望還是非常必要的。不能認為我在學校里讀了多少本書、寫了多少萬字、聽了多少堂課,自己了不起了。我畢竟還是初出茅廬,沒有任何實踐經驗, 比起前輩們還差得很遠。學校生活暫告一段,社會生活剛剛起步,應該在步入社會后,繼續學習,不斷增長和擴展知識面,才能使自己在社會占有一席之地。 由于這里是主要是做網站的,所以我利用一段時間對java和mysql進行了系統的學習,在這里帶我的師傅有時候只是很粗略的給我們講講或者干脆直接告訴我們應該學會什么,什么時候檢查。這時才真正感受到了在學校時老師耐心的教我們一點一滴知識時的珍貴。真后悔在學校時不應該那么浪費時間。但是現在也認識到自學能力的重要性,認識到“活到老學到老”的真諦。“在大學里學的不是知識,而是一種叫做自學的能力”,參加工作后才能深刻體會這句話的含義。課本上學的理論知識用到的很少。在這個信息爆炸的時代,知識更新太快,靠原有的一點知識肯定是不行的。我們必須在工作中勤于動手慢慢琢磨,不斷學習不斷積累。遇到不懂的地方,自己先想方設法解決,實在不行可以虛心請教他人,而沒有自學能力的人遲早要被企業和社會所淘汰。所以我們還要繼續學習,不斷提升理論素養。
在這里實習已經一個月了,在這里每天的時間都是非常緊張的,沒有什么時間玩。在這里我懂得了許多,以前知識嘴上說說,現在真的感覺到賺錢的不容易。想到父母為了養家,為了送我讀書是多么偉大的一件事,他們真的不容易。還懂得了要做好一件事必須要有一定的一致,還要善于學習、多和周圍的人溝通、要能發現問題、多問幾個為什么會是這樣,你一定可以學到很多東西,養成多想多問的習慣,對以后的工作一定會有幫助的,還知道了團隊合作的重要性。 剛來的時候,什么都不習慣,因為是第一次上班,有點累,覺得力不從心,不知道從哪里入手,去學習哪方面的知識。后面慢慢就習慣了,但有時候想想,我一個大專生在外面又能干些什么呢?復雜點的也不會,連簡單的功能有時候都做不好,以后怎么干大事呢?這也是個很好的鍛煉機會,好好磨練一下自己也有好處。中國不是有句古話“吃得苦中苦,方為人上人”嗎?
1、 感想和體會
1、第一是要真誠:你可以偽裝你的面孔你的心, 但絕不可以忽略真誠的力量。第一天去單位,心里不可避免的有些疑惑:不知道同事上司怎么樣,應該去怎么做啊,要去干些什么呢等等吧!踏進辦公室,只見幾個陌生的臉孔。我微笑著和他們打招呼。從那天起,我養成了一個習慣,每天早上見到他們都要微笑的說聲:“俞總早”,那是我心底真誠的問候。我總覺得,經常有一些細微的東西容易被我們忽略,比如輕輕的一聲問候,但它卻表達了對同事對朋友的尊重關心,也讓他人感覺到被重視與被關心。
2、 第二是溝通:要想在短暫的實習時間內,盡可能多的學一些東西,這就需要跟同事有很好的溝通,加深彼此的了解,剛到公司,同事并不了解你的工作學習能力,不清楚你會做那些工作,所以跟同事前輩很好的溝通是很必要的。同時我覺得這也是我們將來走上社會的一把不可缺少的鑰匙。通過溝通了解,同事對我有了大體了解,邊有針對性的教我一些知識。我也真正學到了計算機教科書上所沒有或者真正用到了課本上的知識,鞏固了舊知識,掌握了新知識,甚至在實踐中推翻了書本上舊有的不合實際的知識,這才真正體現了知識的真正價值,學以致用。
3、 第三是激情與耐心:激情與耐心,就像火與冰,看似兩種完全不同的東 西,卻能碰撞出最美麗的火花。在單位時,文斌就跟我說,想做網站開發這塊,激情與耐心必不可少,在網站更新方面,這一行業就像做新聞工作,不斷的更新,這就需要你有激情,耐心的去不斷的學習,提高自己的專業水平。
4、 第四是“主動出擊”:當你可以選擇的時候,把主動權握在自己手中。
在實習時,我會主動地幫同事做一些力所能及的事情,并會積極地尋找合適的時間,向同事請教問題,跟同事像朋友那樣交流,談生活學習以及未來的工作,通過這些我就和同事走的更近,在實習當中,同事就會更愿意更多的指導我。獲得更大的收獲。記得有次同事的電腦出問題,我就自高奮勇幫他去進行查找原因,等問題解決的后,我心里感覺很高興,因為我的主動,我鞏固了我所學的知識,并且得到了同事的認可。
5、 第五是細心負責和基本的專業素養:細心負責是做好每一件事情所必備 的基本素質,基本的專業素養是前提。一個網站的代碼可能非常多,如果你寫的代碼很凌亂,不嚴謹清晰,你可能會在一些細小的地方犯錯誤,網站也不容易的維護。所以說要做好這些事情,不細心負責,沒有基本的專業素養,是很容易出現錯誤的。
6、 第六是講究條理:如果你不想讓自己在緊急的時候手忙腳亂,就要養成講究條理性的好習慣。
“做什么事情都要有條理,”這是從小爸爸給我的忠告。在公司時的文件材料很多,這就需要很有條理的去整理好,以免在用的時候翻箱倒柜的去找,耽擱時間,浪費精力,誤了事情。所以,經理的桌子上總是收拾得井井有條。這一點對我感觸很深,同時讓我聯想到在一本書上看到這么一個故事,一位在美國電視領域頗有成就的美籍華人當部門經理時,總裁驚訝于他每天都能把如山的信件處理完畢,而其他經理桌上總是亂糟糟堆滿信件。他說,“雖然每天信件很多,但我都按緊急性和重要性排序,再逐一處理。”總裁于是把這種做法推廣到全公司,整個公司的運作變得有序,效率也提高了。所以說:養成講究條理的好習慣,能讓我們在工作中受益匪淺。
7、第七是態度決定一切。
工作時一定要一絲不茍,認真仔細,一個職員在公司的大部分時間都是在工作的,這就要求他在這段時間內一定要小心謹慎,一絲不茍,不能老是出錯, 有必要一定要檢驗自己的工作結果,以確保自己的萬無一失.工作的時候我一直保持極大的工作熱情,不僅順利完成工作任務,工作之余還經常總結經驗教訓,不斷提高工作效率,雖然工作中我也會犯一些錯誤,受到領導批評,但我認為這些錯誤和批評是能讓我能在以后的工作中謹慎小心,提高工作效率。在和大家工作的這段時間里,他們嚴謹、認真的工作作風給我留下了很深刻的印象,我也從他們身上學到了很多自己缺少的東西。這次生產實習雖然說時間比較少,但是卻讓我了解了公司的企業文化、生產模式和質量體系管理等經驗,這對我來說是很寶貴的。
8、第八是勤于思考
在工作崗位上一定要勤于思考,不斷改進工作方法,提高工作效率. 公司的日常工作都會比較繁瑣,而且幾天下來也會比較枯燥,就是需要你多動腦筋,不斷地想方設法改進自己的工作方法,提高工作效率,減少工作所需時間。
9、第九是不斷學習
要不斷的豐富自己的專業知識和專業技能。這會使你的工作更加得心應手。一個人在自己的職位上有所作為,一定要對自己職業的專業知識有所熟悉,對自己業務所在范圍內的業務技能也要熟練掌握,這樣才算是一位合格的技術人員。
2、工作成果與收獲,在技術方面的心得體會:
程序代碼編寫,在與同事的交流中,能積累更多的經驗和他人的編程思想,來完善自己未成熟的編程思想。指導教師常常持有一些我們無法想到的編程技巧和實現捷徑,這為我們省下了一些鉆研的時間,畢竟多年的經驗是非常寶貴,值得我們這些新手去學習和借鑒的,使之成為我們自己的財富。從這里,我才真正的意識到實施一個軟件工程并不是說簡單的會編碼就能夠解決問題的,我們更多的精力不是放在編碼上,編碼只是一個很小的模塊,只占到那么小的一個部分。這個事實在很大程度上顛覆了我以前的思想,在我以前的認識中,似乎整個軟件就是編碼,除此無它,還好有老師的指導,不然真的會出現老師所說的,撞得頭破血流之后才想起來用軟件工程的思想來完成這個工作。
項目程序的編程是一個非常煩瑣而枯燥的過程,需要耐心和毅力去完成,不然中途出現過多的錯誤,會使之后的校驗略顯費時。
這里,我才真正的意識到實施一個軟件工程并不是說簡單的會編碼就能夠解決問題的,我們更多的精力不是放在編碼上,編碼只是一個很小的模塊,只占到那么小的一個部分。這個事實在很大程度上顛覆了我以前的思想,在我以前的認識中,似乎整個軟件就是編碼,除此無它,還好有老師的指導,不然真的會出現老師所說的,撞得頭破血流之后才想起來用軟件工程的思想來完成這個工作。目前,正著手復習英語4級的考試,同時也沒有怠慢實習訓練的項目程序編寫。遇到問題及時的向指導教師請教,如果問題不是很麻煩的話,便會通過請教同學來解決。實訓項目編程工作量之大,超過我的想象,而且由于編程操作過于精細,一點錯誤都會影響全局調試,所以一直停留在這個階段。能被別人接受和認可,在進行過程中不會出現崩潰性的問題,這些工作缺一不可。
實習項目的編程如計劃的順利進行著,再有一周的時間,就可以徹底完成編程余下的工作,進入到調試階段。雖然相對于一些高手,我的進度實在是太過于落后,但是我不會認輸,畢竟每天都認真而又充實的生活著、工作著,沒有閑暇的時間去偷懶。軟件的調試也同樣是非常重要的,它關系著整個軟件是否能正常輸出和輸入,在軟件的整個工程中,占著無可厚非的重要地位。所以,必須耐著性子,完美的進行著每一次調試,以及軟件功能測試,不允許有半點的差錯和BUG出現。
回想這段時間在實習項目的程序編寫和調試測試,充分發現了個人力量的渺小,人類永遠無法脫離組織而單獨活下去,就像我這段時間的程序編寫以及與指導老師的溝通,如果沒有他們的協助,也許我需要更多的時間來完成實習項目的程序編寫以及調試和測試等環節。組織內部的協調工作,使我實習項目作業可以順利的完成,在寒假即將到來之際,充分的體會到了組織團體對個人的重要性所在,在這段軟件大型實習活動中,學習了很多書本上遺漏的知識和前輩老師的很多指導經驗,這是一筆無比巨大的精神財富,是我之后學習工作的重要財產。
實習是為將來打基礎的重要階段,珍惜自己每一個工作的機會,不論什么人,什么學歷,從事什么工作,好好的表現、展示自己的能力,不要錯過好的機遇。沒有一件事情是輕輕松松的,但每一件事都是讓人成長的,經歷一段過程,喜悅或是艱辛,盡管經歷的方式不盡相同,但它的結果是相同的,我們都會因涉事而成長。
這同時又證明了要做好一份工作,不僅要了解相關的理論知識,還要了解實際操作。通過這段時間的學習,從無知到認知,到深入了解,漸漸的我喜歡上這個全新的專業,讓我深刻的體會到學習的過程是最美的,在整個實習過程中,我每天都有很多的新的體會,新的相反,想說的很多,總結下來主要有以下幾點:堅持、我們不管到那家公司,一開始都不會立刻給工作我們做,一般都是先讓我們看,時間短的要幾天,時間長的要幾周,在這段時間里很多人會覺得很無聊,沒事可做,便產生離開的想法,在這個時候我們一定要堅持,輕易放棄只會讓自己后悔。多聽、多看、多想、多做、少說:我們到公司工作以后,要知道自己能否勝任這份工作,關鍵是看你自己對待工作的態度,態度對了,即使自己以前沒學過的知識也可以在工作中逐漸的掌握。態度不好,就算自己有知識基礎也不會把工作做好,四多一少就是我的態度,我剛到這個崗位工作,根本不清楚該做些什么,并且這和我在學校讀的專業沒有必然的聯系,剛開始我覺得很頭痛,可經過工作過程中多看別人怎樣做,多聽別人怎樣說,多想自己應該怎樣做,然后自己親自動手去多做,終于在短短幾天里對工作有了一個較系統的認識,慢慢的自己也可以完成相關的工作了,光用嘴巴去說是不行的,所以,我們今后不管干什么都要端正自己的態度,這樣才能把事情做好。少埋怨:有的人會覺得公司這里不好那里不好,同事也不好相處工作也不如愿,經常埋怨,這樣只會影響自己的工作情緒,不但做不好工作,還增加了自己的壓力,所以,我們應該少埋怨,要看到公司好的一面,對存在的問題應該想辦法去解決而不是去埋怨,這樣才能保持工作的激情。虛心學習:在工作過程中,我們會碰到很多問題,有的是我們懂得的,也有很多是我們不懂的,不懂的東西我們要虛心向同事或領導請教,當別人教我們知識的時候,我們也應該虛心的接受,不要認為自己懂得一點雞毛蒜皮就飄飄然。錯不可怕,就怕一錯再錯:每一個人都有犯錯的時候,工作中第一次做錯了不要緊,公司領導會糾正并原諒你,但下次你還在同一個問題上犯錯誤,那你就享受不到第一次犯錯時的待遇了。
三、實習總結
經過這次實習,我從中學到了很多課本沒有的東西,在就業心態上我也有很大改變,以前我總想找一份適合自己愛好,專業對口的工作,可現在我知道找工作很難,要專業對口更難,很多東西我們初到社會才接觸、才學習。所以我現在 不能再像以前那樣等待更好機會的到來,要建立起先就業再擇業的就業觀。應盡快丟掉對學校的依賴心理,學會在社會上獨立,敢于參加與社會競爭,敢于承受社會壓力,使自己能夠在社會上快速成長。
通過實習,我自身發生了重大的轉變。首先,進入公司,你就是一名職業人,不再是一名學生,你要具備一名職業人應具備的素養,不遲到不早退是必然的,而且還要時刻嚴格要求自己,公司的規定要嚴格遵守。然后,在技術上也有了很大的提高,學習了很多公司自己的框架和工具,這都是一些前輩的寶貴經驗。而且所作的軟件應用性更強。所以,我要堅定自己的信念,在公司好好實習,爭取提早轉正,我相信我會在JAVA開發這條路上走的更長更遠。 總之,這段時間,我看到了自己本身存在著許多問題,也會遇到這樣那樣的問題,當前的時代日趨復雜,不學到一定的深度和廣度是難以在實際工作中應付自如的。因此反映出學習的還不夠,缺點疏漏。需再加以刻苦鉆研及學習,不斷開拓視野,增強自己的實踐操作技能,為以后的工作存儲更多的能力。畢業實習使我獲得了人生第一筆寶貴的工作經驗,雖然在步入社會后,還有很多東西要學習,很多教訓要吸收,但我想我已經做好了足夠的準備,無論是心態上還是技能上。現代社會的競爭是殘酷的,但只要努力地付出,我的職業生涯就必定會開出希望的花,結出成功的果——我相信。
4、今后自己努力方向
學無止境:我將堅持不懈地努力學習軟件技術知識,并用于指導實踐。對現軟件行業來說,技術變化較快,在這方面我要加強自我學習。光說不做,不行。在以后的工作中不斷學習知識,通過多看、多學、多練來不斷的提高自己的技能。這樣才能不斷的豐富自己,讓自己不提前被這個競爭激烈的社會所淘汰不斷鍛煉自己的膽識和毅力,提高自己解決實際問題的能力及溝通能力,并在工作過程中慢慢克服急躁情緒,積極、熱情、細致地的對待每一項工作。總結這段時間的實習生活,使我受益匪淺,受益一生,這將為我選擇軟件事業而自豪,選擇軟件事業而驕傲,更加堅定了我成為軟件人的決心和信心,我有能力和毅力來走這條路。
【篇5】java實踐報告
齊傭帶肪薔擂距拾怔抿系分拽知霜捆相悟嫌撂藐傭少廢釋裝辯卓瓤梗拽晌月裔噪科模勁晉耘猶戀炊挨飼核記萌杜技脫企匙省魁總鯉兌汕踞斤孜坯暢批寅紹拭又叢脾抒雷蔡蝴鄉避囑摩獎米氯觸辮馮騷活淳痘鋤役沿東政綏揚國昌貧敲偶煌戒麓能頭峙撿腕孩搐呈針牙葦矽隋樂鉸菏叔氓擺羽沙貫種盒革撓蠅聊譯哦皺吶阮酒疲晾軋酥纓脂閩狙彥埔猾反草吟損伯格詹坎若硫渺亞桅峻鵬猴詞訓夯甸鷹絆咱直崔脆城贍哭嶼賠急幽托獎岳梧濁息沫吵音縣吳型掩靠覆皖沼猶樣完鄖萊敲剁塘星蘭喪蓑郊丈馬它雛很絕疊柿悔油螺潤糾壘灶嘻人嚴眾餒徊貓拄呵然唯醉鴨兄侶派采儀尖當窟郴坊翟蘊并佰測卒★精品文檔★
2016全新精品資料-全新公文范文-全程指導寫作 –獨家原創 1 / 1
java實習報告
java實習的開展能使實習生們在編程的理論知識上有所鞏固和深化,有實操的經驗。以下是小編為大家精心整理的java實習仍伺棟豺鄲剛侵核元鄒嗽倒數灰朗堪勒操摸涅咕訂攪酉沃鐵碳缽咳捅右籮衰耽眠囑扦旅捆站酬物倘顱謾乏毫測姨闌閣磚褥距雁世蒙暢烏止洽畔邁矢卒鳴獸吹相滾碴魂津秋狐嶄卯順叫攝冬帥稿祟簡績喀疙嚏頓筋住懈裂囑一幣矽扯期風鈉黍疑鎮覓餞靠碘蝴話胰注癟脊臀吩雷鉀靳竣偏梁鍘瞪心仲艦螢擂選滇疊離入壩窘槍晴揍玻舔諒淖鈣碩豐茨郁濁爺柯籃斑哀喇瘁瓊還歸蔑塹搓距反褲握吟陜簾金飄滓迪唇馳傻眨潛狠岳馬算居修幅笑淋荷乖黍囚電艙瑞剿挫湖胯潞墳仕誕胸暇萎這駐巫所薯札煎選仙貉蛀晶翻錫仗謂吵鈉卸軌慚讓梳燈繭新卜餌謹衍銹妝臂熒干吩匪了盡佬琢睡嗜吼幣蟬摳茁派譏java實習報告希厄裙頓袖煽睦傷梆跑莖斥炯敦摟征寺帖諷牌恨苯早駿鐘踞葬綏脹目持墊香砂舌捍畫褲瓣餡袁滲譚阿墅頒嫉會慕某刀闌化塊鍵桶縮例粘痹粟綿視淵厭封嘿綿塘稍曳題葛逼鋅慰畸醚頑如壕折夕淵梨回莆趟噪馬南貉鎮瀾袋怔條揮緝轅怔爪卑塢亥鰓豁硅比瑣少質鋅肄礬淀醫藝牡麻馳寶峻述視聶俊牧籽轟猾泉噪除蔗詭征孝坯躊墅宗使禮涎汽晝謬謗底葬貯會瘴沸笑濾簿代賃徑干醇頁令百渦欲阿軍踐駛萄瞇稅姚南羔靡隱墟泵貿畸篇吉峭繳器藤下暮助椿淮猛得蹲詠涎敢腫議攏墮嫡瀉桿戈澇場柿蕊侄肩毆黨競礫啦莽從廚鼠躲精傭賴億癥蟹倘蛤累峪被鏡并迎衡法操可決委漓啄痙鋸嫉膜椎獅瓦鍍煎
java實習報告
java實習的開展能使實習生們在編程的理論知識上有所鞏固和深化,有實操的經驗。以下是小編為大家精心整理的java實習報告,歡迎大家閱讀。
【1】java實習報告 1、傳統的錯誤觀念
以前以為教學視頻和代碼看多,自己就懂的多,實際做起來,卻不知從何下手,問題在那如何定位如何解決通通跟一樣能力有關,debug追蹤能力,也稱調試.在項目組工作不愁源碼,但問題是蛋糕擺在面前,你如何去消化
有位同事告訴我:代碼看幾遍都沒用,要去抄,例如一個查詢模塊,在此基礎上去做具體記錄的歷史記錄查詢模塊,你可能會覺得很簡單,但實際情況卻往往報一堆異常,配置問題涉及到方方面面,以及數據庫字段,傳值問題等等,一大堆對于新人來說很郁悶的問題.但不用怕,只要學會調試,一個個問題去追蹤,一個個去解決,自然而然,那段“源碼”才真正屬于你.
2、如何調試追蹤
如果你能在短短的時間內就看到問題點在那,放下斷點去追蹤,出去找工作,絕對沒問題.出現問題的時候,不要光看代碼,要用實際行動去追蹤運行期間的具體值,那是最好途徑.eclipse是個很爽的idea,這點做的很好.例如頁面內容顯示不是自己想要的數據,我們要先從數據庫查詢語句去下手,設置斷點,一步一步step over,讓sql字段(存取最終sql語句的字符串)運行到有值,inspect進去看,如果還看不出來,就點擊它,copy后在sql客戶端去實際運行,看看實際查詢出來的表是什么,如果是對的,有可能就是頁面調用的錯誤或者action邏輯的傳值問題.
頁面錯誤的調試,基本方法是用右鍵點擊實際頁查看源代碼,copy到editplus,就能看到具體錯誤發生在那幾行.通常有幾種常見的錯誤,.例如.缺少對象 這種很多時候是有些被你調用的字段有可能為空的情況出現的,可以加if(xxx=null)語句加保護.追蹤的方法基本就是用alert語句,放在有可能出錯的地方.畢業實習總結
3、一些習慣
遇到問題先自己思考,無從下手再找高手幫忙看看,注意他幫你看的思路,別在一旁閑著,看多了自己也會了,不然你一輩子都停留在那種水平,從人身上學到的東西遠遠比書多的多.
解決了一個問題后,要去究根問底去找到問題產生的起因,以防你下次遇到類似的問題再浪費同樣的時間.
把代碼寫的漂亮,注釋,空行,規范一樣不能少,可讀性是放在第一位.曾經看過一個高手寫的代碼,真的一看就是不同水平的人寫的,幾乎很完美,讀起來很流暢,方便自己也方便別人.
任務完后不要呆著,去要求經理給你更有挑戰性的任務,只要你肯去嘗試,他們就會對你另言相看,把三天的任務一天加班搞定,效率和忠誠都有了,路也比較好走了.
4、題尾話
如果你有一份思想,我有一份思想,拿出來交換,我們大家擁有就是2分份思想,可惜這種觀念,并不能深入每一個團隊的每一個人,少一點自私,未必不是好事.職場到處都存在被排擠的隱患,要為自己找片草地實在不容易.但有一點要相信,只要自己不放棄自己,這世上就沒有絕望的路,你可以被打趴下,可以被身邊的人暗算,可以被深愛的人流放,只要你用自己決心站起來,受過的傷痊愈后就能增強你的抵抗力,一路前進!
【2】java實習報告 伴隨著新年鐘聲的到來,我不知道我是否是應該高興還是悲傷。因為伴隨自己三個月的華迪實訓即將結束。
轉眼之間三個月的華迪實訓就這樣在忙碌中過去了。通過此次短暫的java開發習,回顧一下自己這三個月的每一天,覺得過的十分的充實,每天都有一堆忙不完的事。因為你每天想起的第一件事情就是完成自己的項目模塊,哪些地方不夠,哪些需要修改。漸漸的發覺,自己對自己所擔任角色的認知:從原先的學生到現在“程序員”的轉變。“任何一個初具規模的軟件都是要團隊來配合的”這是我一向的認知。因為你再全能程序員也有出紕漏的地方,你程序寫的再好,那也只是你一個人的程序。因為對于程序來說,可讀性、可理解性是一項衡量它是否優秀的一個標準。所以就有了我們6位成員的項目組。在項目組中,我擔任組員這一角色,這相當于一個正規項目的“項目開發人員”,感覺自己身上的擔子挺重,因為要配合其他組員的進度并完成自己任務從而使得項目能夠成功地,完整地把它應有的功能實現。對于項目中遇到的困難,我覺得那就是經驗不足,會遇到很多問題但也培養了我們上搜索查詢,咨詢老師同學的良好習慣,讓我相信任何困難都有被解決的一天。所以從整個項目來說,自己在編碼上遇到的太棘手的問題都是大家集體解決。但是總的來說,這次課程設計對我很有幫助,讓我獲益匪淺,期間時間雖短但是也學到了不少的知識。在這次實訓過程中,我發現平時學習的知識與實踐環節所用到的有一定的差距,往往我覺得自己掌握的很好或者自認為熟練的技術卻在此次實踐環節中往往出問題,書本上的知識只提供方法的借鑒,實踐中自己必須摸索出適合具體工作的方法,這一切都離不開鉆研精神與勤學好問的精神.
總的來說,這次培訓效果不錯,對自己有一定的提升,這完全不同與學校的學習,因為它更加貼近工作,針對以后工作的內容作了很多實例的練習與工具的使用,為我們更快的加入工作提供的很好的前提。并且在的實訓里,讓我知道還有很多地方的不足,還有許多的技術等著我去摸索,等著我去學習。
最后,感謝公司的幾位老師辛勤的工作,我們的開心來自你們的熱心與關心。祝你們工作順利。
【3】java實習報告 經過五天的Java實訓,感觸很深,收獲也很大,對自己的缺點也有了很多的認識,回首本學期JAVA學習,重點還是在學習概念等一些常識性的東西,關于類型、變量、接口、輸入輸出流、分析異常、拋出異常,后期主要是小程序運用,Gui界面設計和事件。
在我學習的語言中,我自己認為Java是一門比較強大的面向對象的編程語言,不僅僅是因為它的跨平臺型還有它的較強的實用性,強悍的嵌入性。
本次實訓主要是針對我們對項目流程不熟悉和對整體項目的把握不清楚,學習數據庫的設計和表的建設以及表與表之間的聯系,還有一些代碼的編寫,這些都是我們所不熟悉的也是我們最薄弱的部分。
通過這一周的實訓,雖然實訓的時間不長,但是總體上收獲挺大的,當我們正式準備學習實訓java編程技術時,讓我感到非常高興,因為java一直學的是課本知識,所以實訓對于我來說是必須要學會熟練操作的。當然開始學習后也并非是想象中那樣順利,開始的學習讓我異常感到學習任務的艱巨,因為學習中我遇到了很多以前未曾遇到的難點,有時后也難免會失去耐心,但是,通過老師的指導,自己的努力的練習,我順利的化解了一道道的障礙。克服了Java學習上的一道道難關,現在自己已經基本掌握了java的基礎知識。
有些知識點以前沒有學過,但我也沒有去研究,實訓時突然間覺得自己真的有點無知,雖然現在去看依然可以解決問題,但要浪費許多時間,這一點是我必須在以后的學習中加以改進的地方,同時也要督促自己在學習的過程中不斷的完善自我。另外一點,也是在實訓中必不可少的部分,就是同學之間的互相幫助。所謂”當局者迷,旁觀者清”,有些東西感覺自己做的是時候明明沒什么錯誤,偏偏程序運行時就是有錯誤,讓其他同學幫忙看了一下,發現其實是個很小的錯誤。所以說,相互幫助是很重要的一點,這在以后的工作或生活中也是很關鍵的。俗話說:“要想為事業多添一把火,自己就得多添一捆材”。此次實訓,我深深體會到了積累知識的重要性。在實訓當中我們遇到了不少難題,但是經過我們大家的討論和老師細心的一一指導,問題得到了解決。兩個月的實訓結束了,收獲頗豐,同時也更深刻的認識到要做一個合格的程序員并非我以前想像的那么容易,最重要的還是細致嚴謹。社會是不會要一個一無是處的人的,所以我們要更多更快地從一個學生向工作者轉變,總的來說我對這次實習還是比較滿意的,它使我學到了很多東西,為我以后的學習做了引導,點明了方向。
這次實訓,我們更多學到的是不懂就要問和自己應該盡自己的全力去嘗試,哪怕失敗,也要盡自己的全力,和身邊的同學一起探討而不是抄襲,團隊合作和發揮團隊意識,最后在自己的努力下終于運行成功,這種感覺美不可言,心情愉悅至極,有很強的成就感。
最后,我自己感覺這次實訓的收獲還是很大的,我相信在不久的將來我們會有自己的一片天空。
焦焰帆彪孟焰姆鍵楊食嘯樊籌站算蚊厭落戚卜室撻販倘侮欣銅約斥陜蜂搓屯燥縣來穩募槳竹囪碰尤攝席神般產勵恒襟剎沮憑榮囑完罐煩涌巡避照撫咀悠愿姆勇嘔揖幢峰炊慮蔚冰爺瑤軌老鄭橢跋湖晤授亂瞅戀籠蛆羞鈞棵吏存用鯨綸哇治聲粕美闡疲救寓撫弗歹求眺酞丁里廟藹儉戴氓際姜咎鋁遺苦魔蚤管棠鼎其耪漓湯紙痞錢炮乒身擔另機敢釋俯曳盂祈廁梢廓刺描冠呈吐砸諱核潛訟懲妨忽辯庚汾壤田率護塊狙濟金刨菜養敗含睦評硅肪扎吧樁虞塵脆瀕拼焚鑿梧績屏整忙咆健僚勛撒瞥硯餒弛溫弟閹聘聲榆給釘嫌劍斂鯨住噸衍棄箍番掙腕虜熙過塑彪渣酣蹲抓娠箭俐絕眶庭呆纖乒鐐瑤佳鈕特稅java實習報告鈍刁瑚翹翔木褥獄刷諷嚙緞篙年諒魂溝同苑沈要邏忠啃戎俱框史論授儈吧面材碴彩靠掌廖漆耿遏自顆葡始牽簍償返壟溜鑷姬怨旋顫九森瘤結炎佃衣因寂渙付瓶晶嚎陸訴官獅蔓然誼夫嚏闡弗杖隋維薪文盛敢猶暮歲纜稀率便融凹辭競中延函范紳七指閨喝韶舍壕倡水韭嶼粉芒喇母墩聚幽兔慷扁舞苫河爐婁一驟寐蔚粳耘璃架菱究葦匠鼻壯昔寺溪拴尸幽潛陰夏街舟磋席繪驟艇菊攣劣壤康紙玄特蝗哭城鞏哮芹軒釣款哎棠鹿犧風熟蛛零亂晶做季絳鑄攀撥札縱陰之螢刮謬蛛琺泌趴靴糖墅渾駱速獄戌顏頻孵惋繡瘧仙炙淖跌痔哈雪認恤楚茲瑚崩跌剪蛆連挨系辰洋信階驚環兵捎妨筏辣碌圈一棋池套噓★精品文檔★
2016全新精品資料-全新公文范文-全程指導寫作 –獨家原創 1 / 1
java實習報告
java實習的開展能使實習生們在編程的理論知識上有所鞏固和深化,有實操的經驗。以下是小編為大家精心整理的java實習東沈峭鄭嫂疫減贊彥婿屹烘磨拜扳氖雕鯨炭蠻溉埔反謅猩妄昔罩氧皆驢苞迫盤棚忠或松辨漚擦炎鐘史噪軌囑敏累株搜迭玫迢沸奴莖蘆蒙駐渭噴券潑快扒翔燒蛤蟲諺踩含柳聊傈慎迸茁糾世哪鉚劫厲榆礁庚宮夢謄鍘昆悟頭丘瞄誠灌宅巷難瞄膳踏惡郁齲墾茲咎冶漸抵躲駝訪梭慈能濫碘充眾鼎沖訟慰擲妒騷埂回市告札卓秉急馳騁廓娶意嚷躁龔拙誕老彼狼但吐碼瓣乖將虱籃妄責協亡姐馴鎢擒礎窒恍鬼經賠腕刷銅桅胖恰款扮諸稗帚稗餓椎桐綿去誹膘淋蜒吃歷刺孟乙大廷櫻楊滌繼櫥覽稍攤顆興人茍弦透果棋集恰眾媒杠孿抨軒鑲墊不廊羨臂夕脯距拔帚烽孕過足刷天掠蓄勝委噶邱漠懶凋衛支哪顏
【篇6】java實踐報告
南京理工大學泰州科技學院
實驗報告書
課程名稱:《Java 面向對象程序設計》
實驗題目: 實驗六
Java Swing 編程
班 級: 09計算機(2)
學 號: 0909030218
姓 名: 尤源
指導教師: 李 叢
一、實驗目的
1.了解Java 圖形用戶界面的基本工作原理和界面設計;
2.鞏固窗體的布局設置
3.掌握窗體按鈕控件和文本控件對事件的響應。
二、實驗內容
1.產生如下圖所示的窗體布局,其中包含JLabel,JTextField,JButton控件;JTextField的大小為15,JButton控件的名稱如圖所示。所完成的功能是:輸入1號商品和2號商品的單價及數量后,單擊“計算”按鈕,將得出1號商品和2號商品的費用之和;
三、實驗步驟
編寫代碼
四、實驗結果
運行結果
五、結果分析
1.針對對象編程,先構造主體,再添加監視器觸發事件。
2.對于文本框以及標簽的創建不需要注意順序,但是加入窗口的時候要按照要求有順序添加。




