使用java讀卡例程,附件是YW-607讀卡器的SDK,里面有java讀寫(xiě)卡的例程讀卡器SDK
創(chuàng)新互聯(lián)公司是一家專業(yè)從事網(wǎng)站制作、網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司。作為專業(yè)網(wǎng)站設(shè)計(jì)公司,創(chuàng)新互聯(lián)公司依托的技術(shù)實(shí)力、以及多年的網(wǎng)站運(yùn)營(yíng)經(jīng)驗(yàn),為您提供專業(yè)的成都網(wǎng)站建設(shè)、全網(wǎng)整合營(yíng)銷(xiāo)推廣及網(wǎng)站設(shè)計(jì)開(kāi)發(fā)服務(wù)!
隨著Internet網(wǎng)絡(luò)的迅速發(fā)展,基于互聯(lián)網(wǎng)的企業(yè)應(yīng)用要求軟件平臺(tái)具有開(kāi)放性、分布性和平臺(tái)無(wú)關(guān)性。于是就相繼出現(xiàn)了RPC/COM/CORBA等技術(shù),但這些技術(shù)在實(shí)際應(yīng)用中存在著許多不足和局限。它們的特定協(xié)議難以通過(guò)防火墻,因而不適于Web上的應(yīng)用開(kāi)發(fā)。為了進(jìn)一步開(kāi)發(fā)基于Web的應(yīng)用,出現(xiàn)了Sun公司的Sun ONE(Open Net Environment 開(kāi)發(fā)網(wǎng)絡(luò)環(huán)境)和Microsoft公司的.NET等Web 服務(wù)技術(shù)體系。
Sun ONE體系結(jié)構(gòu)以Java語(yǔ)言為核心,包括J2SE/J2EE/J2ME和一系列的標(biāo)準(zhǔn)、技術(shù)及協(xié)議。它包括Sun獨(dú)有的iPlanet軟件系列,其中有在市場(chǎng)上受歡迎的LDAP目錄服務(wù)器軟件,以及Forte for Java——便于在任何環(huán)境下書(shū)寫(xiě)Java 語(yǔ)言的軟件工具。我們很容易就能從網(wǎng)上免費(fèi)獲得和使用包括Java 集成開(kāi)發(fā)環(huán)境、Java數(shù)據(jù)庫(kù)和中間件(Application Server)服務(wù)器等產(chǎn)品,以及它們的源代碼。Sun ONE更接近或能滿足互聯(lián)網(wǎng)在智能化Web服務(wù)方面對(duì)分布性、開(kāi)發(fā)性和平臺(tái)無(wú)關(guān)性的要求。
隨著Java技術(shù)的不斷發(fā)展,它根據(jù)市場(chǎng)進(jìn)一步細(xì)分為:針對(duì)企業(yè)網(wǎng)應(yīng)用的J2EE(Java 2 Enterprise Edition)、針對(duì)普通PC應(yīng)用的J2SE(Java 2 Standard Edition)和針對(duì)嵌入式設(shè)備及消費(fèi)類電器的J2ME(Java 2 Micro Edition)三個(gè)版本。本文就Sun ONE的Java核心應(yīng)用——J2SE/J2EE/J2ME作一些介紹。
J2EE技術(shù)應(yīng)用
J2EE是Sun公司推出的一種全新概念的模型,比傳統(tǒng)的互聯(lián)網(wǎng)應(yīng)用程序模型更有優(yōu)勢(shì)。
J2EE模型
J2EE的應(yīng)用編程模型(J2EE Blueprints)提供了一種用于實(shí)施基于J2EE多層應(yīng)用的文檔和實(shí)例套件的體系模型,簡(jiǎn)化了這項(xiàng)復(fù)雜的工作。它被開(kāi)發(fā)人員用作設(shè)計(jì)和優(yōu)化組件,以便開(kāi)發(fā)人員從策略上對(duì)開(kāi)發(fā)工作進(jìn)行分工。
J2EE應(yīng)用編程模型要求開(kāi)發(fā)者將自己的工作分成兩類:商業(yè)邏輯和表示邏輯,其余則由系統(tǒng)資源自動(dòng)處理,不必為中間層管道進(jìn)行編碼。這樣,開(kāi)發(fā)人員就能將更多的時(shí)間花在商業(yè)邏輯和表示邏輯上。對(duì)重視縮短項(xiàng)目周期的公司來(lái)說(shuō),這種轉(zhuǎn)變深受歡迎。
J2EE平臺(tái)
J2EE平臺(tái)是運(yùn)行J2EE應(yīng)用的標(biāo)準(zhǔn)環(huán)境,由J2EE部署規(guī)范(一套所有J2EE平臺(tái)產(chǎn)品都必須支持的標(biāo)準(zhǔn))、IETF標(biāo)準(zhǔn)集和CORBA標(biāo)準(zhǔn)組成。最新的J2EE平臺(tái)還添加了JavaBean組件模型。開(kāi)發(fā)人員可以利用JavaBean組件模型來(lái)自定義Java類實(shí)例,并可通過(guò)已定義的事件訪問(wèn)Java類。
J2EE支持EJB,因此開(kāi)發(fā)人員可以執(zhí)行多用戶交易功能。當(dāng)在J2EE服務(wù)器上運(yùn)行時(shí),Enterprise JavaBeans將應(yīng)用邏輯分成可再利用和可擴(kuò)展的代碼段。Enterprise JavaBeans并不是新特征,但是通過(guò)定義標(biāo)準(zhǔn)客戶端和服務(wù)API,J2EE增強(qiáng)了它的能力和可移植性。
EJB在服務(wù)器的一個(gè)容器內(nèi)運(yùn)行,提供所有典型的中間層服務(wù),如事務(wù)管理、安全、遠(yuǎn)程客戶連接、生存周期管理和數(shù)據(jù)庫(kù)連接緩沖。為了讓事務(wù)系統(tǒng)在存在EJB容器的情況下運(yùn)行,開(kāi)發(fā)人員只需在部署描述文件中定義Beans的事務(wù)屬性即可。
J2EE通過(guò)定義一組標(biāo)準(zhǔn)的結(jié)構(gòu)來(lái)實(shí)現(xiàn)它的優(yōu)勢(shì),例如:
1.J2EE Application Programming Model,是一種用于開(kāi)發(fā)多層次、瘦型客戶用戶程序的標(biāo)準(zhǔn)設(shè)計(jì)模型;
2. J2EE Platform,是一個(gè)標(biāo)準(zhǔn)的平臺(tái),用來(lái)整合J2EE的應(yīng)用程序,并指定一系列的接口和方法;
3. J2EE Compatibility Test Suite,是一套兼容測(cè)試組件,用來(lái)檢測(cè)產(chǎn)品是否同J2EE平臺(tái)兼容;
4.J2EE Reference Implementation,用來(lái)示范J2EE的能力。
J2EE服務(wù)器
Sun的J2EE服務(wù)器通過(guò)Java 命名和目錄接口(JNDI)、認(rèn)證、HTTP及與Enterprise JavaBeans兼容的能力,提供命名和目錄服務(wù)。JNDI是Java平臺(tái)的一種標(biāo)準(zhǔn)擴(kuò)展版,向企業(yè)內(nèi)的命名和目錄服務(wù)提供具有Java功能的,帶有統(tǒng)一接口的應(yīng)用,包括LDAP。
J2EE服務(wù)器還利用了Java Servlet技術(shù)。Java Servlet可以看作是運(yùn)行在服務(wù)器上的一個(gè)小程序,它向開(kāi)發(fā)人員提供以組件為基礎(chǔ)創(chuàng)建基于Web應(yīng)用的、獨(dú)立于平臺(tái)的方法。它不像利用CGI那樣具有性能局限。Java Servlet是一種擴(kuò)展Web服務(wù)器功能的簡(jiǎn)單技巧。由于它是用Java編寫(xiě)的,因而能夠訪問(wèn)整個(gè)Java API庫(kù),也包括用于訪問(wèn)企業(yè)數(shù)據(jù)庫(kù)的JDBC API。
JSP是Java Servlet的一種擴(kuò)展。Java Servlet提供開(kāi)發(fā)和顯示來(lái)自服務(wù)器的交互式Web頁(yè)。如今JSP又有了進(jìn)一步的改進(jìn),它使得創(chuàng)建和支持靜態(tài)模板和動(dòng)態(tài)內(nèi)容相結(jié)合的HTML和XML頁(yè)面更加容易。
安全性
J2EE平臺(tái)定義了一種標(biāo)準(zhǔn)的公開(kāi)存取控制規(guī)則,當(dāng)程序在企業(yè)平臺(tái)上開(kāi)發(fā)時(shí)就已被程序師定義和解釋了。J2EE也需要提供一個(gè)標(biāo)準(zhǔn)的注冊(cè)機(jī)制,以便應(yīng)用程序不會(huì)將這些注冊(cè)機(jī)制和邏輯相混合,從而使相同的工作執(zhí)行于大量的不同環(huán)境中時(shí)并不需要改變?cè)创a。例如:J2EE應(yīng)用程序開(kāi)發(fā)人員可以指定幾個(gè)安全級(jí)別,當(dāng)用戶訪問(wèn)數(shù)據(jù)時(shí),他們可寫(xiě)出代碼來(lái)檢查當(dāng)前用戶權(quán)限的級(jí)別。在開(kāi)發(fā)階段,開(kāi)發(fā)人員賦予多組用戶適當(dāng)?shù)陌踩?jí),使應(yīng)用程序在執(zhí)行限制操作之前能夠容易的判斷限制級(jí)。
J2EE 平臺(tái)是Java技術(shù)企業(yè)級(jí)應(yīng)用的最佳平臺(tái),它可以讓程序員迅速、快捷地開(kāi)發(fā)和分布企業(yè)級(jí)應(yīng)應(yīng)用程序。以下便是它的相關(guān)技術(shù):
1.Enterprise JavaBeans Architecture,企業(yè)級(jí)JavaBeans 定義了一個(gè)應(yīng)用程序接口。它可以使程序員迅速開(kāi)發(fā)、發(fā)布和管理跨平臺(tái)的、基于組件的企業(yè)級(jí)應(yīng)用程序。
2.JavaServer Pages,JSP 技術(shù)提供了一種簡(jiǎn)單、快速的方法來(lái)創(chuàng)建動(dòng)態(tài)網(wǎng)頁(yè)。通過(guò)它,可以快速地開(kāi)發(fā)基于Web的應(yīng)用程序,并且這些應(yīng)用程序都是與平臺(tái)無(wú)關(guān)的。因?yàn)镴SP與ASP很相似,所以熟悉ASP的人學(xué)習(xí)它就很容易了。
3.Java Servlet,提供了應(yīng)用程序接口。通過(guò)它可以簡(jiǎn)單快速地開(kāi)發(fā)并擴(kuò)展服務(wù)器功能。就發(fā)展趨勢(shì)來(lái)看,它將來(lái)有可能取代CGI。
4.J2EE Connector,提供了一種標(biāo)準(zhǔn)結(jié)構(gòu)來(lái)聯(lián)接不同的企業(yè)信息平臺(tái)。
5.Java Naming and Directory Interface(JNDI),在Java 平臺(tái)與商業(yè)信息之間,JNDI提供了統(tǒng)一、無(wú)縫的標(biāo)準(zhǔn)化連接。通過(guò)使用JNDI,程序員可以在企業(yè)多命名與目錄服務(wù)之間傳送Java 應(yīng)用程序。
6.Java Interface Definition Language(JIDL),通過(guò)使用CORBA,可以提供協(xié)同工作的能力。JIDL包括一個(gè)IDL-to-Java 編譯器和支持IIOP(Internet Inter-Orb Protocol)的ORB。
7.JDBC,幾乎是為所有的數(shù)據(jù)庫(kù)提供了統(tǒng)一的接口,同時(shí)可以創(chuàng)建高級(jí)工具和接口。
8.Java Message Service(JMS),它幾乎規(guī)范了所有企業(yè)級(jí)消息服務(wù),如可靠查詢、發(fā)布消息、訂閱雜志等各種各樣的PUSS/PULL技術(shù)的應(yīng)用,并且為它們提供了一個(gè)標(biāo)準(zhǔn)接口。
9.Java Transaction API(JTA),為分布式系統(tǒng)中可處理的應(yīng)用程序規(guī)定了一個(gè)高級(jí)的管理規(guī)范。
10.JavaMail,JavaMail應(yīng)用程序接口提供了一整套模擬郵件系統(tǒng)的抽象類。通過(guò)JavaMail,可以創(chuàng)建郵件或消息應(yīng)用程序。
11.RMI-IIOP,使用它就可以只用Java 技術(shù)和Java RMI接口開(kāi)發(fā)客戶機(jī)與服務(wù)器的遠(yuǎn)程接口。
J2EE使用固定的文件格式捆綁某個(gè)模塊:用.ear文件捆綁J2EE應(yīng)用程序;用.jar捆綁Enterprise Bean。例如,一個(gè).ear文件包含一個(gè).xml文件作為其分布描述,還包含一個(gè)或多個(gè).jar和.war文件;一個(gè).jar文件除了包含它的分布描述外,還包含了作為Enterprise bean的.class文件。
J2EE應(yīng)用程序的開(kāi)發(fā)階段分為四步:1.Enterprise Bean創(chuàng)建;2.Web Component創(chuàng)建;3.J2EE應(yīng)用程序裝配;4.J2EE應(yīng)用程序分布。以下是J2EE兼容產(chǎn)品部分列表:
BEA WebLogic Server 6.0、Borland App Server、HP Bluestone Total-e-Server、IBM WebSphere Application Server、IONA iPortal Application Server、iPlanet Application Server、Macromedia JRun Server、Oracle 9i Application Server、SilverStrean Application Server、Sybase EAServer、TogetherSoft ControlCenter、Java 2 SDK Enterprise Edition。
J2ME技術(shù)的應(yīng)用
J2ME(Java 2 Platform Micro Edition)是為無(wú)線電子市場(chǎng)所設(shè)計(jì)的,包括JVM規(guī)范和API規(guī)范。其API規(guī)范是基于J2SE(Java 2 Standard Editon)的。J2ME 定義了一套合適的類庫(kù)和虛擬機(jī)技術(shù)。這些技術(shù)可以使用戶、服務(wù)提供商和設(shè)備制造商通過(guò)物理(有線)連接或無(wú)線連接,按照需要隨時(shí)使用豐富的應(yīng)用程序。
J2ME又被稱為Java 2 微型版,被使用在各種各樣的消費(fèi)電子產(chǎn)品上,例如智能卡、手機(jī)、PDA、電視機(jī)頂盒等方面。當(dāng)然了,J2ME也提供了Java語(yǔ)言一貫的特性,那就是跨平臺(tái)和安全網(wǎng)絡(luò)傳輸。它使用了一系列更小的包,而且Javax.microedition.io 為J2SE包的子集。J2ME可以升級(jí)到J2SE和J2EE。
在J2ME出現(xiàn)之前,我們更多接觸到的是Java卡(Java Card)、嵌入式Java(Embedded Java)和實(shí)時(shí)Java(Real Time Java)等。其中Java卡是針對(duì)SIM卡、智能卡等設(shè)備而定制的最小Java子集,比J2ME還要小,移植性也不強(qiáng)。嵌入式Java則針對(duì)特殊用戶自行配置Java類庫(kù)和VM(Virtual Machine,虛擬機(jī))。它對(duì)資源需求極小,可運(yùn)行在無(wú)圖形用戶接口和網(wǎng)絡(luò)的設(shè)備上,可以添加用戶專用的API,但是它就無(wú)法移植。實(shí)時(shí)Java是由IBM領(lǐng)導(dǎo)的實(shí)時(shí)定制Java專家組負(fù)責(zé)實(shí)施的,現(xiàn)在還在不斷完善中。不過(guò),從嚴(yán)格意義上來(lái)說(shuō),它們都不是真正的J2ME。
像其它版本一樣,J2ME具有很多Java技術(shù)特性,主要有:
1.可以在各種支持Java的設(shè)備上運(yùn)行;
2.代碼短??;
3.充分利用Java語(yǔ)言的優(yōu)勢(shì);
4.安全性好;
5.用J2ME實(shí)現(xiàn)的應(yīng)用可以方便地升級(jí)到J2SE、J2EE。
J2ME的配置和框架
為了支持用戶和嵌入式市場(chǎng)提出的靈活性和可定制性要求,J2ME被設(shè)計(jì)得更加模塊化和可縮放化。J2ME在設(shè)備原有的操作系統(tǒng)上建造了3層軟件來(lái)實(shí)現(xiàn)這種要求:
1.JVM層,這層基于宿主操作系統(tǒng),按照某一種J2ME的配置,實(shí)現(xiàn)了JVM。
2.配置層,這層對(duì)于用戶可見(jiàn)度要低一些,但對(duì)框架層非常重要。它針對(duì)“水平”市場(chǎng)的需求,定義了Java虛擬機(jī)的最小功能集和Java類庫(kù)的最小集合。在某種意義上,配置層定義了開(kāi)發(fā)者在所有設(shè)備上都可以使用Java特性和類庫(kù)的“最小公分母”。
3.框架層,這層對(duì)于用戶和應(yīng)用程序提供者來(lái)說(shuō)是最常見(jiàn)的。它針對(duì)“垂直”市場(chǎng)的需求,定義了Java虛擬
至于XML,只是的JAVA中很多配置文件都用XML
為什么這么多人選擇Java語(yǔ)言呢?
首先得利與Java語(yǔ)言自身的優(yōu)越性,Java語(yǔ)言具有面向?qū)ο?、跨平臺(tái)、安全性、多線程等特點(diǎn),這使得Java成為許多應(yīng)用系統(tǒng)的理想開(kāi)發(fā)語(yǔ)言。
Java的人才缺口最大,據(jù)數(shù)據(jù)統(tǒng)計(jì),得知Java軟件工程師的職位需求量一天可達(dá)三萬(wàn)個(gè)。
用途如此之廣的Java造就了Java工程師的輝煌,使其在軟件工程師的領(lǐng)域里獨(dú)占鰲頭。Java軟件工程師運(yùn)用Java這個(gè)開(kāi)發(fā)工具去完成產(chǎn)品的程序設(shè)計(jì)、開(kāi)發(fā)、測(cè)試、維護(hù)升級(jí)等工作。
在工作中Java應(yīng)用范圍廣泛,從桌面辦公應(yīng)用到網(wǎng)絡(luò)數(shù)據(jù)庫(kù)等應(yīng)用,從PC到嵌入式移動(dòng)平臺(tái)、從Java小應(yīng)用程序到架構(gòu)龐大的J2EE企業(yè)級(jí)解決方案,處處都有Java的身影。就連美國(guó)大型太空項(xiàng)目當(dāng)中,也使用了Java來(lái)開(kāi)發(fā)控制系統(tǒng)和相關(guān)軟件。
現(xiàn)如今Java已在眾多編程語(yǔ)言中排名第二,這也反映了Java在工作中的重要性。
伴隨著Java的火熱,Java主要應(yīng)用在B/S和C/S領(lǐng)域。由于科技的不斷發(fā)展,B/S將不足以滿足社會(huì)需求,C/S將會(huì)是社會(huì)發(fā)展趨勢(shì)。隨著Servlet技術(shù)的使用,Java向Web移動(dòng)設(shè)備方向挺進(jìn)。
那么,現(xiàn)實(shí)領(lǐng)域中是如何運(yùn)用Java的呢?
1、Android應(yīng)用
隨著Android的出現(xiàn),到現(xiàn)如今Android手機(jī)中APP的應(yīng)用都是Java語(yǔ)言開(kāi)發(fā),雖然它們運(yùn)用不同的JVM和封裝方式,但代碼用的還是Java編程。
2、服務(wù)器端開(kāi)發(fā)應(yīng)用
Java幾乎被用在服務(wù)器端開(kāi)發(fā),多數(shù)沒(méi)有前端開(kāi)發(fā)的通常是從一個(gè)服務(wù)器接收數(shù)據(jù),處理后發(fā)給另一個(gè)處理系統(tǒng)。如今,Java編程已經(jīng)在金融服務(wù)業(yè)得到廣泛應(yīng)用,所有銀行平臺(tái)的前臺(tái)和后臺(tái)電子交易系統(tǒng)、確認(rèn)和結(jié)算服務(wù)、數(shù)據(jù)處理及其他項(xiàng)目都用Java來(lái)編寫(xiě)。
3、網(wǎng)站
Java在電子商務(wù)和網(wǎng)站開(kāi)發(fā)領(lǐng)域備受青睞,運(yùn)用不同的框架創(chuàng)建web項(xiàng)目、SpringMVC、Struts2.0 以及frameworks,這也使得它在不同部門(mén)網(wǎng)站的開(kāi)發(fā)中都以Java為基礎(chǔ)。
4、第三方交易系統(tǒng)
大多數(shù)的金融服務(wù)業(yè)都使用第三方交易系統(tǒng),而Java在此業(yè)務(wù)中起到橋梁的作用,它可以與許多銀行前臺(tái)產(chǎn)生鏈接,并為大家提供服務(wù)。
5、軟件工具
許多常用軟件的開(kāi)發(fā)都是運(yùn)用Java語(yǔ)言編寫(xiě)和開(kāi)發(fā)的,例如:Eclipse、IneteliJIdea等。
6、嵌入式領(lǐng)域
而今Java在嵌入式領(lǐng)域發(fā)展空間很大,在智能卡或者傳感器上,你只需130KB就能夠使用 Java 技術(shù)。
7、J2ME系統(tǒng)
近年大多數(shù)手機(jī)游戲都采用J2ME 的一部分 MIDP 和 CLDC 編寫(xiě),以適應(yīng) Android系統(tǒng)。不過(guò)J2ME在藍(lán)光、磁卡、機(jī)頂盒這些產(chǎn)品中依舊流行。
8、大數(shù)據(jù)技術(shù)
就目前來(lái)說(shuō),Hadoop及其他大數(shù)據(jù)處理都用Java語(yǔ)言,但是Java在此領(lǐng)域并未占太大空間,如 MongoDB 就是在 C++技術(shù)基礎(chǔ)上編寫(xiě)的。總的來(lái)說(shuō),只要 Hadoop 和 ElasticSearchas 能夠成長(zhǎng)壯大,Java 依舊還有潛力去在這個(gè)市場(chǎng)占據(jù)一部分。
簡(jiǎn)言之,Java環(huán)境可用來(lái)開(kāi)發(fā)能在任何計(jì)算平臺(tái)上運(yùn)行的應(yīng)用
軟件。它實(shí)際上是一種非?;厩医Y(jié)構(gòu)緊湊的技術(shù),而它對(duì)World
Wide Web以及商業(yè)的總體影響已可同電子表格對(duì)PC機(jī)的影響相比
擬。
Java是巨大的推動(dòng)力量
Java已用動(dòng)態(tài)的交互應(yīng)用軟件使Web栩栩如生。它使開(kāi)發(fā)人員
具有‘編寫(xiě)一次到處運(yùn)行TM”的巨大能力。而且,借助其JavaAPI
及其編程語(yǔ)言上的Java虛擬機(jī),它已產(chǎn)生一種分布信息的嶄新模式。
這種模式叫做Java企業(yè)計(jì)算,正在幫助各企業(yè)以各種不同的方法取
得競(jìng)爭(zhēng)優(yōu)勢(shì)。網(wǎng)管和控制已大大簡(jiǎn)化。軟件分配基本上是免費(fèi)的,
而且立即可實(shí)現(xiàn)。電子貿(mào)易已獲得。占有成本大幅度降低。信息和
應(yīng)用軟件到處可存取。
Java建立在簡(jiǎn)單的前提基礎(chǔ)上,即所有微處理器都應(yīng)講同一種
語(yǔ)言??所有內(nèi)部采用芯片的產(chǎn)品都應(yīng)能一起工作,無(wú)縫而方便地
共享信息。它已經(jīng)改變企業(yè)和個(gè)人同Internet大交道的方式?,F(xiàn)在,
它正在對(duì)消費(fèi)類產(chǎn)品產(chǎn)生明顯的影響,而且從總體上更加深刻地影
響企業(yè)計(jì)算。
借助Java,您可自由自在地使用您已擁有的硬件和軟件。這是因
為Java是獨(dú)立于平臺(tái)的。它還可使您超越企業(yè)計(jì)算,使應(yīng)用軟件在便
攜式計(jì)算機(jī)、信息亭、電視、蜂窩電話和其他大量設(shè)備上運(yùn)行。
全世界的公司都已發(fā)現(xiàn)Java數(shù)不勝數(shù)的用途。所有用途可從其無(wú)
可比擬的能力,即提高可靠性、安全性和簡(jiǎn)化各種不同計(jì)算產(chǎn)品和
環(huán)境的能力中受益非淺,而且節(jié)省的時(shí)間和費(fèi)用十分可觀。
Java無(wú)處不在。它已擁有幾百萬(wàn)個(gè)用戶,其發(fā)展速度要快于在它
以前的其他任何一種計(jì)算機(jī)產(chǎn)品。它可位于任何地方,而且能到處運(yùn)
行。Java正在迅速被用做傳播信息的事實(shí)上標(biāo)準(zhǔn),這是因?yàn)樗瓤山o
企業(yè),也可給最終用戶帶來(lái)似乎數(shù)不清的好處。
因此,請(qǐng)您仔細(xì)考察一下Java。它的優(yōu)點(diǎn)是很容易發(fā)現(xiàn)的。
“Java正在進(jìn)入企業(yè)、家庭和學(xué)校。
它正在象Internet本身一樣成為普遍存在的技術(shù)?!?/p>
Oracle 公司董事長(zhǎng)和首席執(zhí)行官
Larru Ellison
“Java正在改變我們使用Internet的方法,改變我們
在公司內(nèi)部存取信息的方法,甚至改變我們使用蜂窩
電話的方法。它正在從根本上改變制作信息、銷(xiāo)售信息
和分配信息的方法?!?/p>
EarthWeb公司董事長(zhǎng)和首席執(zhí)行官
Jack Hidary
Java的來(lái)龍去脈
Sun公司一小組工程師聚集在一起,認(rèn)真思考日常生活中的
數(shù)字系統(tǒng)??因?yàn)榭久姘鼨C(jī)、恒溫器、游戲機(jī)和其他無(wú)數(shù)設(shè)備
都包含越來(lái)越復(fù)雜的CPU??以及他們?nèi)绾文苁惯@些數(shù)字系統(tǒng)
共享信息。
創(chuàng)造未來(lái)的計(jì)算
制造產(chǎn)品的人當(dāng)然全都從不同的方面來(lái)考慮其設(shè)計(jì),視他們
所使用的硬件平臺(tái)、操作系統(tǒng)和應(yīng)用軟件而定。但是,如果您要
使這些產(chǎn)品中的一些產(chǎn)品一起工作,那怎么辦?安全性、可靠性
和網(wǎng)絡(luò)問(wèn)題又這么樣呢?
因此,Sun公司這些工程師把各種不同的產(chǎn)品折開(kāi)來(lái),然后又
把它們重新組裝起來(lái),其目標(biāo)是要使這些不同的設(shè)備相互交談。
他們把這些研究對(duì)象相互傳來(lái)傳去,并理解所有其他研究對(duì)象的
特性,以便使他們能更好地一起工作。這就把制造商的問(wèn)題縮減
到最低程度,并使消費(fèi)者能方便地進(jìn)行集成。當(dāng)傳統(tǒng)的語(yǔ)言證明
是不適用時(shí),工程師們就打算找到某種簡(jiǎn)單的現(xiàn)代新語(yǔ)言。于
是, Java應(yīng)運(yùn)而生。
人們很快發(fā)現(xiàn),Java有可能超越工程師的想象。Java的魅力在
于它提供給開(kāi)發(fā)人員和用戶的簡(jiǎn)便性。開(kāi)發(fā)人員擁有廣大的用戶基
礎(chǔ)、平臺(tái)獨(dú)立性、降低的開(kāi)發(fā)費(fèi)用和始終如一的執(zhí)行環(huán)境,而用戶
則可 從生動(dòng)的內(nèi)容、即時(shí)軟件和增大的安全性中受益。
但是,Java正是從置于World Wide Web那時(shí)起才真正起飛。Java
使全世界大為震動(dòng),因?yàn)樗筗eb頁(yè)面栩栩如生,而且不久變得很明
顯,Java擁有大得多的潛力。人們之所以采納Java,是因?yàn)樗歇?dú)特
的能力來(lái)編制和部署能在任何一個(gè)網(wǎng)絡(luò)、任何一個(gè)操作系統(tǒng)上運(yùn)行的
應(yīng)用軟件。分配軟件的時(shí)間和費(fèi)用實(shí)際上已不復(fù)存在,使得各公司可
把更多的資源用來(lái)開(kāi)發(fā)其產(chǎn)品。而且,某些工業(yè)專家認(rèn)為,Java可能
會(huì)改變軟件銷(xiāo)售模式,從固定價(jià)格改變?yōu)榘词褂昧渴召M(fèi),這樣做更有
利可圖,而且可阻止非法盜版。
Java是一種網(wǎng)絡(luò)計(jì)算的通用開(kāi)放標(biāo)準(zhǔn)平臺(tái)。這種平臺(tái)可從電話一
直擴(kuò)展到極端重要的應(yīng)用,建立在您現(xiàn)有的硬件和軟件體系結(jié)構(gòu)基礎(chǔ)
上,從而創(chuàng)造出一個(gè)全部聯(lián)網(wǎng)的企業(yè)或者制造出超出的創(chuàng)新產(chǎn)品。
“由于Java具有可縮放性,因而我們可以把Java應(yīng)用于小應(yīng)
用軟件或大應(yīng)用軟件,把它芯片組以及大型計(jì)算機(jī)和服務(wù)器,并
使它為各種不同的應(yīng)用領(lǐng)域服務(wù)?!?/p>
三菱公司系統(tǒng)營(yíng)銷(xiāo)副總裁
Steve Hester
“借助Java,您可以用一種能最有效地使用的方式動(dòng)態(tài)地分
發(fā)和分配交互式商務(wù)應(yīng)用軟件一一在需要運(yùn)行應(yīng)用軟件的地方,
在需要運(yùn)行應(yīng)用軟件的時(shí)候。”
Novell公司開(kāi)發(fā)者服務(wù)部副總和總經(jīng)理
Gary Mueller
Java扎下根來(lái)
在某種意義上,Java具體體現(xiàn)了Sun Microsystiems公司自其14年
前創(chuàng)建以來(lái)所追述的目標(biāo)。當(dāng)時(shí),它創(chuàng)造了“網(wǎng)絡(luò)就是計(jì)算機(jī)”這局名
言。它市基于Web的新網(wǎng)絡(luò)計(jì)算模式的完美平臺(tái),因?yàn)樗⒃诟鱾€(gè)
組織現(xiàn)有的硬件和軟件體系結(jié)構(gòu)基礎(chǔ)上,能建立一個(gè)全部聯(lián)網(wǎng)的企業(yè)。
Java是一個(gè)完整而全面的解決方案
Java遠(yuǎn)不止是一種編程語(yǔ)言,它是企業(yè)內(nèi)外的完整計(jì)算環(huán)境,而
且萬(wàn)事齊備,從開(kāi)發(fā)工具、操作系統(tǒng)、服務(wù)器軟件和瘦/肥客戶機(jī)一
直到網(wǎng)絡(luò)管理工具、支持、培訓(xùn)、咨詢和集成服務(wù),一應(yīng)俱全。Java
使用起來(lái)非常簡(jiǎn)單,部分原因是Sun提供一種全面統(tǒng)一的解決方案。
主要組成部分包括:
*Java開(kāi)發(fā)工具和服務(wù):有助于簡(jiǎn)化開(kāi)發(fā)Java應(yīng)用軟件的產(chǎn)品和
服務(wù)
*JavaOS:一種結(jié)構(gòu)緊湊的操作系統(tǒng),可使Java應(yīng)用軟件在網(wǎng)絡(luò)
計(jì)算機(jī)和蜂窩電話等設(shè)備上運(yùn)行
*Java虛擬機(jī):一層軟件,嵌入Windows、Macintosh和UNIX等計(jì)
算機(jī)操作系統(tǒng),或在這些操作系統(tǒng)上運(yùn)行,從而使計(jì)算機(jī)能
運(yùn)行Java應(yīng)用軟件
*Java API:標(biāo)準(zhǔn)軟件界面,位于Java應(yīng)用軟件和數(shù)據(jù)庫(kù)檢索和
安全性等服務(wù)軟件之間
*Java芯片:一系列為Java優(yōu)化的為處理器
*Solstice WorkShop:Java啟動(dòng)的網(wǎng)絡(luò)管理工具
*Java培訓(xùn):一個(gè)由教師指導(dǎo)和基于多媒體的完整課程,教會(huì)編
程員如何開(kāi)發(fā)Java應(yīng)用軟件,包括一個(gè)用來(lái)驗(yàn)證熟練程度的
認(rèn)證計(jì)劃
*JavaWorkShop支持:900號(hào)電話服務(wù),可為Java WorkShop用戶
(僅限美國(guó)用戶)立即提供按需支持
這些產(chǎn)品依靠由Sun的核心技術(shù)和服務(wù)提供的基礎(chǔ),包括:
*Solaris操作系統(tǒng)
*Sikstuce企業(yè)管理系統(tǒng)
*WorkShop開(kāi)發(fā)者工具
*SunSpectrum支持服務(wù)
*Internet咨詢和集成服務(wù)
*Java和Internet教育服務(wù)
*ultra工作站和Ultra Enterprise服務(wù)器;Netra服務(wù)器
難怪大公司和日益增多的全球2000公司正在把Java計(jì)算用做系統(tǒng)以及
其終產(chǎn)品的主要方面。
“您不會(huì)把您自己鎖住在任何一家公司的專有技術(shù)中。
開(kāi)放意味著選擇。而Java使您有選擇余地?!?/p>
Java改變了什么
nbs
p; 十年前,幾乎沒(méi)有人想到,幾個(gè)技術(shù)人員研發(fā)的一個(gè)“小語(yǔ)言”,會(huì)發(fā)展成如今的一個(gè)“生態(tài)圈”,這就是Java。
Java讓互聯(lián)網(wǎng)動(dòng)了起來(lái)
“計(jì)算機(jī)語(yǔ)言的發(fā)展歷史也是人們不斷追求更高的模塊化、抽象化和封裝化的歷史。近十年期間,很多編程語(yǔ)言,從出現(xiàn)到?jīng)]落經(jīng)過(guò)了一波又一波。像1970年代出現(xiàn)的Pascal,如今用的人已經(jīng)不多了?!币晃毁Y深程序員告訴記者,“‘算法+數(shù)據(jù)結(jié)構(gòu)=程序’幾乎成為軟件開(kāi)發(fā)的惟一準(zhǔn)則,結(jié)構(gòu)化程序設(shè)計(jì)方法從計(jì)算機(jī)發(fā)展角度來(lái)看是自然而然的,但今天從抽象的角度來(lái)看,這種方法幾乎可以說(shuō)是一個(gè)‘時(shí)代錯(cuò)誤’。實(shí)際上,軟件開(kāi)發(fā)的主要目的就是描述和反映現(xiàn)實(shí)世界,結(jié)構(gòu)化程序設(shè)計(jì)方法并不符合這個(gè)思維方式。”
因此,抽象的過(guò)程應(yīng)該是以現(xiàn)實(shí)世界的對(duì)象為中心的,于是面向?qū)ο蟮某橄蠓椒ň妥叩搅饲芭_(tái),出現(xiàn)了Visual Basic、Delphi、C++以及Java等面向?qū)ο蟮木幊陶Z(yǔ)言,而互聯(lián)網(wǎng)的勃興,則給Java的成長(zhǎng)帶來(lái)了肥沃的土壤。
“Java誕生時(shí)并沒(méi)有引起太多人的注意,它第一次讓人們覺(jué)得驚艷是在一次網(wǎng)站演示上,但當(dāng)時(shí)人們對(duì)Java還抱有很大的爭(zhēng)議。”被譽(yù)為“Java之父”的SUN公司副總裁、軟件部首席技術(shù)官James Gosling回憶起十幾年前的情景不無(wú)感慨地說(shuō),“但Java的出現(xiàn)為當(dāng)時(shí)的互聯(lián)網(wǎng)增添了生機(jī),它讓那些靜態(tài)的頁(yè)面動(dòng)了起來(lái)?!?/p>
而且,因?yàn)镴ava具有“只寫(xiě)一次,隨處運(yùn)行”的特點(diǎn),從而引起了更多開(kāi)發(fā)者的興趣。
“我們可以不必再做重復(fù)性質(zhì)的勞動(dòng)了?!敝袊?guó)科學(xué)院軟件研究所宋靖宇博士說(shuō),“此前,為了能夠使程序在不同型號(hào)的硬件平臺(tái)上運(yùn)行,開(kāi)發(fā)人員必須耗費(fèi)大量的時(shí)間來(lái)一遍又一遍的編寫(xiě)代碼,然而Java改變了這樣的局面,只寫(xiě)一次就可以?!?/p>
由于看到Java在互聯(lián)網(wǎng)時(shí)代的巨大作用,清華大學(xué)計(jì)算機(jī)系教授王克宏從1995年就開(kāi)始跟蹤Java的發(fā)展。
Java語(yǔ)言的優(yōu)勢(shì)似乎是與生俱來(lái)的,然而,僅有語(yǔ)言是不夠的。
免費(fèi)的Java創(chuàng)造了應(yīng)用奇跡
“為了提高軟件開(kāi)發(fā)效率,任何編程語(yǔ)言都離不開(kāi)相應(yīng)的開(kāi)發(fā)工具和程序庫(kù)?!蓖蹩撕暾f(shuō)。于是,SUN公司在1996年的1月23 日發(fā)布了JDK1.0,其中包括兩個(gè)部分:運(yùn)行環(huán)境和開(kāi)發(fā)工具,運(yùn)行環(huán)境包括五大部分:核心API、集成API、用戶界面API、發(fā)布技術(shù)和Java虛擬機(jī)。
隨著各種功能的完善與提煉,各種Java開(kāi)發(fā)工具以及開(kāi)發(fā)環(huán)境的豐富,Java不再是一種語(yǔ)言的代名詞,它變成了一種開(kāi)發(fā)平臺(tái)。人們常常聽(tīng)到的J2EE(企業(yè)版)、J2ME(微型版)、J2SE(標(biāo)準(zhǔn)版)就是Java的三大核心平臺(tái)。利用這三種不同的平臺(tái),人們可以來(lái)做不同行業(yè)的應(yīng)用。
SUN公司大中華區(qū)總裁余宏德說(shuō):“Java經(jīng)過(guò)十年的發(fā)展,已經(jīng)得到了全球的公認(rèn),可以說(shuō),當(dāng)今的電子時(shí)代是‘Java無(wú)處不在’,正是基于它一開(kāi)始的技術(shù)公開(kāi)性,Java已經(jīng)變成全球最富有活力的技術(shù)社區(qū)之一。”
盡管,Java目前已經(jīng)風(fēng)靡全世界,但Java 到底給整個(gè)產(chǎn)業(yè)帶來(lái)什么,除了Java程序員外,似乎沒(méi)有人能具體感覺(jué)到。
SUN中國(guó)區(qū)市場(chǎng)經(jīng)理馬君海比喻說(shuō):“電燈的發(fā)明,使得有了現(xiàn)在龐大的電力產(chǎn)業(yè);電話的發(fā)明,使得有了當(dāng)今興旺的電信產(chǎn)業(yè);而Java的發(fā)明,則給軟件產(chǎn)業(yè)帶來(lái)了前所未有的改變。”
像一切新興事物一樣,Java的發(fā)展并不那么順利,其坎坷起步的經(jīng)歷,可以從SUN首席執(zhí)行官Scott McNealy在SUN的Java One大會(huì)上的一句話得知一二:“七八年前的Java One演說(shuō)現(xiàn)在聽(tīng)起來(lái)真是寒磣,我們那時(shí)實(shí)在是太小看它了,我們根本不知道這項(xiàng)技術(shù)將會(huì)改變什么?!倍?,由于開(kāi)始就是基于開(kāi)源的態(tài)度,當(dāng)時(shí)很多人懷疑它是否能賺錢(qián)。
然而,今天的Java已經(jīng)得到廣泛應(yīng)用。
據(jù)全球市場(chǎng)調(diào)查分析顯示:已經(jīng)有25億部電子設(shè)備采用了Java技術(shù),Java智能卡發(fā)行量已經(jīng)達(dá)到10億張,采用Java技術(shù)的手機(jī)達(dá)7億多部,7億臺(tái)PC中應(yīng)用了Java技術(shù),140家電信運(yùn)營(yíng)商支持Java 技術(shù),全球有超過(guò)450 萬(wàn)個(gè)Java開(kāi)發(fā)人員,JCP(Java社區(qū)項(xiàng)目)已經(jīng)有912家會(huì)員企業(yè)。
如果沒(méi)有Java,SUN將會(huì)怎樣
從1997年4月6日美國(guó)舊金山的第二屆Java One大會(huì),到今年的Java十周年盛事,本報(bào)目睹了Java 十年的風(fēng)風(fēng)雨雨,眼瞅著這個(gè)以“咖啡”命名的小小編程語(yǔ)言變成了一個(gè)平臺(tái),一個(gè)社團(tuán),一個(gè)生態(tài)系統(tǒng)。Java不僅發(fā)展了自己,也同時(shí)改變了它的締造者。Java對(duì)SUN的改變是間接的、漸進(jìn)式的,有時(shí)候甚至不為外人所道也。
與平臺(tái)無(wú)關(guān)的Java旨在與“鎖定用戶的”Windows相抗衡,給人們更多的選擇,但推動(dòng)Java研發(fā)的卻是家硬件公司――硬件公司與微軟抗個(gè)什么衡?也許有人會(huì)拿IBM做類比――IBM也大量涉足軟件。問(wèn)題在于,IBM涉足軟件的結(jié)果是把自己變成了一個(gè)軟件和服務(wù)公司,而SUN的主業(yè)依然是服務(wù)器。表面上看,“純軟”的Java并沒(méi)有給“偏硬”的SUN帶來(lái)直接效益,反而樹(shù)了個(gè)強(qiáng)大的敵人,這就是并不“軟”的微軟。
同時(shí),盡管SUN對(duì)Java的投資巨大,卻從沒(méi)說(shuō)過(guò)它從Java中獲得過(guò)多少回報(bào)。因?yàn)槭褂肑ava程序和開(kāi)發(fā)工具包是免費(fèi)的,這讓那些利用Java做第三方開(kāi)發(fā)的ISV們賺了個(gè)缽滿盆滿,可是SUN得到了什么?當(dāng)然,Java作為高級(jí)編程語(yǔ)言,它的注冊(cè)和維護(hù)也能給SUN帶來(lái)一定收入,但這是一個(gè)小頭,有人比喻說(shuō):“SUN成了Java的管家,而不是主人?!?/p>
SUN大中華區(qū)市場(chǎng)總監(jiān)李永起近日為記者揭開(kāi)了Java與SUN的秘密:“如果SUN只是一個(gè)做服務(wù)器的公司,人們就不會(huì)對(duì)我們太感興趣,但有了Java,就大不一樣了,人們會(huì)跑過(guò)來(lái)與我們討論Java,人們會(huì)說(shuō):‘哦,能研發(fā)出Java這么棒的編程語(yǔ)言的公司一定不同凡響!’況且,服務(wù)器的銷(xiāo)售從來(lái)就不是孤立的,它體現(xiàn)為一個(gè)系統(tǒng),Java在硬件銷(xiāo)售中發(fā)揮了關(guān)鍵作用?!盨UN用 Java來(lái)定位Web服務(wù),發(fā)揮其多平臺(tái)對(duì)話的特長(zhǎng),營(yíng)造Web服務(wù)環(huán)境。
Internet讓Java復(fù)活,Java則拯救了曾經(jīng)陷入“偏硬”困境中的SUN。
SUN董事長(zhǎng)麥克尼里認(rèn)為:Java帶來(lái)的益處從根本上講是間接的?!暗?,”他說(shuō),“想像一下,如果10年前SUN沒(méi)有做Java,今天SUN將會(huì)在哪里?如果人們不寫(xiě)Java Web服務(wù),他們會(huì)寫(xiě).Net的程序,如果他們寫(xiě).Net的程序,他們就不會(huì)為SUN的設(shè)備寫(xiě)程序。”
.NET不折不扣的對(duì)手
近年來(lái),國(guó)內(nèi)一批軟件公司都采用Java技術(shù)開(kāi)發(fā)了一批軟件平臺(tái)和產(chǎn)品,這兩年Java在國(guó)內(nèi)得到了迅速發(fā)展。不過(guò),盡管看起來(lái)Java的隊(duì)伍似乎很強(qiáng)大,但國(guó)內(nèi)Java人才相對(duì)而言還是少得可憐。
“SUN在新加坡建立了Java高級(jí)培訓(xùn)中心,目前新加坡有5萬(wàn)名Java 人才,而新加坡全國(guó)只有380萬(wàn)人,即全國(guó)1.3%的是Java人才,如果按此比例,中國(guó)應(yīng)有1700萬(wàn)名Java人才,而現(xiàn)在估計(jì)僅10到15萬(wàn)人。”王克宏教授在相關(guān)的報(bào)告中寫(xiě)道,“造成國(guó)內(nèi)Java應(yīng)用不多的原因是多方面的。”
“這兩年SUN才開(kāi)始在中國(guó)舉辦各種活動(dòng),而許多媒體對(duì)Java的不關(guān)注也是其中一個(gè)原因?!蓖蹩撕暾f(shuō)。
“其實(shí),鑒于Java出來(lái)時(shí)總給人陽(yáng)春白雪的面孔,使得國(guó)內(nèi)的許多編程者在熟悉了微軟的開(kāi)發(fā)平臺(tái)后,很難轉(zhuǎn)換過(guò)來(lái)是其中的一大部分原因?!彼尉赣畈┦空f(shuō),“你不得不承認(rèn)微軟在開(kāi)發(fā)工具上的人性化以及可視化設(shè)計(jì)是高超的?!?/p>
“在討論 Java 的時(shí)候我們很容易將 Java 語(yǔ)言和 Java 平臺(tái)混為一談,與.NET 平臺(tái)比較的過(guò)程中,也更多的是將Java平臺(tái)和C#比較,或者將Java語(yǔ)言和.NET 平臺(tái)做比較,在我個(gè)人的意識(shí)中,這是不夠公正的?!鄙虾4髮W(xué)博士劉錟對(duì)記者說(shuō),“Java既是一種語(yǔ)言,也是一種平臺(tái)?!?/p>
說(shuō)到微軟的.NET,它從提出的開(kāi)始就是立足平臺(tái),相對(duì)于 Java 提倡的“一次編寫(xiě),到處運(yùn)行”,.NET則提倡“一個(gè)平臺(tái),多種語(yǔ)言”,因?yàn)槠脚_(tái)的統(tǒng)一性,因此在各個(gè)程序語(yǔ)言的兼容性和混合開(kāi)發(fā)方面做得比Java 好,也因此有些微軟的“粉絲”嘲笑Java是“一次編寫(xiě),到處調(diào)試”。
“微軟的C#是集合了C以及C++甚至Java的許多優(yōu)點(diǎn)的結(jié)晶,在Windows平臺(tái)上,似乎C#在運(yùn)行速度上更勝一籌?!眲㈠U介紹說(shuō),“在任何一個(gè)平臺(tái)上,我們直接交流的是實(shí)現(xiàn)Java語(yǔ)言運(yùn)行的虛擬機(jī),我們希望Java在虛擬機(jī)以及它的開(kāi)發(fā)平臺(tái)的研發(fā)上變得更易用、更人性化?!?/p>
“有對(duì)手總是一件不算壞的事情,這個(gè)世界不需要‘獨(dú)孤求敗’,商業(yè)規(guī)則也不允許‘獨(dú)孤求敗’的出現(xiàn),因?yàn)槟菢訒?huì)打破競(jìng)爭(zhēng)格局的平衡,而Java和.NET這兩個(gè)平臺(tái)的紛爭(zhēng)才剛剛開(kāi)始。較量,有利于整個(gè)軟件世界。SUN公司在商業(yè)模式的運(yùn)作上甚至可以跟微軟學(xué)習(xí)?!币痪W(wǎng)友這樣說(shuō)。
import?java.util.Scanner;
public?class?PhoneCard?{
private?final?int?id;?//?卡號(hào)
private?final?int?password;?//密碼
private?double?cash;?//剩余金額
private?double?cashPerMin?=?0.2;//?每分鐘收費(fèi)
private?Scanner?sc?=?new?Scanner(System.in);?
public?PhoneCard(int?id,int?password,double?cash)?{
this.id?=?id;
this.password?=?password;
this.cash?=?cash;
}
/**
?*?撥號(hào)計(jì)費(fèi)
?*?@param?time?撥號(hào)時(shí)間?單位分鐘
?*?返回剩余金額
?*/
public?double?callSomeone(double?time)?{
System.out.println("請(qǐng)輸入卡號(hào)和密碼,用空格隔開(kāi)");
int?id?=?sc.nextInt();
int?pw?=?sc.nextInt();
if(this.id?==?id??this.password?==?pw)?{
this.cash?=?this.cash?-?(double)time?*?cashPerMin;
return?cash;
}?else?{
System.out.println("密碼錯(cuò)誤");
return?-1;
}
}
}
public?class?TestPhoneCard?{
public?static?void?main(String[]?args)?{
PhoneCard?pc?=?new?PhoneCard(1,?1,?100);?//初始化,卡號(hào),密碼,余額
double?money?=?pc.callSomeone(10);?//撥打10分鐘
System.out.println("余額為"?+?money?+?"元");
money?=?pc.callSomeone(90);?//繼續(xù)撥打
System.out.println("余額為"?+?money?+?"元");
}
}
不知道為什么沒(méi)人做
import javax.swing.JOptionPane;
/**
*
* @author __USER__
*/
public class test extends javax.swing.JFrame {
/** Creates new form test */
public test() {
initComponents();
}
//GEN-BEGIN:initComponents
// editor-fold defaultstate="collapsed" desc="Generated Code"
private void initComponents() {
jButton1 = new javax.swing.JButton();
jLabel1 = new javax.swing.JLabel();
jTextField1 = new javax.swing.JTextField();
jTextField2 = new javax.swing.JTextField();
jLabel2 = new javax.swing.JLabel();
jTextField3 = new javax.swing.JTextField();
jLabel3 = new javax.swing.JLabel();
jLabel4 = new javax.swing.JLabel();
jTextField4 = new javax.swing.JTextField();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jButton1.setText("\u5f00\u59cb\u6d4b\u8bd5");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});
jLabel1.setText("\u8bf7\u8f93\u5165\u6d4b\u8bd5\u6b21\u6570\uff1a");
jTextField2.setEditable(false);
jLabel2.setText("\u6362\u5361\u80dc\u5229\u6b21\u6570\uff1a");
jTextField3.setEditable(false);
jLabel3.setText("\u4e0d\u6362\u80dc\u5229\u6b21\u6570\uff1a");
jLabel4.setText("\u603b\u8017\u65f6\uff08\u79d2\uff09\uff1a");
jTextField4.setEditable(false);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(
getContentPane());
getContentPane().setLayout(layout);
layout
.setHorizontalGroup(layout
.createParallelGroup(
javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(
layout
.createSequentialGroup()
.addGap(84, 84, 84)
.addGroup(
layout
.createParallelGroup(
javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(
layout
.createSequentialGroup()
.addGroup(
layout
.createParallelGroup(
javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(
layout
.createSequentialGroup()
.addComponent(
jLabel3)
.addGap(
26,
26,
26)
.addComponent(
jTextField3,
javax.swing.GroupLayout.DEFAULT_SIZE,
153,
Short.MAX_VALUE))
.addGroup(
layout
.createSequentialGroup()
.addComponent(
jLabel2)
.addGap(
26,
26,
26)
.addGroup(
layout
.createParallelGroup(
javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(
jTextField4,
javax.swing.GroupLayout.PREFERRED_SIZE,
97,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(
jTextField2,
javax.swing.GroupLayout.DEFAULT_SIZE,
153,
Short.MAX_VALUE))))
.addGap(
119,
119,
119))
.addGroup(
layout
.createSequentialGroup()
.addGroup(
layout
.createParallelGroup(
javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(
jLabel4)
.addComponent(
jLabel1))
.addPreferredGap(
javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(
jTextField1,
javax.swing.GroupLayout.PREFERRED_SIZE,
117,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(
18,
18,
18)
.addComponent(
jButton1)
.addContainerGap()))));
layout
.setVerticalGroup(layout
.createParallelGroup(
javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(
javax.swing.GroupLayout.Alignment.TRAILING,
layout
.createSequentialGroup()
.addGap(52, 52, 52)
.addGroup(
layout
.createParallelGroup(
javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel4)
.addComponent(
jTextField4,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(28, 28, 28)
.addGroup(
layout
.createParallelGroup(
javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(
jLabel2,
javax.swing.GroupLayout.PREFERRED_SIZE,
20,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(
jTextField2,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(32, 32, 32)
.addGroup(
layout
.createParallelGroup(
javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(
jLabel3,
javax.swing.GroupLayout.PREFERRED_SIZE,
20,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(
jTextField3,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(
javax.swing.LayoutStyle.ComponentPlacement.RELATED,
67, Short.MAX_VALUE)
.addGroup(
layout
.createParallelGroup(
javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(
jLabel1,
javax.swing.GroupLayout.PREFERRED_SIZE,
20,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(
jTextField1,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jButton1))
.addGap(76, 76, 76)));
pack();
}// /editor-fold
//GEN-END:initComponents
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
long time = System.currentTimeMillis();
String number = jTextField1.getText();
if (number.matches("^[1-9]\\d*$")) {
long count1 = 0;
long count2 = 0;
int[] cards = ;
long times = Long.parseLong(number);
for (long i = 0L; i times; i++) {
int random = (int) (Math.random() * 3);
//表示第一次抽取的牌
int card1 = cards[random];
count1 += card1;
//表示第二次如果換牌之后的牌
int card2 = Math.abs(card1 - 1);
count2 += card2;
}
time = System.currentTimeMillis() - time;
jTextField2.setText("" + count2);
jTextField3.setText("" + count1);
jTextField4.setText("" + time/1000.0);
} else {
JOptionPane.showMessageDialog(null, "輸入有誤!");
}
}
/**
* @param args
* the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new test().setVisible(true);
}
});
}
//GEN-BEGIN:variables
// Variables declaration - do not modify
private javax.swing.JButton jButton1;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JTextField jTextField1;
private javax.swing.JTextField jTextField2;
private javax.swing.JTextField jTextField3;
private javax.swing.JTextField jTextField4;
// End of variables declaration//GEN-END:variables
}
本文名稱:集成電子卡代碼java 集成電路卡識(shí)別碼在哪里
本文鏈接:http://jinyejixie.com/article6/dosdiig.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google、網(wǎng)站改版、用戶體驗(yàn)、軟件開(kāi)發(fā)、網(wǎng)站導(dǎo)航、網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)