什么是JAVA?
成都創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供杞縣網(wǎng)站建設(shè)、杞縣做網(wǎng)站、杞縣網(wǎng)站設(shè)計(jì)、杞縣網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、杞縣企業(yè)網(wǎng)站模板建站服務(wù),十年杞縣做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
提問者: nan7913 - 見習(xí)魔法師 二級(jí)
----------------------------
Java是SUN公司開發(fā)的一種面向?qū)ο蟮男乱淮W(wǎng)絡(luò)編程語(yǔ)言,它可以在各種不同的機(jī)器、操作系統(tǒng)的網(wǎng)絡(luò)環(huán)境中進(jìn)行開發(fā),具有解釋型語(yǔ)言(如Basic語(yǔ)言)和編譯型語(yǔ)言(如C語(yǔ)言)的特性。Java摒棄了C 中各種弊大于利的功能和許多很少用到的功能,用Java開發(fā)的程序可以在網(wǎng)絡(luò)上傳輸,并運(yùn)行于任何客戶機(jī)上。
特點(diǎn)
1、簡(jiǎn)單性:
Java語(yǔ)言通過(guò)提供最基本的方法來(lái)完成指定的任務(wù),只需理解一些基本的概念,就可以用它編寫出適合于各種情況的應(yīng)用程序。Java略去了運(yùn)算符重載、多重繼承等模糊的概念,并且通過(guò)實(shí)現(xiàn)自動(dòng)垃圾收集大大簡(jiǎn)化了程序設(shè)計(jì)者的內(nèi)存管理工作。另外,Java也適合于在小型機(jī)上運(yùn)行,它的基本解釋器及類的支持只有40KB左右,加上標(biāo)準(zhǔn)類庫(kù)和線程的支持也只有215KB左右。庫(kù)和線程的支持大概有215KB左右。
2、面向?qū)ο螅?/p>
Java語(yǔ)言的設(shè)計(jì)集中于對(duì)象及其接口,它提供了簡(jiǎn)單的類機(jī)制以及動(dòng)態(tài)的接口模型。對(duì)象中封裝了它的狀態(tài)變量以及相應(yīng)的方法,實(shí)現(xiàn)了模塊化和信息隱藏;而類則提供了一類對(duì)象的原型,并且通過(guò)繼承機(jī)制,子類可以使用父類所提供的方法,實(shí)現(xiàn)了代碼的復(fù)用。
3、分布性:
Java是面向網(wǎng)絡(luò)的語(yǔ)言。通過(guò)它提供的類庫(kù)可以處理TCP/IP協(xié)議,用戶可以通過(guò)URL地址在網(wǎng)絡(luò)上很方便地訪問其它對(duì)象。
4、可靠性:
Java在編譯和運(yùn)行程序時(shí),都要對(duì)可能出現(xiàn)的問題進(jìn)行檢查,以消除錯(cuò)誤的產(chǎn)生。它提供自動(dòng)垃圾收集來(lái)進(jìn)行內(nèi)存管理,防止程序員在管理內(nèi)存時(shí)容易產(chǎn)生的錯(cuò)誤。通過(guò)集成的面向?qū)ο蟮睦馓幚頇C(jī)制,在編譯時(shí),Java提示出可能出現(xiàn)但未被處理的例外,幫助程序員正確地進(jìn)行選擇以防止系統(tǒng)的崩潰。另外,Java在編譯時(shí)還可捕獲類型聲明中的許多常見錯(cuò)誤,防止動(dòng)態(tài)運(yùn)行時(shí)不匹配問題的出現(xiàn)。
5、安全性:
用于網(wǎng)絡(luò)、分布環(huán)境下的Java必須要防止病毒的入侵。Java不支持指針, 一切對(duì)內(nèi)存的訪問都必須通過(guò)對(duì)象的實(shí)例變量來(lái)實(shí)現(xiàn),這樣就防止程序員使用“特洛伊”木馬等欺騙手段訪問對(duì)象的私有成員,同時(shí)也避免了指針操作中容易產(chǎn)生的錯(cuò)誤。
6、體系結(jié)構(gòu)中立:
Java解釋器生成與體系結(jié)構(gòu)無(wú)關(guān)的字節(jié)碼指令,只要安裝Java運(yùn)行系統(tǒng),Java程序就可在任意的處理器上運(yùn)行。這些字節(jié)碼指令對(duì)應(yīng)于Java虛擬機(jī)中的表示,Java解釋器得到字節(jié)碼后,對(duì)它進(jìn)行轉(zhuǎn)換,使之能夠在不同的平臺(tái)運(yùn)行。
7、可移植性:
與平臺(tái)無(wú)關(guān)的特性使Java程序可以方便地被移植到網(wǎng)絡(luò)上的不同機(jī)器。同時(shí),Java的類庫(kù)中也實(shí)現(xiàn)了與不同平臺(tái)的接口,使這些類庫(kù)可以移植。另外,Java編譯器是由Java語(yǔ)言實(shí)現(xiàn)的,Java運(yùn)行時(shí)系統(tǒng)由標(biāo)準(zhǔn)C實(shí)現(xiàn),這使得Java 系統(tǒng)本身也具有可移植性。
8、解釋執(zhí)行:
Java解釋器直接對(duì)Java字節(jié)碼進(jìn)行解釋執(zhí)行。字節(jié)碼本身攜帶了許多編譯時(shí)信息,使得連接過(guò)程更加簡(jiǎn)單。
9、高性能:
和其它解釋執(zhí)行的語(yǔ)言如BASIC、TCL不同,Java字節(jié)碼的設(shè)計(jì)使之能很容易地直接轉(zhuǎn)換成對(duì)應(yīng)于特定CPU的機(jī)器碼,從而得到較高的性能。
10、多線程:
多線程機(jī)制使應(yīng)用程序能夠并行執(zhí)行,而且同步機(jī)制保證了對(duì)共享數(shù)據(jù)的正確操作。通過(guò)使用多線程,程序設(shè)計(jì)者可以分別用不同的線程完成特定的行為,而不需要采用全局的事件循環(huán)機(jī)制,這樣就很容易地實(shí)現(xiàn)網(wǎng)絡(luò)上的實(shí)時(shí)交互行為。
11、動(dòng)態(tài)性:
Java的設(shè)計(jì)使它適合于一個(gè)不斷發(fā)展的環(huán)境。在類庫(kù)中可以自由地加入新的方法和實(shí)例變量而不會(huì)影響用戶程序的執(zhí)行。并且Java通過(guò)接口來(lái)支持多重繼承,使之比嚴(yán)格的類繼承具有更靈活的方式和擴(kuò)展性。
Java語(yǔ)言的特性使它可以最大限度地利用網(wǎng)絡(luò)。Ap-plet是Java的小應(yīng)用程序,它是動(dòng)態(tài)、安全、跨平臺(tái)的網(wǎng)絡(luò)應(yīng)用程序。JavaApplet嵌入HTML語(yǔ)言,通過(guò)主頁(yè)發(fā)布到Internet。網(wǎng)絡(luò)用戶訪問服務(wù)器的Applet時(shí),這些Applet 從網(wǎng)絡(luò)上進(jìn)行傳輸,然后在支持Java的瀏覽器中運(yùn)行。由于Java語(yǔ)言的安全機(jī)制,用戶一旦載入Applet,就可以放心地來(lái)生成多媒體的用戶界面或完成復(fù)雜的計(jì)算而不必?fù)?dān)心病毒的入侵。雖然Applet可以和圖像、聲音、動(dòng)畫等一樣從網(wǎng)絡(luò)上下載,但它并不同于這些多媒體的文件格式,它可以接收用戶的輸入,動(dòng)態(tài)地進(jìn)行改變,而不僅僅是動(dòng)畫的顯示和聲音的播放。
Java的開發(fā)工具。
1、 UltraEdit
UltraEdit是共享軟件,最新版本是V10.20b。其官方網(wǎng)址是:[url][/url] 。它是一個(gè)功能強(qiáng)大的文本、HTML、程序源代碼編輯器。作為源代碼編輯器,它的默認(rèn)配置可以對(duì)C/C , VB, HTML, Java和 Perl進(jìn)行語(yǔ)法著色。用它設(shè)計(jì)Java程序時(shí),可以對(duì)Java的關(guān)鍵詞進(jìn)行識(shí)別并著色,方便了Java程序設(shè)計(jì)。它具有完備的復(fù)制、粘貼、剪切、查找、替換、格式控制等編輯功能。可以在Advanced菜單的Tool Configuration 菜單項(xiàng)配置好Java的編譯器Javac和解釋器Java,直接編譯運(yùn)行Java程序。
配置Javac:在Command Line里輸入:D:jspj2sdkinJavac %f,這里Javac的路徑要根據(jù)JDK的實(shí)際安裝路徑來(lái)指定,%f是指當(dāng)前活動(dòng)文檔的全文件名。在Menu Item Name 里輸入Javac ,讓其顯示在Advanced菜單里,這樣就可以直接執(zhí)行它進(jìn)行編譯了。選中Output To List Box和Capture Output ,這樣就可以在源代碼下面的輸出窗口里看到編譯時(shí)的錯(cuò)誤信息了。
配置不帶參數(shù)運(yùn)行的解釋器Java:在Command Line里輸入:D:jspj2sdkinJava %n,在Menu Item Name 里輸入: Java filename,選中Output To List Box和Capture Output ,運(yùn)行結(jié)果顯示在輸出窗口里。
配置帶參數(shù)運(yùn)行的解釋器Java:在Command Line里輸入:d:jspj2sdkinJava %n%modify%,在Menu Item Name 里輸入:Java filename parameter,這樣當(dāng)執(zhí)行這個(gè)菜單項(xiàng)的時(shí)候,會(huì)顯示一個(gè)要求輸入?yún)?shù)的對(duì)話框。
2、 Editplus
EditPlus也是共享軟件,最新版本是EditPlus 2.12。其官方網(wǎng)址是:[url][/url]。EditPlus也是功能很全面的文本、HTML、程序源代碼編輯器。默認(rèn)的支持HTML、CSS、PHP、ASP、Perl、C/C 、Java、JavaScript和VBScript的語(yǔ)法著色。通過(guò)定制語(yǔ)法文件還可以擴(kuò)展到其他程序語(yǔ)言??梢栽赥ools菜單的Configure User Tools菜單項(xiàng)配置用戶工具,類似于UltraEdit的配置,配置好Java的編譯器Javac和解釋器Java后,通過(guò)EditPlus的菜單可以直接編譯執(zhí)行Java程序。
3、Jcreator
Jcreator是一個(gè)用于Java程序設(shè)計(jì)的集成開發(fā)環(huán)境,具有編輯、調(diào)試、運(yùn)行Java程序的功能。官方網(wǎng)址是:[url][/url] 。當(dāng)前最新版本是Jcreator 3.10,它又分為L(zhǎng)E和Pro版本。LE版本功能上受到一些限制,是免費(fèi)版本。Pro版本功能最全,但這個(gè)版本是一個(gè)共享軟件。這個(gè)軟件比較小巧,對(duì)硬件要求不是很高,完全用C 寫的,速度快、效率高。具有語(yǔ)法著色、代碼自動(dòng)完成、代碼參數(shù)提示、工程向?qū)?、類向?qū)У裙δ?。第一次啟?dòng)時(shí)提示設(shè)置Java JDK主目錄及JDK JavaDoc目錄,軟件自動(dòng)設(shè)置好類路徑、編譯器及解釋器路徑,還可以在幫助菜單中使用JDK Help。但目前這個(gè)版本對(duì)中文支持性不好。
4、Eclipse
Eclipse是一個(gè)開放可擴(kuò)展的集成開發(fā)環(huán)境(IDE)。它不僅可以用于Java的開發(fā),通過(guò)開發(fā)插件,還可以構(gòu)建其他的開發(fā)工具。Eclipse是開放源代碼的項(xiàng)目,并可以免費(fèi)下載。它的官方網(wǎng)址是:[url][/url],提供Releases、Stable Builds、Integration Builds和Nightly Builds下載。建議使用Releases或Stable Builds版本。
Releases版本是Eclipse開發(fā)團(tuán)隊(duì)發(fā)布的主要發(fā)行版本,是經(jīng)過(guò)測(cè)試的穩(wěn)定的版本,適合要求穩(wěn)定而不需要最新改進(jìn)功能的使用者選擇。目前最新的Release版本是Eclipse 3.0。Stable Builds版本對(duì)大多數(shù)使用者而言已足夠穩(wěn)定,由開發(fā)團(tuán)隊(duì)用比較穩(wěn)定的Integration Build版本提升到Stable Build而來(lái),適合想使用Eclipse新功能的使用者選擇。對(duì)于Releases版本2.1.x,在Eclipse的官方網(wǎng)站上有一個(gè)語(yǔ)言包可以下載,這樣Eclipse及其幫助都有簡(jiǎn)體中文版。Eclipse用于Java開發(fā),與UltraEdit、Editplus兩種編輯器和Jcreator IDE比較,Eclipse更專業(yè),功能更強(qiáng)大。
總之,Java語(yǔ)言提供一種強(qiáng)有力的工具支援程序設(shè)計(jì)員。Java讓程序設(shè)計(jì)變得更容易,因?yàn)樗鼘儆诿嫦驅(qū)ο笳Z(yǔ)言,而且提供了自動(dòng)的內(nèi)存垃圾收集功能。再者,由于Java碼具備結(jié)構(gòu)中立性,因此其應(yīng)用程序成為非同質(zhì)性運(yùn)算環(huán)境 (例如Internet)的理想方案。
以下方法實(shí)現(xiàn)了用戶界面登陸
import java.awt.*;
import java.awt.event.*;
public class DengLuJieMian extends Frame implements ActionListener
{
Label username=new Label("用戶名:");//使用文本創(chuàng)建一個(gè)用戶名標(biāo)簽
TextField t1=new TextField();//創(chuàng)建一個(gè)文本框?qū)ο?/p>
Label password=new Label("密碼:");//創(chuàng)建一個(gè)密碼標(biāo)簽
TextField t2=new TextField();
Button b1=new Button("登陸");//創(chuàng)建登陸按鈕
Button b2=new Button("取消");//創(chuàng)建取消按鈕
public DengLuJieMian()
{
this.setTitle("學(xué)生信息管理系統(tǒng)");//設(shè)置窗口標(biāo)題
this.setLayout(null);//設(shè)置窗口布局管理器
username.setBounds(50,40,60,20);//設(shè)置姓名標(biāo)簽的初始位置
this.add(username);// 將姓名標(biāo)簽組件添加到容器
t1.setBounds(120,40,80,20);// 設(shè)置文本框的初始位置
this.add(t1);// 將文本框組件添加到容器
password.setBounds(50,100,60,20);//密碼標(biāo)簽的初始位置
this.add(password);//將密碼標(biāo)簽組件添加到容器
t2.setBounds(120,100,80,20);//設(shè)置密碼標(biāo)簽的初始位置
this.add(t2);//將密碼標(biāo)簽組件添加到容器
b1.setBounds(50,150,60,20);//設(shè)置登陸按鈕的初始位置
this.add(b1);//將登陸按鈕組件添加到容器
b2.setBounds(120,150,60,20);//設(shè)置取消按鈕的初始位置
this.add(b2);// 將取消按鈕組件添加到容器
b1.addActionListener(this);//給登陸按鈕添加監(jiān)聽器
b2.addActionListener(this);// 給取消按鈕添加監(jiān)聽器
this.setVisible(true);//設(shè)置窗口的可見性
this.setSize(300,200);//設(shè)置窗口的大小
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});//通過(guò)內(nèi)部類重寫關(guān)閉窗體的方法
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==b1)//處理登陸事件
{
String name=t1.getText();
String pass=t2.getText();
if(name!=nullpass.equals("000123"))//判斷語(yǔ)句
{
new StudentJieMian();
}
}
}
public static void main(String args[])//主函數(shù)
{
new DengLuJieMian();
}
}
以下方法實(shí)現(xiàn)了學(xué)生界面設(shè)計(jì)
import java.awt.*;
import java.awt.event.*;
class StudentJieMian extends Frame implements ActionListener
{
MenuBar m=new MenuBar();//創(chuàng)建菜單欄
Menu m1=new Menu("信息");//創(chuàng)建菜單“信息”
MenuItem m11=new MenuItem("插入");//創(chuàng)建“插入”的菜單項(xiàng)
MenuItem m12=new MenuItem("查詢");
Menu m2=new Menu("成績(jī)");//創(chuàng)建菜單“成績(jī)”
MenuItem m21=new MenuItem("查詢");
public StudentJieMian()
{
this.setTitle("學(xué)生界面");//設(shè)置窗口標(biāo)題
this.setLayout(new CardLayout());//設(shè)置窗口布局管理器
this.setMenuBar(m);//將菜單欄組件添加到容器
m.add(m1);//將信息菜單放入菜單欄
m.add(m2);
m1.add(m11);//將“插入”菜單項(xiàng)添加到“信息”菜單
m1.add(m12); //將“查詢”菜單項(xiàng)添加到“信息”菜單
m2.add(m21); //將“查詢”菜單項(xiàng)添加到“成績(jī)”菜單
m11.addActionListener(this); //給“插入”菜單項(xiàng)添加監(jiān)聽器
m12.addActionListener(this); //給“查詢”菜單項(xiàng)添加監(jiān)聽器
m21.addActionListener(this); //給“查詢”菜單項(xiàng)添加監(jiān)聽器
this.setVisible(true); //設(shè)置窗口的可見性
this.setSize(300,200); //設(shè)置窗口的大小
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);//關(guān)閉窗口
}
});
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==m11) //處理“添加信息”事件
{
new AddStudent();
}
if(e.getSource()==m12) //處理“查詢信息”事件
{
new SelectStudent();
}
if(e.getSource()==m21) //處理“查詢成績(jī)”事件
{
new ChengJiStudent();
}
}
public static void main(String args[])
{ new StudentJieMian(); //創(chuàng)建一個(gè)對(duì)象 }
大學(xué)生的作業(yè)不都該先讓你們寫個(gè)需求分析什么的么,你先寫好需求分析然后貼出需求來(lái)再找人幫你做。你這么說(shuō)一個(gè)簡(jiǎn)單的考勤系統(tǒng)誰(shuí)知道你要用什么做,用不用數(shù)據(jù)庫(kù),用什么數(shù)據(jù)庫(kù),用什么存儲(chǔ)引擎。通過(guò)什么方式來(lái)考勤。兄弟,問問題之前先想好自己的需求。而且寫這么多的代碼也不是每個(gè)看到的都有心情寫的,你該先到csdn上看看有沒有類似的代碼自己回家改改。要是完全不會(huì)的話怎么幫也沒用對(duì)吧。