java編程可以自學(xué)嗎優(yōu)質(zhì)(5篇)

格式:DOC 上傳日期:2023-05-24 07:04:31
java編程可以自學(xué)嗎優(yōu)質(zhì)(5篇)
時間:2023-05-24 07:04:31     小編:cyyllee

在日常學(xué)習(xí)、工作或生活中,大家總少不了接觸作文或者范文吧,通過文章可以把我們那些零零散散的思想,聚集在一塊。大家想知道怎么樣才能寫一篇比較優(yōu)質(zhì)的范文嗎?以下是小編為大家收集的優(yōu)秀范文,歡迎大家分享閱讀。

java編程可以自學(xué)嗎篇一

class test {

static void main(string args []){

ee e = new employee(“bob”, 48);

atepay();

n(etails());

6.e = null;

7.e = new employee(“denise”, 36);

atepay();

n(etails());

10.}

11.}

only one:

class test {

static void main(string args []){

ee e = new employee(“bob”, 48);

atepay();

n(etails());

6.e = null;

7.e = new employee(“denise”, 36);

atepay();

n(etails());

10.}

11.}

only one:

10

11

7

8

2:exhibit :

class test(e static int j = 0;

e static boolean methodb(int k)(5.j += k;

true;

6.)

static void methoda(int i){

n b:

10.b = i < 10 | methodb(4);

11.b = i < 10 || methodb(8);

12.)

static void main(string args[] }(a(0);

n(j);

17.)

18.)

what is the result?

program prints “0”

program prints “4”

program prints “8”

program prints “12”

3:what is written to the standard output given the following statement:n(4|7);

select the right answer:

a.4

b.5

c.6

d.7

4:

select valid identifier of java:

select valid identifier of java:

a.%passwd

b.3d_game

c.$charge

5:設(shè)有變量說明語句int a=1,b=0;

則執(zhí)行以下程序段的輸出結(jié)果為()。

switch(a)

{

case 1:

switch(b)

{

case 0:printf(“**0**”);break;

case 1:printf(“**1**”);break;

}

case 2:printf(“**2**”);break;

}

printf(“ ”);

a.**0**

b.**0****2**

c.**0****1****2**

d.有語法錯誤

6:in the following pieces of code, which one will compile without any error?

buffer sb1 = “abcd”;

n b = new boolean(“abcd”);

c.c: byte b = 255;

fl = 1.2;

7:

what is the result when you compile and run the following code?

public class throwsdemo

{

static void throwmethod()

{

n(“inside throwmethod.”);

throw new illegalaccessexception(“demo”);

}

public static void main(string args[])

{

try

{

throwmethod();

}

catch(illegalaccessexception e)

{

n(“caught ” + e);

}

}

}

choices:

what is the result when you compile and run the following code?

public class throwsdemo

{

static void throwmethod()

{

n(“inside throwmethod.”);

throw new illegalaccessexception(“demo”);

}

public static void main(string args[])

{

try

{

throwmethod();

}

catch(illegalaccessexception e)

{

n(“caught ” + e);

}

}

}

choices:

ation error

e error

e successfully, nothing is ed by caught:laccessexcption: demo

8:which of the following statements are not legal?

l = 4990;

i = 4l;

d = 34.4;

t = 0.9f.9:

give the following java class:

public class example{

public static void main(string args[]){

static int x[] = new int[15];

n(x[5]);

}

}

which statement is corrected?

give the following java class:

public class example{

public static void main(string args[]){

static int x[] = new int[15];

n(x[5]);

}

}

which statement is corrected?

compile, some error will run, some error will is is null.10:下面關(guān)于變量及其范圍的陳述哪些是錯的。

a.實例變量是類的成員變量。

b.實例變量用關(guān)鍵字static聲明。

c.在方法中定義的局部變量在該方法被執(zhí)行時創(chuàng)建

d.局部變量在使用前必須被初始化。

11:

public class x{

public object m(){

object o = new float(3.14f);//line 3

object [] oa = new object[1];//line 4

oa[0] = o;//line 5

o=null;//line 6

return oa[0];//line 7

}

}

when is the float object, created in line 3,eligible for garbage collection?

public class x{

public object m(){

object o = new float(3.14f);//line 3

object [] oa = new object[1];//line 4

oa[0] = o;//line 5

o=null;//line 6

return oa[0];//line 7

}

}

when is the float object, created in line 3,eligible for garbage collection?

after line after line 6

after line 7(that is,as the method returns)

in this method

12:

which is the most appropriate code snippet that can be inserted at line 18 in the following code?

(assume that the code is compiled and run with assertions enabled)

.*;

class asserttest

4.{

e hashmap cctld;

asserttest()

8.{

= new hashmap();

(“in”, “india”);

(“uk”, “united kingdom”);

(“au”, “australia”);

13.// more code...14.}

15.// other methods.... string getcountry(string countrycode)

17.{

18.// what should be inserted here?

country =(string)(countrycode);

country;

21.}

22.}

which is the most appropriate code snippet that can be inserted at line 18 in the following code?

(assume that the code is compiled and run with assertions enabled)

.*;

class asserttest

4.{

e hashmap cctld;

asserttest()

8.{

= new hashmap();

(“in”, “india”);

(“uk”, “united kingdom”);

(“au”, “australia”);

13.// more code...14.}

15.// other methods.... string getcountry(string countrycode)

17.{

18.// what should be inserted here?

country =(string)(countrycode);

country;

21.}

22.}

countrycode!= null;

countrycode!= null : “country code can not be null”;

cctld!= null : “no country code data is available”;

cctld : “no country code data is available”;

13:

give the following code:

public class example{

public static void main(string args[]){

int l=0;

do{

n(“doing it for l is:”+l);

}while(—l>0)

n(“finish”);

}

}

which well be output:

give the following code:

public class example{

public static void main(string args[]){

int l=0;

do{

n(“doing it for l is:”+l);

}while(—l>0)

n(“finish”);

}

}

which well be output:

it for l is 3

it for l is 1

it for l is 2

it for l is 0

14:which statements about java code security are not true?

bytecode verifier loads all classes needed for the execution of a ing code is performed by the runtime runtime the bytecodes are loaded, checked and run in an interpreter. class loader adds security by separating the namespaces for the classes of the local file system from those imported from network sources.15:a class design requires that a member variable should be accessible only by same package, which modifer word should be used?

ted

modifer

e

16:character流與byte流的區(qū)別是

a.每次讀入的字節(jié)數(shù)不同

b.前者帶有緩沖,后者沒有

c.前者是塊讀寫,后者是字節(jié)讀寫

d.二者沒有區(qū)別,可以互換使用

簡答題

17:找出兩個字符串中最大子字符串,如“abractyeyt”,“dgdsaeactyey”的最大子串為“actyet”

18:假設(shè)你有一個用1001個整數(shù)組成的數(shù)組,這些整數(shù)是任意排列的,但是你知道所有的整數(shù)都在1到1000(包括1000)之間。此外,除一個數(shù)字出現(xiàn)兩次外,其他所有數(shù)字只出現(xiàn)一次。假設(shè)你只能對這個數(shù)組做一次處理,用一種算法找出重復(fù)的那個數(shù)字。如果你在運算中使用了輔助的存儲方式,那么你能找到不用這種方式的算法嗎?

19:到底在哪里使用cascade=“...”?

20:使用tomcat部署應(yīng)用程序 emoryerror 嗎?如何解決的。

21:請寫一個java程序?qū)崿F(xiàn)數(shù)據(jù)庫緩沖池的功能?

22:有200個正整數(shù),且每個數(shù)均在1000至9999之間。請編制函數(shù),其函數(shù)的功能是:要求按每個數(shù)的后三位的大小進行升序排列,然后取出滿足此條件的前10個數(shù)依次存入數(shù)組bb中,如果后三位的數(shù)值相等,則按原先的數(shù)值進行降序排列。

23:anonymous inner class(匿名內(nèi)部類)是否可以extends(繼承)其它類,是否可以implements(實現(xiàn))interface(接口)?

24:找出字符串a(chǎn)中包含的字符可以進行的所有不同組合。例如:abccd中,ab,ac,bc,cc,abd等都是可能的組合。

25:下面的代碼在絕大部分時間內(nèi)都運行得很正常,請問在什么情況下會出現(xiàn)問題?問題的根源在哪里?

import .linkedlist;

public class stack {

linkedlist list = new linkedlist();

public synchronized void push(object x){

synchronized(list){

t(x);

notify();

}

}

public synchronized object pop()

throws exception {

synchronized(list){

if(()<= 0){

wait();

}

return last();

}

}

}

java編程可以自學(xué)嗎篇二

學(xué)習(xí)java編程,就只能做java程序員嗎?

作為世界上使用最廣的語言之一,java 的擁躉和其他語言的粉絲常常在各大論壇掀起世界大戰(zhàn)。

java 說『write once,run anywhere』

但還有人說 『write once,debug anywhere』

有人說他語法簡單,功能強大。

可也有人說與許多新興語言相比,他有些細(xì)節(jié)上的不足。

所以,java 對你來說究竟是什么?

你可曾想過,學(xué)習(xí)java編程之后,你就只能做java程序員嗎?其實。。

學(xué)習(xí)java編程可以往很多方向發(fā)展

java的應(yīng)用非常廣,有erp等大型系統(tǒng)方面的,有web方面的,還有游戲方面的。作為小白,你需要從java初級學(xué),然后中級,之后你還需要再學(xué)習(xí)更多的技術(shù),這些技術(shù)不僅僅局限于java,如js和數(shù)據(jù)庫等,當(dāng)你對整套技術(shù)都非常精通時,你便是一個真正的高級工程師,而java則只是你所掌握的主要技術(shù)之一罷了。

做軟件測試是一個方向

不少人學(xué)到j(luò)ava se基礎(chǔ)階段,可能往軟件測試方向發(fā)展,這個時候參與具體的編碼工作不會那么多,主要要做的工作是對軟件產(chǎn)品的需求文檔、設(shè)計文檔等檢查是否有歧義,對軟件產(chǎn)品本身的功能、性能通過運用專業(yè)的軟件測試技術(shù)以及工作去發(fā)現(xiàn)軟件產(chǎn)品中隱藏的軟件問題。

轉(zhuǎn)android開發(fā)是一個方向

android是主流智能手機的操作系統(tǒng),java是一種開發(fā)語言,兩者沒有好壞優(yōu)劣之分,只是兩種職業(yè)崗位的選擇。學(xué)android從事移動互聯(lián)方向開發(fā),學(xué)java從事軟件、網(wǎng)站開發(fā)。而安卓上的應(yīng)用大多是java編寫的,所以學(xué)習(xí)了java編程,轉(zhuǎn)android開發(fā)也是可以的。

轉(zhuǎn)web前端開發(fā)、php開發(fā)、大數(shù)據(jù)。。

其實,java對你來說,不過是眾多戀人之一,作為初戀,她打開了你學(xué)習(xí)編程的大門。至于以后你是從事前端開發(fā),或php開發(fā),亦或android開發(fā),甚至搞大數(shù)據(jù)、數(shù)據(jù)庫,這些都是互不干擾的。

你的程序猿生涯,從踹開java大門開始 圍觀知了堂java大咖竹邇【提神的咖啡】

java編程可以自學(xué)嗎篇三

《java編程》

計算器

班級:****** 姓名:******

學(xué)號: ******* 指導(dǎo)老師:******

實驗名稱:java計算器

1實驗?zāi)康? java編程語言在編程方面的具體應(yīng)用,以及使用面向?qū)ο蠓椒?對小應(yīng)用程序進行需求分

析、概要設(shè)計、詳細(xì)設(shè)計,最后使用java編程實現(xiàn)的全過程。

2實驗意義:

在編程我們使用的java語言,是目前比較流行的編程語言。在當(dāng)今這個時代,java語言在編程方面的優(yōu)勢使得編程有了更好的選擇。java語言最大的特點是具有跨平臺性,使其不受平臺不同的影響,得到了廣泛的應(yīng)用。實訓(xùn)性質(zhì)

本課程是計算機信息管理專業(yè)的一門實踐性課程,是《java編程》課程的實踐性教學(xué)環(huán)節(jié)。實訓(xùn)目標(biāo)

⑴綜合應(yīng)用java程序設(shè)計的知識解決實際問題。

⑵學(xué)會在應(yīng)用程序的設(shè)計過程中,應(yīng)用面向?qū)ο蟮某绦蛟O(shè)計方法。⑶學(xué)會應(yīng)用jdbc創(chuàng)建數(shù)據(jù)庫應(yīng)用程序。

⑷學(xué)會開發(fā)基于swing的應(yīng)用程序及多文檔應(yīng)用程序的設(shè)計。實訓(xùn)任務(wù)

用java語言開發(fā)工具(例如jdk、jcreator、netbeans等)制作一個簡單的可運行的完整的應(yīng)用程序或小型系統(tǒng),并編制出各階段必要的文檔。

將創(chuàng)建一個計算器,可以進行常用的加減乘除算術(shù)運算。本實例的知識點有:窗口布局器gridlayout的應(yīng)用,對按鈕消息的監(jiān)聽和響應(yīng)。

6實訓(xùn)條件

<軟件:>windows xp,netbeans ide 6.52 7開發(fā)背景: java是由sun microsystems公司于1995年5月推出的java程序設(shè)計語言(以下簡稱java語言)和java平臺的總稱。java語言是一個支持網(wǎng)絡(luò)計算的面向?qū)ο蟪绦蛟O(shè)計語言。java語言吸收了smalltalk語言和c++語言的優(yōu)點,并增加了其它特性,如支持并發(fā)程序設(shè)計、網(wǎng)絡(luò)通信、和多媒體數(shù)據(jù)控制等。

8系統(tǒng)部分分析:

1)java語言是簡單的。java語言的語法與c語言和c++語言很接近,使得大多數(shù)程序員很容易學(xué)習(xí)和使用java。另一方面,java丟棄了c++ 中很少使用的、很難理解的、令人迷惑的那些特性,如操作符重載、多繼承、自動的強制類型轉(zhuǎn)換。

2)java語言是一個面向?qū)ο蟮?。java語言提供類、接口和繼承等原語,為了簡單起見,只支持類之間的單繼承,但支持接口之間的多繼承,并支持類與接口之間的實現(xiàn)機制(關(guān)鍵字為implements)。java語言全面支持動態(tài)綁定,而c++ 語言只對虛函數(shù)使用動態(tài)綁定

3)java語言是分布式的。java語言支持internet應(yīng)用的開發(fā),在基本的java應(yīng)用編程接口中有一個網(wǎng)絡(luò)應(yīng)用編程接口(),它提供了用于網(wǎng)絡(luò)應(yīng)用編程的類庫,包括url、urlconnection、socket、serversocket等。java的rmi(遠(yuǎn)程方法激活)機制也是開發(fā)分布式應(yīng)用的重要手段。

4)java語言是健壯的。java的強類型機制、異常處理、廢料的自動收集等是java程序健壯性的重要保證。對指針的丟棄是java的明智選擇。java的安全檢查機制使得java更具健壯性。

5)java語言是安全的。java通常被用在網(wǎng)絡(luò)環(huán)境中,為此,java提供了一個安全機制以防惡意代碼的攻擊。除了java語言具有的許多安全特性以外,java對通過網(wǎng)絡(luò)下載的類具有一個安全防范機制(類classloader),如分配不同的名字空間以防替代本地的同名類、字節(jié)代碼檢查,并提供安全管理機制.6)java語言是體系結(jié)構(gòu)中立的。java程序(后綴為java的文件)在java平臺上被編譯為體系結(jié)構(gòu)中立的字節(jié)碼格式(后綴為class的文件), 然后可以在實現(xiàn)這個java平臺的任何系統(tǒng)中運行。

7)java語言是可移植的。這種可移植性來源于體系結(jié)構(gòu)中立性,另外,java還嚴(yán)格規(guī)定了各個基本數(shù)據(jù)類型的長度。java系統(tǒng)本身也具有很強的可移植性,java編譯器是用java實現(xiàn)的.8)java語言是解釋型的。如前所述,java程序在java平臺上被編譯為字節(jié)碼格式,然后可以在實現(xiàn)這個java平臺的任何系統(tǒng)中運行。

9)java是高性能的。與那些解釋型的高級腳本語言相比,java的確是高性能的。事實上,java的運行速度隨著jit(just-in-time)編譯器技術(shù)的發(fā)展越來越接近于c++。

10)java語言是多線程的。在java語言中,線程是一種特殊的對象,它必須由thread類或其子(孫)類來創(chuàng)建。

11)java語言是動態(tài)的。java語言的設(shè)計目標(biāo)之一是適應(yīng)于動態(tài)變化的環(huán)境。

目錄

課程設(shè)計題目 ……………………………… p1

課程設(shè)計簡介 ……………………………… p2

課程設(shè)計源代碼…………………………… p5

課程設(shè)計運行結(jié)果 ……………………… p15 課程設(shè)計心得體會 ………………………

p16

package computerpad;import .*;import .event.*;import .*;import .*;import list;import format;public class computerpad extends frame implements actionlistener {

numberbutton numberbutton[];

operationbutton oprationbutton[];

button 小數(shù)點按鈕,正負(fù)號按鈕,退格按鈕,求倒數(shù)按鈕,等號按鈕,清零按鈕;

panel panel;

jtextfield resultshow;

string 運算符號[]={“+”,“-”,“*”,“/”};

linkedlist 鏈表;

boolean 是否按下等號=false;

public computerpad()

{

super(“計算器”);

鏈表=new linkedlist();

numberbutton=new numberbutton[10];

for(int i=0;i<=9;i++)

{

numberbutton[i]=new numberbutton(i);

numberbutton[i].addactionlistener(this);

}

oprationbutton=new operationbutton[4];

for(int i=0;i<4;i++)

{

oprationbutton[i]=new operationbutton(運算符號[i]);

oprationbutton[i].addactionlistener(this);

}

小數(shù)點按鈕=new button(“.”);

正負(fù)號按鈕

=new button(“+/-”);

等號按鈕=new button(“=”);

求倒數(shù)按鈕=new button(“1/x”);

退格按鈕=new button(“退格”);

清零按鈕=new button(“c”);

eground();

eground();

eground();

eground();

eground();

eground();

ionlistener(this);

ionlistener(this);

ionlistener(this);

ionlistener(this);

ionlistener(this);

ionlistener(this);

resultshow=new jtextfield(10);

izontalalignment();

eground();

t(new font(“timesroman”,,14));

der(new softbevelborder(d));

kground();

table(false);

panel=new panel();

out(new gridlayout(4,5));

(numberbutton[1]);

(numberbutton[2]);

(numberbutton[3]);

(oprationbutton[0]);

(清零按鈕);

(numberbutton[4]);

(numberbutton[5]);

(numberbutton[6]);

(oprationbutton[1]);

(退格按鈕);

(numberbutton[7]);

(numberbutton[8]);

(numberbutton[9]);

(oprationbutton[2]);

(求倒數(shù)按鈕);

(numberbutton[0]);

(正負(fù)號按鈕);

(小數(shù)點按鈕);

(oprationbutton[3]);

(等號按鈕);

add(panel,);

add(resultshow,);

addwindowlistener(new windowadapter()

{ public void windowclosing(windowevent e)

{

(0);

}

});

setvisible(true);

setbounds(100,50,240,180);

setresizable(false);

validate();

} public void actionperformed(actionevent e)

{

if(rce()instanceof numberbutton)

{

numberbutton b=(numberbutton)rce();

if(()==0)

{

int number=ber();

(“"+number);

t(”“+number);

是否按下等號=false;

}

else if(()==1&&是否按下等號==false)

{

int number=ber();

string num=(string)first();

string s=(”“+number);

(0,s);

t(s);

}

else if(()==1&&是否按下等號==true)

{

int number=ber();

first();

(”“+number);

是否按下等號=false;

t(”“+number);

}

else if(()==2)

{

int number=ber();

(”“+number);

t(”“+number);

}

else if(()==3)

{

int number=ber();

string num=(string)t();

string s=(”“+number);

(2,s);

t(s);

}

}

else if(rce()instanceof operationbutton)

{

operationbutton b=(operationbutton)rce();

if(()==1)

{

string fuhao=運算符號();

(fuhao);

}

else if(()==2)

{

string fuhao=運算符號();

(1,fuhao);

}

else if(()==3)

{

string fuhao=運算符號();

string number1=(string)first();

string number2=(string)t();

string 運算符號=(string)(1);

try

{

double n1=ouble(number1);

double n2=ouble(number2);

double n=0;

if((”+“))

{

n=n1+n2;

}

else if((”-“))

{

n=n1-n2;

}

else if((”*“))

{

n=n1*n2;

}

else if((”/“))

{

n=n1/n2;

}

();

(”“+n);

(fuhao);

t(”“+n);

}

catch(exception ee)

{

}

}

}

else if(rce()==等號按鈕)

{

是否按下等號=true;

if(()==1||()==2)

{

string num=(string)first();

t(”“+num);

}

else if(()==3)

{

string number1=(string)first();

string number2=(string)t();

string 運算符號=(string)(1);

try

{

double n1=ouble(number1);

double n2=ouble(number2);

double n=0;

if((”+“))

{

n=n1+n2;

}

else if((”-“))

{

n=n1-n2;

}

else if((”*“))

{

n=n1*n2;

}

else if((”/“))

{

n=n1/n2;

}

t(”“+n);

(0,”“+n);

last();

last();

}

catch(exception ee)

{

}

}

}

else if(rce()==小數(shù)點按鈕)

{

if(()==0)

{

是否按下等號=false;

}

else if(()==1)

{

string dot=el();

string num=(string)first();

string s=null;

if(f(dot)==-1)

{

s=(dot);

(0,s);

}

else

{

s=num;

}

(0,s);

t(s);

}

else if(()==3)

{

string dot=el();

string num=(string)t();

string s=null;

if(f(dot)==-1)

{

s=(dot);

(2,s);

}

else

{

s=num;

}

t(s);

}

}

else if(rce()==退格按鈕)

{

if(()==1)

{

string num=(string)first();

if(()>=1)

{

num=ing(0,()-1);

(0,num);

t(num);

}

else

{

last();

t(”0“);

}

}

else if(()==3)

{

string num=(string)t();

if(()>=1)

{ num=ing(0,()-1);

(2,num);

t(num);

}

else

{

last();

t(”0“);

}

}

}

else if(rce()==正負(fù)號按鈕)

{

if(()==1)

{

string number1=(string)first();

try

{

double d=ouble(number1);

d=-1*d;

string str=f(d);

(0,str);

t(str);

}

catch(exception ee)

{

}

}

else if(()==3)

{

string number2=(string)t();

try

{

double d=ouble(number2);

d=-1*d;

string str=f(d);

(2,str);

t(str);

}

catch(exception ee){

}

}

}

else if(rce()==求倒數(shù)按鈕)

{

if(()==1||()==2)

{

string number1=(string)first();

try

{

double d=ouble(number1);

d=1.0/d;

string str=f(d);

(0,str);

t(str);

}

catch(exception ee){

}

}

else if(()==3)

{

string number2=(string)t();

try

{

double d=ouble(number2);

d=1.0/d;

string str=f(d);

(0,str);

t(str);

}

catch(exception ee){

}

}

}

else if(rce()==清零按鈕)

{

是否按下等號=false;

t(”0“);

();

}

} public static void main(string args[])

{

new computerpad();

}

}

package computerpad;import .*;import .event.*;import .*;public class numberbutton extends button {

int number;

public numberbutton(int number)

{

super(”"+number);

=number;

setforeground();

}

public int getnumber()

{

return number;

} }

import .*;import .event.*;import .*;public class operationbutton extends button {

string 運算符號;

public operationbutton(string s)

{

super(s);

運算符號=s;

setforeground();

}

public string get運算符號()

{

return 運算符號;

} } 14 java實訓(xùn)心得:

未接觸java之前,聽人說java這門語言如何的強大和難以入門,但學(xué)習(xí)之后,給我的感覺卻是語言沒有所謂的難于不難,關(guān)鍵是自己有沒有真正投入去學(xué),有沒有花時間去學(xué)。java是一門很好的語言,經(jīng)過周圍人對java的宣傳,我一開始不敢去學(xué)習(xí)這門語言,因為一門高級語言總是讓人想到一開始的學(xué)習(xí)會很難,但是后來在自己的努力和老師同學(xué)的幫助下,我加入了java學(xué)習(xí)者的行列。

老師把我們帶進了門,那么,以后漫長的深入學(xué)習(xí)還是要靠自己。經(jīng)常性的編寫一些程序,或則去看懂、研究透別人編寫的程序?qū)τ谖覀兇蚝没A(chǔ)是非常有利的。讓我們懷著對java的一腔熱情,用自己的刻苦努力去把java學(xué)好。將來,用自己的成績?nèi)セ貓笥卸饔谖覀兊纳鐣⒓胰撕团笥选?/p>

java編程可以自學(xué)嗎篇四

如何迅速成為java高手[tomjava原創(chuàng)]

很多網(wǎng)友問我學(xué)習(xí)java有沒有什么捷徑,我說“無他,唯手熟爾”。但是我卻很愿意將自己學(xué)習(xí)的一些經(jīng)驗寫出來,以便后來者少走彎路,幫助別人是最大的快樂嘛!

要想學(xué)好java,首先要知道java的大致分類。我們知道,自從sun推出java以來,就力圖使之無所不包,所以java發(fā)展到現(xiàn)在,按應(yīng)用來分主要分為三大塊:j2se,j2me和j2ee,這也就是sun one(open net environment)體系。j2se就是java2的標(biāo)準(zhǔn)版,主要用于桌面應(yīng)用軟件的編程;j2me主要應(yīng)用于嵌入是系統(tǒng)開發(fā),如手機和pda的編程;j2ee是java2的企業(yè)版,主要用于分布式的網(wǎng)絡(luò)程序的開發(fā),如電子商務(wù)網(wǎng)站和erp系統(tǒng)。j2se開發(fā)桌面應(yīng)用軟件比起vc,vb,dephi這些傳統(tǒng)開發(fā)語言來說,優(yōu)勢好象并不明顯。j2me對于初學(xué)者來說,好象又有點深奧,而且一般開發(fā)者很難有開發(fā)環(huán)境。所以現(xiàn)在應(yīng)用最廣泛又最好學(xué)的就是j2ee了。j2ee又包括許多組件,如jsp,servlet,javabean,ejb,jdbc,javamail等。要學(xué)習(xí)起來可不是一兩天的事。

那么又該如何學(xué)習(xí)j2ee呢?當(dāng)然java語法得先看一看的,i/o包,util包,lang包你都熟悉了嗎?然后再從jsp學(xué)起。如果你學(xué)過html,那么事情要好辦的多,如果沒有,那你快去補一補html基礎(chǔ)吧。其實jsp中的java語法也不多,它更象一個腳本語言,有點象asp。然后你就該學(xué)一學(xué)servlet了。servlet就是服務(wù)器端小程序,他負(fù)責(zé)生成發(fā)送給客戶端的html文件。jsp在執(zhí)行時,也是先轉(zhuǎn)換成servlet再運行的。雖說jsp理論上可以完全取代servlet,這也是sun推出jsp的本意,可是servlet用來控制流程跳轉(zhuǎn)還是挺方便的,也令程序更清晰。接下來你應(yīng)該學(xué)習(xí)一下javabean了,可能你早就看不管jsp在html中嵌java代碼的混亂方式了,這種方式跟asp又有什么區(qū)別呢?還好,sun提供了javabean可以把你的jsp中的java代碼封裝起來,便于調(diào)用也便于重用。接著就是ejb了,ejb就是enterprise javabean,看名字好象它是javabean,可是它和javabean還是有區(qū)別的。它是一個體系結(jié)構(gòu),你可以搭建更安全、更穩(wěn)定的企業(yè)應(yīng)用。它的大量代碼已由中間件(也就是我們常聽到的weblogic,websphere這些j2ee服務(wù)器)完成了,所以我們要做的程序代碼量很少,大部分工作都在設(shè)計和配置中間件上。至于jdbc,就不用我多說了,你如果用java編過存取數(shù)據(jù)庫的程序,就應(yīng)該很熟悉。還有,如果你要用java編發(fā)送電子郵件的程序,你就得看看javamail了。

好了,對java和j2ee有了一些基本概念之后,你就應(yīng)該編一些程序了,千萬不要紙上談兵哦。最好找一些有實例且?guī)Ч獗P的書來看,這樣看到好的程序就可以直接ctrl+c再ctrl+v,也不用勞您老大架再親自把它再輸一遍吧,再說直接復(fù)制還不用怕出錯,何樂而不為呢!還有就是要經(jīng)常上一些好的java編程文章,有好的文章要cut下來,有問題盡管問,只要問題不是太傻,一般高手都會回答你的。下面介紹幾個好的java方面的編程網(wǎng)站:

csdn論壇 http:///那里java資料比較全;

://.cn/看這域名就知道有多牛,注冊用戶快接近一萬了,同時在線人數(shù)也在一千左右,人氣很旺的;

ibm的開發(fā)者網(wǎng)絡(luò)http://ibm永遠(yuǎn)的藍色巨人;

那么我書也看了,程序也做了,別人問我的問題我都能解決了,是不是就成為高手了呢?當(dāng)然沒那么簡單,這只是萬里長征走完了第一步。不信?那你出去接一個項目,你知道怎么下手嗎,你知道怎么設(shè)計嗎,你知道怎么組織人員進行開發(fā)嗎?你現(xiàn)在腦子里除了一些散亂的代碼之外,可能再沒有別的東西了吧!你現(xiàn)在最缺的是實際的工作經(jīng)驗,而不是書本上那些

憑空想出來的程序。所以你快去找一份java的編程工作來做吧(如果是在校學(xué)生可以去做兼職啊),在實踐中提高自己,那才是最快的。不過你得祈禱在公司里碰到一個高手,而且他還愿意不厭其煩地教你,這樣好象有點難哦!

還有一個辦法就是讀開放源碼的程序了。我們知道開放源碼大都出自高手,他們設(shè)計合理,考慮周到,再加上有廣大的程序員參與,代碼的價值自然是字字珠嘰,鏗鏘有力(對不起,偶最近《金裝四大才子》看多了)。學(xué)java必讀的兩個開源程序就是jive和pet store.。jive是國外一個非常著名的bbs程序,完全開放源碼。論壇的設(shè)計采用了很多先進的技術(shù),如cache、用戶認(rèn)證、filter、xml等,而且論壇完全屏蔽了對數(shù)據(jù)庫的訪問,可以很輕易的在不同數(shù)據(jù)庫中移植。論壇還有方便的安裝和管理程序,這是我們平時編程時容易忽略的一部份(中國程序員一般只注重編程的技術(shù)含量,卻完全不考慮用戶的感受,這就是我們與國外軟件的差距所在)。jive的資料在很多網(wǎng)站上都有,大家可以找來研究一下。相信你讀完代碼后,會有脫胎換骨的感覺。遺憾的是jive從2.5以后就不再無條件的開放源代碼,同時有l(wèi)icence限制。不過幸好還有中國一流的java程序員關(guān)注它,外國人不開源了,中國人就不能開源嗎?這里向大家推薦一個漢化的jive版本—j道。jive(j道版)是由中國java界大名鼎鼎的banq在jive 2.1版本基礎(chǔ)上改編而成, 全中文,增加了一些實用功能,如貼圖,用戶頭像和用戶資料查詢等,而且有一個開發(fā)團隊在不斷升級。你可以訪問banq的網(wǎng)站http:///去下載,或到同濟技術(shù)論壇的服務(wù)器上ftp://去下,安裝上有什么問題,可以到論壇上去提問。pet store.(寵物店)是sun公司為了演示其j2ee編程規(guī)范而推出的開放源碼的程序,應(yīng)該很具有權(quán)威性,想學(xué)j2ee和ejb的朋友不要錯過了。

你一定會高興地說,哈哈,原來成為java高手就這么簡單啊!記得tomjava也曾碰到過一個項目經(jīng)理,號稱java很簡單,只要三個月就可以學(xué)會。其實說這種話的人就如當(dāng)年小日本號稱“三個月拿下中國”一樣大言不慚。不是tomjava潑你冷水,你現(xiàn)在只是學(xué)到了java的骨架,卻還沒有學(xué)到j(luò)ava的精髓。接下來你得研究設(shè)計模式了。設(shè)計模式是高級程序員真正掌握面向?qū)ο蠛诵乃枷氲谋匦拚n。設(shè)計模式并不是一種具體“技術(shù)”,它講述的是思想,它不僅僅展示了接口或抽象類在實際案例中的靈活應(yīng)用和智慧,讓你能夠真正掌握接口或抽象類的應(yīng)用,從而在原來的java語言基礎(chǔ)上躍進一步,更重要的是,設(shè)計模式反復(fù)向你強調(diào)一個宗旨:要讓你的程序盡可能的可重用。關(guān)于設(shè)計模式的資料,還是向大家推薦banq的網(wǎng)站http:///,他把gof的23種模式以通俗易懂的方式詮釋出來,純java描述,真是經(jīng)典中的經(jīng)典。有時間再研究一下mvc結(jié)構(gòu)(把model-view-control分離開的設(shè)計思想)吧,現(xiàn)在很流行的structs就是它的一種實現(xiàn)方式,不過structs用起來實在是很繁,我們只要學(xué)習(xí)其精髓即可,我們完全可以設(shè)計自己的mvc結(jié)構(gòu)。然后你再研究一下軟件refactoring(重整)和極限xp編程,相信你又會上一個臺階。

做完這些,你不如整理一下你的java代碼,把那些經(jīng)典的程序和常見的應(yīng)用整理出來,再精心打造一番,提高其重用性和可擴展性。你再找?guī)讉€志同道合的朋友成立一個工作室吧,你可以去承接一些項目做了,一開始可能有些困難,可是你有技術(shù)積累,又考慮周全,接下項目來可以迅速作完,相信大家以后都會來找你的,所以money就嘩啦啦的來了。。。當(dāng)然你也可以參加一些開源項目,一方面可以提高自己,另一方面也是為中國軟件事業(yè)做貢獻嘛!開發(fā)者在互聯(lián)網(wǎng)上用cvs合作開發(fā),用qq,msn,e-mail討論聯(lián)系,天南海北的程序員分散在各地卻同時開發(fā)同一個軟件,是不是很有意思呢?

下面介紹兩個好的開源項目網(wǎng)站:

湖北省軟件公共開發(fā)平臺http:///

共創(chuàng)聯(lián)盟http:///

哇,好高興哦,我終于成為高手了!非也,非也。古人云:“識時務(wù)者為俊杰”。你知道計算

機界現(xiàn)在的發(fā)展形勢嗎?藍圖和sun one計劃之間的明爭暗斗嗎?你知道計算機技術(shù)將向何處發(fā)展嗎?其實從各大計算機廠商最近的動作,都可以看出來“web服務(wù)將是下一代互聯(lián)網(wǎng)應(yīng)用的制高點”,藍圖和sun one計劃的斗爭焦點,也就是web服務(wù)。web服務(wù)就是一個嶄新的分布式計算模型,它是一系列標(biāo)準(zhǔn)的綜合(xml,soap,uddi,wsdl和wsfl等)。它使得不同語言編寫的軟件能夠輕易的集成起來,使網(wǎng)絡(luò)資源和web站點變成一種服務(wù)而不是混亂的垃圾場。不遠(yuǎn)的將來,我們就可以在家里點擊一下鼠標(biāo),就可以完成出門旅游的全部準(zhǔn)備工作,包括定飛機票,定旅游線路,定好房間等。請注意,這所有的一切都是web站點間自動完成的,再也不用象現(xiàn)在一樣,表面上是電子商務(wù),實際上很多環(huán)節(jié)都是人工操作。也許你會覺得這是天方夜談,不過就近的說,你也很有可能承接一個項目,要集成兩個企業(yè)的erp系統(tǒng)。很有可能上游企業(yè)的系統(tǒng)是用dephi編的,而下游企業(yè)的系統(tǒng)是用java編的。你說你是java高手,大家都看者你怎么做呢。所以啊,你還得學(xué)習(xí)新技術(shù),如web服務(wù),而且你dephi也要懂一點吧(dephi6現(xiàn)在已經(jīng)提供web服務(wù)的控件了)。你編的java系統(tǒng),集成,要懂一點吧?到最后,你可能發(fā)現(xiàn)你已經(jīng)成為java高手了,但很多時間卻在搞別的技術(shù)。太極張三豐里說,最厲害的招式就是沒有招式,可能就是這個道理吧!

因為剛剛興起,所以網(wǎng)上web服務(wù)的資料不是很多,我還是給大家推薦幾個網(wǎng)站吧: 中國uddi技術(shù)聯(lián)盟http:///developerworks/cn/xml/?csdnibm可是web服務(wù)的力推者

嗚?你費勁千心萬苦,總算成為java高手了,怎叫人不由喜極而泣呢!是啊,真不容易,真不簡單,真叫人感動??!那么打個電話告訴我吧,什么?我的電話號碼是多少?昏到,你打電話問不就知道了嗎,真是的??

java編程可以自學(xué)嗎篇五

1.第一階段 掌握要點:java語基礎(chǔ)知識。包括異常、io流、多線程、集合類、數(shù)據(jù)庫。

(切記基礎(chǔ)知識一定要時時刻刻鞏固)eg:java編程思想、java2 核心技術(shù)

2.第二階段掌握要點:tomcat,毋庸置疑,tomcat為學(xué)習(xí)web服務(wù)首選。而應(yīng)用服務(wù)器

目前主要有:jboss , ere.而tomcat和jboss是首選。

3.第三階段掌握要點:java網(wǎng)絡(luò)編程。包括:socketrmlhtmljspjavabean

servlet.開發(fā)工具:myeclipsedreamweaver順序:

1、學(xué)習(xí)web 知識:htmldreamwavejavascript2、先學(xué)習(xí)jsp設(shè)計、javaservlet編程

3、學(xué)習(xí)jdbc數(shù)據(jù)庫編程

4、學(xué)習(xí),他和學(xué)習(xí)ejb可以結(jié)合起來《《精通ejb》》學(xué)習(xí)ejb設(shè)計模式和看代碼(最重要)《jsp2.0 技術(shù)手冊》 在jsp上不要花太多時間,在時間放在servlet多一些

4.第四階段 掌握要點:流行mvc 架構(gòu)和java對象持久化技術(shù)。包括struts

springhibernate jsf.學(xué)習(xí)過程:先學(xué)struts,再學(xué)習(xí)hibernate,最后學(xué)習(xí)spring

【本文地址:http://mlvmservice.com/zuowen/2997339.html】

全文閱讀已結(jié)束,如果需要下載本文請點擊

下載此文檔