Java是由Sun Microsystems公司于1995年5月推出的Java程序設(shè)計語言和Java平臺的總稱。用Java實現(xiàn)的HotJava瀏覽器(支持Java applet)顯示了Java的魅力:跨平臺、動態(tài)的Web、Internet計算。從此,Java被廣泛接受并推動了Web的迅速發(fā)展,常用的瀏覽器現(xiàn)均支持Java applet。
本文主要介紹的是java開發(fā),首先介紹了java開發(fā)的過程,其次介紹了java開發(fā)中遇到的難點,最后闡述了java開發(fā)常見的問題及解決辦法,具體的跟隨小編一起來了解一下。
Java開發(fā)過程
Java 的開發(fā)總要經(jīng)過立項一設(shè)計一一編碼一一測試等諸多過程,下面先來介紹一下Java 開發(fā)中的這些開發(fā)經(jīng)驗。
1、立項
這個時候需要做的是需求的收集,開發(fā)人員需要重視需求。機會總是傾向有準(zhǔn)備的人,成功自然也是這樣。開發(fā)人員不但要做好需求分析,還要做出精確的估計。因為編碼工作保質(zhì)保量的按時完成需要多方的準(zhǔn)備工作,技術(shù)難點需要進行充分的技術(shù)預(yù)言,不熟悉的依賴平臺或類庫要進行熟悉。
2、設(shè)計
設(shè)計的時候要善用圖,因為通過圖可以將模塊結(jié)構(gòu)以及流程等很難用用文字描述的內(nèi)容清晰的表達出來。
此外,設(shè)計的時候要耐得住詳細設(shè)計過程中的繁瑣、痛苦,要以快樂的心態(tài)面對。
3、編碼
編碼工作需要保持細致、認真、嚴謹?shù)墓ぷ鞯墓ぷ鲬B(tài)度,做出的編碼不能倉促、草率,要考慮周到。在邏輯、風(fēng)格、簡單有效等方面拿出你的最好,既能更好為公司實現(xiàn)價值,同時更有利自己在技能,崗位的進步。
4、測試
編寫的代碼不能因為一時的疏漏而造成后期工作麻煩,開發(fā)人員都要將自己編寫的代碼詳細的測試一下,驗證無誤再提交,這樣才能成為一個優(yōu)秀的開發(fā)人員。
Java開發(fā)中遇到的難點匯總
1、Scanner對象
我們都知道使用”Scanner scanner=new Scanner(System.in);“來進行輸入,但如果我們只設(shè)置一個scanner對象,即用來輸入String型的數(shù)據(jù),又用來輸入int型的數(shù)據(jù)會怎樣呢?
答案是出錯!每一個Scanner對象只能用來輸入一種類型的數(shù)據(jù),想輸入String就創(chuàng)建一個 stringInput對象只用來輸入
String數(shù)據(jù)。絕對不可以在用來輸入其他數(shù)據(jù)!
我們也可以通過String name=new Scanner(System.in).next();的方法進行輸入,每要輸入一個數(shù)據(jù),就新建一個Scanner對象。
2、關(guān)于static
最基本的我們都知道static方法只能引用static型的數(shù)據(jù),而實例方法既能引用一般數(shù)據(jù),也能引用static數(shù)據(jù)。
下面兩個例子是我在編程中遇到的關(guān)于static問題。
例1:
我們要創(chuàng)建一個test類,可以時刻追蹤到test類創(chuàng)建了多少個對象。
class test{
int sum=0;
test(){ ++sum;System.out.ptintln(“test類共創(chuàng)建了”+sum+“個對象!”);}
}
在主類的方法中測試test test1=new test();test test1=new test();test test1=new test();
當(dāng)創(chuàng)建一個對象是都會輸出“test類共創(chuàng)建了1個對象!”這是為什么呢?
因為每次創(chuàng)建類時sum都會被初始化為0,即每次都會為sum重新開辟一個內(nèi)存空間,所以每次執(zhí)行都會輸出1.
解決方法:把sum設(shè)置為static型, static int sum=0;
這樣每次創(chuàng)建test對象時,sum的內(nèi)存被固定,可以正確記錄test創(chuàng)建了多少個對象!
例2:
我們定義一個A類,
A{
private static int sum=0;
public static void addAuto(){sum=sum+10;}
}
然后定義B和C類,B extends A{}, C extends A{}; B和C類和A相同。
這是我們用A的對象引用B C的對象(根據(jù)多態(tài)性): A a1=new B();A a2=new C();
a1.addAuto();System.out.println(a1.sum);//結(jié)果為10
a2.addAuto();System.out.println(a2.sum);//結(jié)果為20 ???
我們新建了兩個對象,a1和a2的結(jié)果應(yīng)該是相同的,為什么a2中的sum值會是20呢?
因為A中為static方法,我們創(chuàng)建的a1的內(nèi)存為10;在創(chuàng)建一個a2,此時a2的內(nèi)存是20,它繼承了a1,
所以會在a1的基礎(chǔ)上繼續(xù)+10.
3、關(guān)于JAVA類數(shù)組
對于一些類似于學(xué)生管理系統(tǒng)或者客戶管理系統(tǒng),可能需要我們設(shè)置一個數(shù)組,用來存一定數(shù)量的信息,
用來實現(xiàn)增刪改查。如一個student類,來創(chuàng)建一個學(xué)生類數(shù)組students[];
如果增添一個學(xué)生信息,我們是否可以直接利用下面的方法呢?
students[0].setName(new Scanner(System.in).next());//輸入一個學(xué)生的姓名
students[0].setId(new Scanner(System.in).nextInt());//學(xué)號
students[0].setScore(new Scanner(System.in).nextInt());//分數(shù)
答案是不能!對于students數(shù)組,我們只是聲明,并沒有為其分配內(nèi)存空間,所以類似于鏈表的節(jié)點,
我們需要創(chuàng)建一個中介student mid=new student();然后給mid進行上面的輸入操作,然后把mid賦給
students[0]。
4、《String.equals()》
對于兩個字符判斷是否相等,我們習(xí)慣用下面的方法:
這種方法是錯誤的,在我們運行程序過程中不難發(fā)現(xiàn)。在JAVA中判斷兩個字符串相等是不可以用==的方法。
而是通過if(str1.equals(str2))
我們常用的通過名字來進行查找,刪除,修改都會用到。
評論
查看更多