java學習一:幾個初學的例子

                                                              java學習一


流火的時節,北方金城當然也是爆熱的 ,好在這幾天下了幾場雨,頓感涼快
了許多,早上起來,不遠處山間起了霧氣,空氣也是人特喜歡那種,好久沒有這種感覺了

天氣好,精神也好了許多,就把這幾天學習java做一個小結。


1、 JDK的下載和安裝
JDK又叫做J2SE(Java2 SDK Standard Edition),可以從Sun的Java網站上下載到,在
C:/j2sdk1.4.2下安裝一套JDK。然後我們需要在環境變量PATH的最前面增加java的路徑
C:/j2sdk1.4.2/bin。這樣JDK就安裝好了。

2、 JDK的命令工具
JDK的最重要命令行工具:
java: 啓動JVM執行class
javac: Java編譯器
jar: Java打包工具
javadoc: Java文檔生成器
appletviewer:applet小程序查看器。


這些命令行必須要非常非常熟悉,對於每個參數都要很精通才行。對於這些命令的學習,
JDK Documentation上有詳細的文檔。

二、 JDK Documentation

Documentation在JDK的下載頁面也有下載連接,建議同時下載Documentation。
Documentation是最最重要的編程手冊,涵蓋了整個Java所有方面的內容的描述。可以這樣
說,學習Java編程,大部分時間都是花在看這個Documentation上面的。沒有中文版的也就
罷了,偏偏有日文版的,別的我什麼都不說了,下個英文版吧,沒得選擇了。我在sun的網
站上下的,40多K,一會就下完了,要是ADSL會更快一些。


三。幾個例子
關於如何編譯,運行我就不說了吧。簡單。
1)HelloWorld

public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World");
}
}

2)簡單字符串

class Str
{
public static void main(String[] args)
{
int x=0,y=1,z=2;
String string="x,y,z";
System.out.println(string+x+y+z);
System.out.println(y+z+string);
}
}


//java中對輸出基本上都有+法運算。而且各種對象都能用System.out.println(),




3)精神病醫生:你和該醫生對話,你一句,他回答一句。我並沒有實現AI,只是演示如何
寫java程序。

import java.io.*;
public class Doctor
{
public static void main(String [] args) throws IOException
{
Doctor dr=new Doctor();
dr.talk(System.in,System.out);//System 類中in爲InputStream,out 爲
OutStream類型
}
void talk(InputStream in,OutputStream out) throws IOException
{
BufferedReader rd=new BufferedReader(
new InputStreamReader(in));
PrintWriter pw=new PrintWriter(
new OutputStreamWriter(out),true);
pw.println("Hello,I am a Robot-Doctor,I know many things,what are
you want to know?");
while(true)
{
String question=rd.readLine();
reply(pw,question);

}

}
void reply(PrintWriter pw,String question) throws IOException
{


if(0==question.compareTo("I love you,Miss Ma!"))
pw.println("I love you,too");
else if(question.compareTo("Who are you?")==0)
pw.println("I am Dactor Ma!");
else if(0==question.compareTo("1+1="))
pw.println("haha ,I know,It's 2!");
else pw.println("I am sorry!I don't know what You said!
"+question+" what's it meas!!! mm mm...");



}
}
4)多線程例子,本例中有兩個線程,主線程和t1線程。實現Runnable接口。

public class SimpleRunnable implements Runnable
{
private String message;
public static void main(String[] args)
{
SimpleRunnable r1=new SimpleRunnable("Hello");
Thread t1=new Thread(r1);
t1.start();
for(;;)
{
System.out.println("Bye-bye");
}
}
public SimpleRunnable(String message)
{
this.message=message;
}
public void run() //覆蓋接口的方法
{
for(;;)
{
System.out.println(message);
}
}
}
輸出結果如下:Hello,Bye-bye不斷交替,是個死循環,按Ctrl+ C結束運行。


Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Bye-bye
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello

5)文件IO操作:本例可以用來打開文本文件,運行時輸入:java FileIO filename


import java.io.*;
public class FileIO
{
public static void main(String[] args) throws Exception
{
if(args.length!=1)
{
System.out.println("Invalid parameters!!!");
System.exit(0);
}
File fl = new File(args[0]);
FileReader fileReader = new FileReader(fl);
BufferedReader bufferedReader = new BufferedReader(fileReader);
String currentLine;
while( (currentLine = bufferedReader.readLine()) != null )
{
System.out.println(currentLine);
}
}
}


6)網絡編程:本例實現如何查看一個域名的IP地址。
運行時輸入:java WhoAmI 域名 (不知道這個詞用得對不對)
   例:1 輸入java WhoAmI qihl
輸出爲:219.246.84.55 (注:qihl是我的計算機名,IP是我的IP)
2 輸入java WhoAmI www.yahoo.com
輸出爲:www.yahoo.com/68.142.197.66

import java.net.*;
public class WhoAmI
{
public static void main(String[] args) throws Exception
{
if(args.length!=1)
{
System.err.println("Usage:WhoAmI MachineName");
System.exit(1);
}
InetAddress a=InetAddress.getByName(args[0]);
System.out.println(a);
}
}

7)Applet編程:本例實現一個簡單的畫板,注意它可在IE中運行,畫圖。
先編譯通過,然後將Paint.class 和Paint.html 放在同一個目錄下。然後用IE打開
Paint.html ,即可實現畫圖,速度很慢,要有點耐心纔行啊,不過大家都還年輕,有的是
時間。

也可以用jdk的工具appletviewer:即在命令窗口下輸入:appletviewer Paint.java 即
可看到運行結果。

//html文件如下:


<html><title>畫筆</title>
<body>hao
<applet code="Paint.class" width=200 height=200></applet>
</body>
</html>



//一下是Paint.java
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
public class Paint extends Applet
{
Vector v = new Vector();
public void paint(Graphics g)
{

int [] x,y;
x=new int[v.size()];
y=new int[v.size()];
for(int i=0;i<v.size();++i)
{
Point p=(Point)v.get(i);
x[i]=p.x;
y[i]=p.y;

}
g.drawPolyline( x,y, v.size());

}
public void init()
{
addMouseMotionListener(
new MouseMotionAdapter()
{
public void mouseDragged(MouseEvent e)
{
Point
p=e.getPoint();

v.add(p);

System.out.println(p);

System.out.println(v.size());
repaint();
}
});
}

}
//<applet code="Paint.class" width=200 height=200></applet>


四。一點感想


以前一直用c---c++---vc,這幾天學習java以後覺得java裏面好多東西都比vc下
要來得簡單。不過速度方面可能要稍遜一點。vc功能之強大是有目共睹的。然java在很多
方面更顯優勢,比如網絡編程,數據庫編程等等,還是那幾句話:

-----“捉的住老鼠就是好貓”( 小平的觀點,無論它的名字叫java還是c++)

-----“編程貴在思想,語言只是工具” (大家的觀點,特別是高手)

-----“沒有做不到,只有想不到”(我個人的目標,有些時候真的覺得技術已經掌握,可
就是想不到很多東西)



五)感慨之後,還是繼續hard hard study,但願能day day up!


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章