java指南針代碼 指南針源碼

JAVA小軟件的代碼問(wèn)題

計(jì)算機(jī)語(yǔ)言的種類非常的多,總的來(lái)說(shuō)可以分成機(jī)器語(yǔ)言,匯編語(yǔ)言,高級(jí)語(yǔ)言三大類。 電腦每做的一次動(dòng)作,一個(gè)步驟,都是按照以經(jīng)用計(jì)算機(jī)語(yǔ)言編好的程序來(lái)執(zhí)行的,程序是計(jì)算機(jī)要執(zhí)行的指令的集合,而程序全部都是用我們所掌握的語(yǔ)言來(lái)編寫的。所以人們要控制計(jì)算機(jī)一定要通過(guò)計(jì)算機(jī)語(yǔ)言向計(jì)算機(jī)發(fā)出命令。 計(jì)算機(jī)所能識(shí)別的語(yǔ)言只有機(jī)器語(yǔ)言,即由0和1構(gòu)成的代碼。但通常人們編程時(shí),不采用機(jī)器語(yǔ)言,因?yàn)樗浅ky于記憶和識(shí)別。 目前通用的編程語(yǔ)言有兩種形式:匯編語(yǔ)言和高級(jí)語(yǔ)言。 匯編語(yǔ)言的實(shí)質(zhì)和機(jī)器語(yǔ)言是相同的,都是直接對(duì)硬件操作,只不過(guò)指令采用了英文縮寫的標(biāo)識(shí)符,更容易識(shí)別和記憶。它同樣需要編程者將每一步具體的操作用命令的形式寫出來(lái)。匯編程序通常由三部分組成:指令、偽指令和宏指令。匯編程序的每一句指令只能對(duì)應(yīng)實(shí)際操作過(guò)程中的一個(gè)很細(xì)微的動(dòng)作,例如移動(dòng)、自增,因此匯編源程序一般比較冗長(zhǎng)、復(fù)雜、容易出錯(cuò),而且使用匯編語(yǔ)言編程需要有更多的計(jì)算機(jī)專業(yè)知識(shí),但匯編語(yǔ)言的優(yōu)點(diǎn)也是顯而易見的,用匯編語(yǔ)言所能完成的操作不是一般高級(jí)語(yǔ)言所能實(shí)現(xiàn)的,而且源程序經(jīng)匯編生成的可執(zhí)行文件不僅比較小,而且執(zhí)行速度很快。 高級(jí)語(yǔ)言是目前絕大多數(shù)編程者的選擇。和匯編語(yǔ)言相比,它不但將許多相關(guān)的機(jī)器指令合成為單條指令,并且去掉了與具體操作有關(guān)但與完成工作無(wú)關(guān)的細(xì)節(jié),例如使用堆棧、寄存器等,這樣就大大簡(jiǎn)化了程序中的指令。同時(shí),由于省略了很多細(xì)節(jié),編程者也就不需要有太多的專業(yè)知識(shí)。 高級(jí)語(yǔ)言主要是相對(duì)于匯編語(yǔ)言而言,它并不是特指某一種具體的語(yǔ)言,而是包括了很多編程語(yǔ)言,如目前流行的VB、VC、FoxPro、Delphi等,這些語(yǔ)言的語(yǔ)法、命令格式都各不相同。 高級(jí)語(yǔ)言所編制的程序不能直接被計(jì)算機(jī)識(shí)別,必須經(jīng)過(guò)轉(zhuǎn)換才能被執(zhí)行,按轉(zhuǎn)換方式可將它們分為兩類: 解釋類:執(zhí)行方式類似于我們?nèi)粘I钪械摹巴暦g”,應(yīng)用程序源代碼一邊由相應(yīng)語(yǔ)言的解釋器“翻譯”成目標(biāo)代碼(機(jī)器語(yǔ)言),一邊執(zhí)行,因此效率比較低,而且不能生成可獨(dú)立執(zhí)行的可執(zhí)行文件,應(yīng)用程序不能脫離其解釋器,但這種方式比較靈活,可以動(dòng)態(tài)地調(diào)整、修改應(yīng)用程序。 編譯類:編譯是指在應(yīng)用源程序執(zhí)行之前,就將程序源代碼“翻譯”成目標(biāo)代碼(機(jī)器語(yǔ)言),因此其目標(biāo)程序可以脫離其語(yǔ)言環(huán)境獨(dú)立執(zhí)行,使用比較方便、效率較高。但應(yīng)用程序一旦需要修改,必須先修改源代碼,再重新編譯生成新的目標(biāo)文件(* .OBJ)才能執(zhí)行,只有目標(biāo)文件而沒(méi)有源代碼,修改很不方便。現(xiàn)在大多數(shù)的編程語(yǔ)言都是編譯型的,例如Visual C++、Visual Foxpro、Delphi等。 [NextPage] 學(xué)習(xí)編程,從何入手 如果樓主想學(xué)習(xí)編程,卻又不知從何入手,那么樓主不妨看看下面的幾種學(xué)習(xí)方案,可能會(huì)給樓主一些啟示吧! 方案一 Basic語(yǔ)言 Visual Basic 優(yōu)點(diǎn) (1)Basic 簡(jiǎn)單易學(xué),很容易上手。 (2)Visual Basic 提供了強(qiáng)大的可視化編程能力,可以讓你輕松地做出漂亮的程序。 (3)眾多的控件讓編程變得象壘積木一樣簡(jiǎn)單。 (4)Visual Basic 的全部漢化讓我們這些見了English就頭大的人喜不自禁。 缺點(diǎn) (1)Visual Basic 不是真正的面向?qū)ο蟮拈_發(fā)文具。 (2)Visual Basic 的數(shù)據(jù)類型太少,而且不支持指針,這使得它的表達(dá)能力很有限。 (3)Visual Basic 不是真正的編譯型語(yǔ)言,它產(chǎn)生的最終代碼不是可執(zhí)行的,是一種偽代碼。它需要一個(gè)動(dòng)態(tài)鏈接庫(kù)去解釋執(zhí)行,這使得Visual Basic 的編譯速度大大變慢。 綜述:方案一適合初涉編程的朋友,它對(duì)學(xué)習(xí)者的要求不高,幾乎每個(gè)人都可以在一個(gè)比較短的時(shí)間里學(xué)會(huì)vB編程,并用VB 做出自己的作品。對(duì)于那些把編程當(dāng)做游戲的朋友來(lái)說(shuō),VB 是您最佳的選擇。 Basic/Visual Basic簡(jiǎn)介 方案二 Pascal語(yǔ)言 Delphi 優(yōu)點(diǎn) (1)Pascal語(yǔ)言結(jié)構(gòu)嚴(yán)謹(jǐn),可以很好地培養(yǎng)一個(gè)人的編程思想。 (2)Delphi是一門真正的面向?qū)ο蟮拈_發(fā)工具,并且是完全的可視化。 (3)Delphi使用了真編譯,可以讓你的代碼編譯成為可執(zhí)行的文件,而且編譯速度非???。 (4)Delphi具有強(qiáng)大的數(shù)據(jù)庫(kù)開發(fā)能力,可以讓你輕松地開發(fā)數(shù)據(jù)庫(kù)。 缺點(diǎn) Delphi幾乎可以說(shuō)是完美的,只是Pascal語(yǔ)言的過(guò)于嚴(yán)謹(jǐn)讓人感覺(jué)有點(diǎn)煩。 綜述: 方案二比較適合那些具有一定編程基礎(chǔ)并且學(xué)過(guò)Pascal語(yǔ)言的朋友。 Pascal語(yǔ)言簡(jiǎn)介 Delphi簡(jiǎn)介 方案三 C語(yǔ)言 Visual C++ 優(yōu)點(diǎn) (1)C語(yǔ)言靈活性好,效率高,可以接觸到軟件開發(fā)比較底層的東西。 (2)微軟的MFC庫(kù)博大精深,學(xué)會(huì)它可以讓隨心所欲地進(jìn)行編程。 (3)VC是微軟制作的產(chǎn)品,與操作系統(tǒng)的結(jié)合更加緊密。 缺點(diǎn) 對(duì)使用者的要求比較高,既要具備豐富的C語(yǔ)言編程經(jīng)驗(yàn),又要具有一定的WINDOWS編程基礎(chǔ),它的過(guò)于專業(yè)溝靡話愕謀喑貪 謎哐 捌鵠椿嵊脅恍〉睦 選 綜述: VC是程序員用的東西。如果你是一個(gè)永不滿足的人,而且可以在編程上投入很大的精力和時(shí)間,那么學(xué)習(xí)VC你一定不會(huì)后悔的。 C語(yǔ)言簡(jiǎn)介 方案四 C++語(yǔ)言 C++ Builder 優(yōu)點(diǎn) (1)C++語(yǔ)言的優(yōu)點(diǎn)全部得以繼承。 (2)完全的可是化。 (3)極強(qiáng)的兼容性,支持OWL、VCL和MFC三大類庫(kù)。 (4)編譯速度非???。 缺點(diǎn) 由于推出的時(shí)間太短,關(guān)于它的各種資料還不太多。 綜述:我認(rèn)為C++ Builder 是最好的編程工具。它既保持了C++語(yǔ)言編程的優(yōu)點(diǎn),又做到了完全的可視化。 C語(yǔ)言簡(jiǎn)介 方案五 SQL語(yǔ)言 Power Builder 對(duì)于一些傳統(tǒng)的數(shù)據(jù)開發(fā)人員來(lái)說(shuō),F(xiàn)oxpro系列也許讓他們感到更加熟悉。但是對(duì)于初學(xué)者來(lái)說(shuō),PowerBuilder也許是最好的數(shù)據(jù)庫(kù)開發(fā)工具。各種各樣的控件,功能強(qiáng)大的PowerBuilder語(yǔ)言都會(huì)幫助你開發(fā)出自己的數(shù)據(jù)庫(kù)應(yīng)用程序。 [NextPage] JSP簡(jiǎn)介 在Sun正式發(fā)布JSP(Java Server Pages)之后,這種新的Web應(yīng)用開發(fā)技術(shù)很快引起了人們的關(guān)注。JSP為創(chuàng)建高度動(dòng)態(tài)的Web應(yīng)用提供了一個(gè)獨(dú)特的開發(fā)環(huán)境。按照 Sun 的說(shuō)法,JSP能夠適應(yīng)市場(chǎng)上包括Apache WebServer 、IIS4.0在內(nèi)的85%的服務(wù)器產(chǎn)品。 JSP與ASP的簡(jiǎn)單比較 JSP與Microsoft的ASP技術(shù)非常相似。兩者都提供在HTML代碼中混合某種程序代碼、由語(yǔ)言引擎解釋執(zhí)行程序代碼的能力。在ASP或JSP環(huán)境下,HTML代碼主要負(fù)責(zé)描述信息的顯示樣式,而程序代碼則用來(lái)描述處理邏輯。普通的HTML頁(yè)面只依賴于Web服務(wù)器,而ASP和JSP頁(yè)面需要附加的語(yǔ)言引擎分析和執(zhí)行程序代碼。程序代碼的執(zhí)行結(jié)果被重新嵌入到HTML代碼中,然后一起發(fā)送給瀏覽器。ASP和JSP都是面向Web服務(wù)器的技術(shù),客戶端瀏覽器不需要任何附加的軟件支持。 ASP的編程語(yǔ)言是VBScript之類的腳本語(yǔ)言,JSP使用的是Java,這是兩者最明顯的區(qū)別。 此外,ASP與JSP還有一個(gè)更為本質(zhì)的區(qū)別:兩種語(yǔ)言引擎用完全不同的方式處理頁(yè)面中嵌入的程序代碼。在ASP下,VBScript代碼被ASP引擎解釋執(zhí)行;在JSP下,代碼被編譯成Servlet并由Java虛擬機(jī)執(zhí)行,這種編譯操作僅在對(duì)JSP頁(yè)面的第一次請(qǐng)求時(shí)發(fā)生。 運(yùn)行環(huán)境 執(zhí)行 JSP 代碼需要在服務(wù)器上安裝 JSP 引擎。此處我們使用的是 Sun 的 JavaServer Web Development Kit ( JSWDK )。為便于學(xué)習(xí),這個(gè)軟件包提供了大量可供修改的示例。安裝 JSWDK 之后,只需執(zhí)行 startserver 命令即可啟動(dòng)服務(wù)器。在默認(rèn)配置下服務(wù)器在端口 8080 監(jiān)聽,使用 即可打開缺省頁(yè)面。 在運(yùn)行 JSP 示例頁(yè)面之前,請(qǐng)注意一下安裝 JSWDK 的目錄,特別是" work "子目錄下的內(nèi)容。執(zhí)行示例頁(yè)面時(shí),可以在這里看到 JSP 頁(yè)面如何被轉(zhuǎn)換成 Java 源文件,然后又被編譯成 class 文件(即 Servlet )。 JSWDK 軟件包中的示例頁(yè)面分為兩類,它們或者是 JSP 文件,或者是包含一個(gè)表單的 HTML 文件,這些表單均由 JSP 代碼處理。與 ASP 一樣, JSP 中的 Java 代碼均在服務(wù)器端執(zhí)行。因此,在瀏覽器中使用"查看源文件"菜單是無(wú)法看到 JSP 源代碼的,只能看到結(jié)果 HTML 代碼。所有示例的源代碼均通過(guò)一個(gè)單獨(dú)的" examples "頁(yè)面提供。 Java Servlet是一種開發(fā)Web應(yīng)用的理想構(gòu)架。 JSP以Servlet技術(shù)為基礎(chǔ),又在許多方面作了改進(jìn)。JSP頁(yè)面看起來(lái)象普通HTML頁(yè)面,但它允許嵌入執(zhí)行代碼,在這一點(diǎn)上,它和ASP技術(shù)非常相似。利用跨平臺(tái)運(yùn)行的JavaBean 組件,JSP為分離處理邏輯與顯示樣式提供了卓越的解決方案。JSP必將成為ASP技術(shù)的有力競(jìng)爭(zhēng)者。 [NextPage] SQL語(yǔ)言簡(jiǎn)介 SQL全稱是“結(jié)構(gòu)化查詢語(yǔ)言(Structured Query Language)”,最早的是IBM的圣約瑟研究實(shí)驗(yàn)室為其關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)SYSTEM R開發(fā)的一種查詢語(yǔ)言,它的前身是SQUARE語(yǔ)言。SQL語(yǔ)言結(jié)構(gòu)簡(jiǎn)潔,功能強(qiáng)大,簡(jiǎn)單易學(xué),所以自從IBM公司1981年推出以來(lái),SQL語(yǔ)言,得到了廣泛的應(yīng)用。如今無(wú)論是像Oracle ,Sybase,Informix,SQL server這些大型的數(shù)據(jù)庫(kù)管理系統(tǒng),還是像Visual Foxporo,PowerBuilder這些微機(jī)上常用的數(shù)據(jù)庫(kù)開發(fā)系統(tǒng),都支持SQL語(yǔ)言作為查詢語(yǔ)言。 Structured Query Language包含4個(gè)部分: 數(shù)據(jù)查詢語(yǔ)言DQL-Data Query Language SELECT 數(shù)據(jù)操縱語(yǔ)言DQL-Data Manipulation Language INSERT, UPDATE, DELETE 數(shù)據(jù)定義語(yǔ)言DQL-Data Definition Language CREATE, ALTER, DROP 數(shù)據(jù)控制語(yǔ)言DQL-Data Control Language COMMIT WORK, ROLLBACK WORK SQL的歷史 在70年代初,E.E.Codd首先提出了關(guān)系模型。70年代中期,IBM公司在研制 SYSTEM R關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)中研制了SQL語(yǔ)言,最早的SQL語(yǔ)言(叫SEQUEL2)是在1976 年 11 月的IBM Journal of RD上公布的。 1979年ORACLE公司首先提供商用的SQL,IBM公司在DB2 和SQL/DS數(shù)據(jù)庫(kù)系統(tǒng)中也實(shí)現(xiàn)了SQL。 1986年10月,美國(guó)ANSI采用SQL作為關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)的標(biāo)準(zhǔn)語(yǔ)言(ANSI X3. 135-1986),后為國(guó)際標(biāo)準(zhǔn)化組織(ISO)采納為國(guó)際標(biāo)準(zhǔn)。 1989年,美國(guó)ANSI采納在ANSI X3.135-1989報(bào)告中定義的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)的SQL標(biāo)準(zhǔn)語(yǔ)言,稱為ANSI SQL 89, 該標(biāo)準(zhǔn)替代ANSI X3.135-1986版本。該標(biāo)準(zhǔn)為下列組織所采納: ● 國(guó)際標(biāo)準(zhǔn)化組織(ISO),為ISO 9075-1989報(bào)告“Database Language SQL With Integrity Enhancement” ● 美國(guó)聯(lián)邦政府,發(fā)布在The Federal Information Processing Standard Publication(FIPS PUB)127 目前,所有主要的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)支持某些形式的SQL語(yǔ)言, 大部分?jǐn)?shù)據(jù)庫(kù)打算遵守ANSI SQL89標(biāo)準(zhǔn)。 SQL的優(yōu)點(diǎn) SQL廣泛地被采用正說(shuō)明了它的優(yōu)點(diǎn)。它使全部用戶,包括應(yīng)用程序員、DBA管理員和終端用戶受益非淺。 (1) 非過(guò)程化語(yǔ)言 SQL是一個(gè)非過(guò)程化的語(yǔ)言,因?yàn)樗淮翁幚硪粋€(gè)記錄,對(duì)數(shù)據(jù)提供自動(dòng)導(dǎo)航。SQL允許用戶在高層的數(shù)據(jù)結(jié)構(gòu)上工作,而不對(duì)單個(gè)記錄進(jìn)行操作,可操作記錄集。所有SQL 語(yǔ)句接受集合作為輸入,返回集合作為輸出。SQL的集合特性允許一條SQL語(yǔ)句的結(jié)果作為另一條SQL語(yǔ)句的輸入。 SQL不要求用戶指定對(duì)數(shù)據(jù)的存放方法。 這種特性使用戶更易集中精力于要得到的結(jié)果。所有SQL語(yǔ)句使用查詢優(yōu)化器,它是RDBMS的一部分,由它決定對(duì)指定數(shù)據(jù)存取的最快速度的手段。查詢優(yōu)化器知道存在什么索引,哪兒使用合適,而用戶從不需要知道表是否有索引,表有什么類型的索引。 (2) 統(tǒng)一的語(yǔ)言 SQL可用于所有用戶的DB活動(dòng)模型,包括系統(tǒng)管理員、數(shù)據(jù)庫(kù)管理員、 應(yīng)用程序員、決策支持系統(tǒng)人員及許多其它類型的終端用戶。基本的SQL 命令只需很少時(shí)間就能學(xué)會(huì),最高級(jí)的命令在幾天內(nèi)便可掌握。 SQL為許多任務(wù)提供了命令,包括: ● 查詢數(shù)據(jù) ● 在表中插入、修改和刪除記錄 ● 建立、修改和刪除數(shù)據(jù)對(duì)象 ● 控制對(duì)數(shù)據(jù)和數(shù)據(jù)對(duì)象的存取 ● 保證數(shù)據(jù)庫(kù)一致性和完整性 以前的數(shù)據(jù)庫(kù)管理系統(tǒng)為上述各類操作提供單獨(dú)的語(yǔ)言,而SQL 將全部任務(wù)統(tǒng)一在一種語(yǔ)言中。 (3) 是所有關(guān)系數(shù)據(jù)庫(kù)的公共語(yǔ)言 由于所有主要的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)都支持SQL語(yǔ)言,用戶可將使用SQL的技能從一個(gè)RDBMS轉(zhuǎn)到另一個(gè)。所有用SQL編寫的程序都是可以移植的。 [NextPage] Java語(yǔ)言簡(jiǎn)介 一. Java的由來(lái) 當(dāng)1995年SUN推出Java語(yǔ)言之后,全世界的目光都被這個(gè)神奇的語(yǔ)言所吸引。那么Java到底有何神奇之處呢? Java語(yǔ)言其實(shí)最是誕生于1991年,起初被稱為OAK語(yǔ)言,是SUN公司為一些消費(fèi)性電子產(chǎn)品而設(shè)計(jì)的一個(gè)通用環(huán)境。他們最初的目的只是為了開發(fā)一種獨(dú)立于平臺(tái)的軟件技術(shù),而且在網(wǎng)絡(luò)出現(xiàn)之前,OAK可以說(shuō)是默默無(wú)聞,甚至差點(diǎn)夭折。但是,網(wǎng)絡(luò)的出現(xiàn)改變了OAK的命運(yùn)。 在Java出現(xiàn)以前。Internet上的信息內(nèi)容都是一些乏味板的HTML文檔。這對(duì)于那些迷戀于WEB瀏覽的人們來(lái)說(shuō)簡(jiǎn)直不可容忍。他們迫切希望能在WEN中看到一些交互式的內(nèi)容,開發(fā)人員也極希望能夠在WEB上創(chuàng)建一類無(wú)需考慮軟硬件平臺(tái)就可以執(zhí)行的應(yīng)用程序,當(dāng)然這些程序還要有極大的安全保障。對(duì)于用戶的這種要求,傳統(tǒng)的編程語(yǔ)言顯得無(wú)能為力,面SUN的工程師敏銳地察覺(jué)到了這一點(diǎn),從1994年起,他們開始將OAK技術(shù)應(yīng)用于WEB上,并且開發(fā)出了HotJava的第一個(gè)版本。當(dāng)SUN公司1995年正式以Java這個(gè)名字推出的時(shí)候,幾乎所有的WEB開發(fā)人員都想到:噢,這正是我想要的。于是Java成了一顆耀眼的明星,丑小鴨一下了變成了白天鵝。 二. Java的定義 Java是一種簡(jiǎn)單的,面象對(duì)象的,分布式的,解釋的,鍵壯的安全的,結(jié)構(gòu)的中立的,可移植的,性能很優(yōu)異的多線程的,動(dòng)態(tài)的語(yǔ)言。 Java的開發(fā)環(huán)境有不同的版本,如sun公司的Java Developers Kit, 簡(jiǎn)稱 JDK。后來(lái)微軟公司推出了支持Java規(guī)范的Microsoft Visual J++ Java開發(fā)環(huán)境,簡(jiǎn)稱 VJ++。 三. Java的特點(diǎn) 1. 平臺(tái)無(wú)關(guān)性 平臺(tái)無(wú)關(guān)性是指Java能運(yùn)行于不同的平臺(tái)。Java引進(jìn)虛擬機(jī) 原理,并運(yùn)行于虛擬機(jī),實(shí)現(xiàn)不同平臺(tái)的Java接口之間。使 用Java編寫的程序能在世界范圍內(nèi)共享。Java的數(shù)據(jù)類型與 機(jī)器無(wú)關(guān),Java虛擬機(jī)(Java Virtual Machine)是建立在 硬件和操作系統(tǒng)之上,實(shí)現(xiàn)Java二進(jìn)制代碼的解釋執(zhí)行功能, 提供于不同平臺(tái)的接口的。 2. 安全性 Java的編程類似C++,學(xué)習(xí)過(guò)C++的讀者將很快掌握J(rèn)ava的精 髓。Java舍棄了C++的指針對(duì)存儲(chǔ)器地址的直接操作,程序 運(yùn)行時(shí),內(nèi)存由操作系統(tǒng)分配,這樣可以避免病毒通過(guò)指 針侵入系統(tǒng)。Java對(duì)程序提供了安全管理器,防止程序的 非法訪問(wèn)。 3. 面向?qū)ο?Java 吸取了C++面向?qū)ο蟮母拍?將數(shù)據(jù)封裝于類中,利用類 的優(yōu)點(diǎn),實(shí)現(xiàn)了程序的簡(jiǎn)潔性和便于維護(hù)性。類的封裝性、 繼承性等有關(guān)對(duì)象的特性,使程序代碼只需一次編譯,然后 通過(guò)上述特性反復(fù)利用。程序員只需把主要精力用在類和接 口的設(shè)計(jì)和應(yīng)用上。Java 提供了眾多的一般對(duì)象的類,通 過(guò)繼承即可使用父類的方法。在 Java 中,類的繼承關(guān)系是單一的非多重的,一個(gè)子類 只有一個(gè)父類,子類的父類又有一個(gè)父類。Java 提供的 Object 類及其子類的繼承關(guān)系如同一棵倒立的樹形,根類 為 Object 類, Object 類功能強(qiáng)大,經(jīng)常會(huì)使用到它及其 它派生的子類。 4. 分布式 Java建立在擴(kuò)展TCP/IP網(wǎng)絡(luò)平臺(tái)上。庫(kù)函數(shù)提供了用HTTP和FTP協(xié)議傳送和接受信息的方法。這使得程序員使用網(wǎng)絡(luò)上的文件和使用本機(jī)文件一樣容易。 5. 鍵壯性 Java致力于檢查程序在編譯和運(yùn)行時(shí)的錯(cuò)誤。類型檢查幫助檢查出許多開發(fā)早期出現(xiàn)的錯(cuò)誤。Java自已操縱內(nèi)存減少了內(nèi)存出錯(cuò)的可能性。Java還實(shí)現(xiàn)了真數(shù)組,避免了覆蓋數(shù)據(jù)的可能。這些功能特征大大提高了開發(fā)Java應(yīng)用程序的周期。Java提供: Null指針檢測(cè)、 數(shù)組邊界檢測(cè)、 異常出口、 Byte code校驗(yàn)。 四. Java與C/C++語(yǔ)言 Java提供了一個(gè)功能強(qiáng)大語(yǔ)言的所有功能,但幾乎沒(méi)有一點(diǎn)含混特征。C++安全性不好,但C和C++被大家接受,所以Java設(shè)計(jì)成C++形式,讓大家很容易學(xué)習(xí)。 Java去掉了C++語(yǔ)言的許多功能,讓Java的語(yǔ)言功能很精煉,并增加了一些很有用的功能,如自動(dòng)收集碎片。 Java去掉了以下幾個(gè)C和C++功能: 指針運(yùn)算 結(jié)構(gòu) typedefs #define 需要釋放內(nèi)存 這將減少了平常出錯(cuò)的50%。而且,Java很小,整個(gè)解釋器只需215K的RAM。 面象對(duì)象:Java實(shí)現(xiàn)了C++的基本面象對(duì)象技術(shù)并有一些增強(qiáng),(為了語(yǔ)言簡(jiǎn)單,刪除了一些功能)。Java處理數(shù)據(jù)方式和用對(duì)象接口處理對(duì)象數(shù)據(jù)方式一樣。 五. Java與Internet 我們知道,早先的 www 僅可以傳送文本和圖片,Java的出現(xiàn)實(shí)現(xiàn)了互動(dòng)的頁(yè)面,是一次偉大的革命。 Java并不是為 Internet,WWW而設(shè)計(jì)的,它也可以用來(lái)編寫?yīng)毩⒌膽?yīng)用程序。Java 是一種面向?qū)ο笳Z(yǔ)言。Java 語(yǔ)言類似于 C++ 語(yǔ)言,所以已熟練掌握 C++語(yǔ)言的編程人員,再學(xué)習(xí) Java 語(yǔ)言就容易得多!Java 程序需要編譯。實(shí)際上有兩種 Java 程序:一種 Java 應(yīng)用程序是一個(gè)完整的程序,如 Web 瀏覽器。一種 Java 小應(yīng)用程序是運(yùn)行于 Web 瀏覽器中的一個(gè)程序. Java程序和它的瀏覽器HotJava,提供了可讓你的瀏覽器運(yùn)行程序的方法。你能從你的瀏覽器里直接播放聲音。你還能播放頁(yè)面里的動(dòng)畫。Java還能告訴你的瀏覽器怎樣處理新的類型文件。當(dāng)我們能在2400 baud線上傳輸視頻圖象時(shí),HotJava將能顯示這些視頻。 當(dāng)今Internet的一大發(fā)展趨勢(shì)是電子商務(wù),而Internet的安全問(wèn)題是必須解決的問(wèn)題,通常大的部門應(yīng)設(shè)置防火墻,阻止非法侵入。 電子商務(wù)是當(dāng)今的熱門話題,然而傳統(tǒng)的編程語(yǔ)言難以勝任電子商務(wù)系統(tǒng),電子商務(wù)要求程序代碼具有基本的要求:安全、可靠、同時(shí)要求能 與運(yùn)行于不同平臺(tái)的機(jī)器的全世界客戶開展業(yè)務(wù)。Java以其強(qiáng)安全性、平臺(tái)無(wú)關(guān)性、硬件結(jié)構(gòu)無(wú)關(guān)性、語(yǔ)言簡(jiǎn)潔同時(shí)面向?qū)ο?,在網(wǎng)絡(luò)編程語(yǔ)言中占據(jù)無(wú)可比擬的優(yōu)勢(shì),成為實(shí)現(xiàn)電子商務(wù)系統(tǒng)的首選語(yǔ)言。 Java程序被放置在Internet服務(wù)器上,當(dāng)用戶訪問(wèn)服務(wù)器時(shí),Java程序被下載到本地的用戶機(jī)上,由瀏覽器解釋運(yùn)行。 [NextPage] PowerBuilder簡(jiǎn)介 PowerBuilder的產(chǎn)生 PowerBuilder是美國(guó)著名的數(shù)據(jù)庫(kù)應(yīng)用開發(fā)工具生產(chǎn)廠商PowerSoft推出的成功產(chǎn)品,其第一版于1991年6月正式投入市場(chǎng)。它是完全按照客戶/服務(wù)器體系結(jié)構(gòu)研制設(shè)計(jì)的,采用面向?qū)ο蠹夹g(shù),圖形化的應(yīng)用開發(fā)環(huán)境,是數(shù)據(jù)庫(kù)的前端開發(fā)工具。 PowerBuilder的特點(diǎn) 它支持應(yīng)用系統(tǒng)同時(shí)訪問(wèn)多種數(shù)據(jù)庫(kù),其中既包括Oracel,Sybase之類的大型數(shù)據(jù)庫(kù),又包括FOXPRO之類支持ODBC接口的小型數(shù)據(jù)庫(kù),PowerBuilder是完全可視化的數(shù)據(jù)庫(kù)開發(fā)工具,它提供了大量的控件,大大加快了項(xiàng)目的開發(fā)速度,也使開發(fā)者更容易掌握數(shù)據(jù)庫(kù)的開發(fā)。 它使用的編程語(yǔ)言叫做工PowerScripr,它也是一種高級(jí)的,結(jié)構(gòu)化的編程語(yǔ)言。PowerScript提供了一套完整的嵌入式SQL語(yǔ)句,開發(fā)人員可以像使用其它語(yǔ)句一樣自由地使用SQL語(yǔ)言,這樣就大大增強(qiáng)了程序操縱和訪問(wèn)數(shù)據(jù)庫(kù)的能力??梢哉f(shuō)PowerBuilder既適合初學(xué)者快速學(xué)習(xí)數(shù)據(jù)庫(kù)的開發(fā),又可以讓有經(jīng)驗(yàn)的開發(fā)人員開發(fā)出功能強(qiáng)大的數(shù)據(jù)庫(kù),是一種適用面非常廣的開發(fā)工具。 PowerBuilder是一個(gè)用來(lái)進(jìn)行客戶/服務(wù)器開發(fā)的完全的可視化開發(fā)環(huán)境。使用PowerBuilder,你可以用一種可視的直觀的方式來(lái)創(chuàng)建應(yīng)用程序的用戶界面和數(shù)據(jù)庫(kù)接口。這是一個(gè)總的概念,實(shí)際上是開發(fā)人員使用PowerBuilder去開發(fā)應(yīng)用程序,由于所開發(fā)的各種應(yīng)用程序充分利用了圖形用戶接口(GUI)的優(yōu)點(diǎn),所以PowerBuilder被認(rèn)為是一個(gè)圖形工具。 在客戶/服務(wù)器結(jié)構(gòu)的應(yīng)用中,PowerBuilder具有描述多個(gè)數(shù)據(jù)庫(kù)連接與檢索的能力。特別是PowerBuilder能從大多數(shù)流行的RDBMS中存取數(shù)據(jù),且不管數(shù)據(jù)存放在什麼地方;另外,各種應(yīng)用程序又可以獨(dú)立于RDBMS,因?yàn)镻owerBuilder可以使用數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)操作語(yǔ)言SQL(結(jié)構(gòu)化查詢語(yǔ)言)進(jìn)行。 使用PowerBuilder,可以很容易地開發(fā)出功能強(qiáng)大的圖形界面的訪問(wèn)服務(wù)器數(shù)據(jù)庫(kù)的應(yīng)用程序,PowerBuilder提供了建立符合工業(yè)標(biāo)準(zhǔn)的應(yīng)用程序(例如訂單登記、會(huì)計(jì)及制造系統(tǒng))所需的所有工具。 PowerBuilder應(yīng)用程序由窗口組成,這些窗口包含用戶與之交互的控件。開發(fā)人員可以使用所有標(biāo)準(zhǔn)空間(如按鈕、復(fù)選框、下拉式列表框或編輯框)以及PowerBuilder提供的特殊的使應(yīng)用程序更易于開發(fā)和使用的控件。 通常人們把PowerBuilder看成是一種開發(fā)工具,實(shí)際上它比其他工具強(qiáng)得多,是一種強(qiáng)有力的開發(fā)環(huán)境。開發(fā)人員不僅能用它來(lái)開發(fā)用戶容易使用的各種應(yīng)用程序還可以通過(guò)PowerBuilder修改數(shù)據(jù)庫(kù),利用400多個(gè)內(nèi)部定義函數(shù),可以開發(fā)能和其他應(yīng)用程序進(jìn)行的各種應(yīng)用程序。 PowerBuilder正在成為客戶/服務(wù)器應(yīng)用開發(fā)的標(biāo)準(zhǔn)。相對(duì)于其他任何客戶/服務(wù)器開發(fā)環(huán)境,PowerBuilder使開發(fā)人員的工作更快、成本更低、質(zhì)量更高、功能更強(qiáng)。 PowerBuilder為應(yīng)用開發(fā)提供了全面綜合性的支持,可以分別概括為如下幾點(diǎn): 事件驅(qū)動(dòng)的應(yīng)用程序 功能強(qiáng)大的編程語(yǔ)言與函數(shù) 面向?qū)ο蟮木幊?跨平臺(tái)開發(fā) 開放的數(shù)據(jù)庫(kù)連結(jié)系統(tǒng) PowerBuilder開發(fā)環(huán)境 PowerBuilder開發(fā)環(huán)境由一系列集成的圖形畫板(Painter)組成,應(yīng)用開發(fā)人員通過(guò)簡(jiǎn)單的鼠標(biāo)操作即可設(shè)計(jì)、建立、交互檢驗(yàn)和測(cè)試客戶/服務(wù)器應(yīng)用程序。 [NextPage] Delphi簡(jiǎn)介 Delphi這個(gè)名字源于古希臘的城市名。它集中了第三代語(yǔ)言的優(yōu)點(diǎn)。以O(shè)bject Pascal為基礎(chǔ),擴(kuò)充了面向?qū)ο蟮哪芰?,并且完美地結(jié)合了可視化的開發(fā)手段。Delphi自1995年3 月一推出就受到了人們的關(guān)注,并在當(dāng)年一舉奪得了多項(xiàng)大獎(jiǎng)。 Delphi的出現(xiàn)打破了V承可視化編程領(lǐng)域一統(tǒng)天下的局面。并且Delphi使用了本地編譯器直接生成技術(shù),使程序的執(zhí)行性能遠(yuǎn)遠(yuǎn)高于其它產(chǎn)品生成的程序。它還是真正的面向?qū)ο蟮木幊陶Z(yǔ)言。PASCAL語(yǔ)言的嚴(yán)謹(jǐn)加上可視化的優(yōu)勢(shì)和強(qiáng)大的數(shù)據(jù)庫(kù)功能使得它有充分的資本和微軟的VB叫板。許多人當(dāng)時(shí)都認(rèn)為Pascal 是最有前途的程序設(shè)計(jì)語(yǔ)言,并預(yù)測(cè)Delphi將會(huì)成為可視化編程的主流環(huán)境。 Delphi在你編好程序后自動(dòng)轉(zhuǎn)換成.EXE文件它運(yùn)行時(shí)速度比VB快,而且編譯后不需要其他的支持庫(kù)就能運(yùn)行。它的數(shù)據(jù)庫(kù)功能也挺強(qiáng)的,是開發(fā)中型數(shù)據(jù)庫(kù)軟件理想的編程工具。 Delphi適用于應(yīng)用軟件、數(shù)據(jù)庫(kù)系統(tǒng)、系統(tǒng)軟件等類型的開發(fā)。而且它擁有和VB差不多一樣的功能,而且一樣能應(yīng)用API函數(shù),這在控制Windows很有用。 Delphi是全新的可視化編程環(huán)境,為我們提供了一種方便、快捷的Windows應(yīng)用程序開發(fā)工具。它使用了Microsoft Windows圖形用戶界面的許多先進(jìn)特性和設(shè)計(jì)思想,采用了彈性可重復(fù)利用的完整的面向?qū)ο蟪绦蛘Z(yǔ)言(Object-Oriented Language)、當(dāng)今世界上最快的編輯器、最為領(lǐng)先的數(shù)據(jù)庫(kù)技術(shù)。對(duì)于廣大的程序開發(fā)人員來(lái)講,使用Delphi開發(fā)應(yīng)用軟件,無(wú)疑會(huì)大大地提高編程效率,而且隨著應(yīng)用的深入,您將會(huì)發(fā)現(xiàn)編程不再是枯燥無(wú)味的工作——Delphi的每一個(gè)設(shè)計(jì)細(xì)節(jié),都將帶給您一份欣喜。 Delphi的基本形式 Delphi實(shí)際上是Pascal語(yǔ)言的一種版本,但它與傳統(tǒng)的Pascal語(yǔ)言有天壤之別。一個(gè)Delphi程序首先是應(yīng)用程序框架,而這一框架正是應(yīng)用程序的“骨架”。在骨架上即使沒(méi)有附著任何東西,仍可以嚴(yán)格地按照設(shè)計(jì)運(yùn)行。您的工作只是在“骨架”中加入您的程序。缺省的應(yīng)用程序是一個(gè)空白的窗體(form),您可以運(yùn)行它,結(jié)果得到一個(gè)空白的窗口。這個(gè)窗口具有Windows窗口的全部性質(zhì):可以被放大縮小、移動(dòng)、最大最小化等,但您卻沒(méi)有編寫一行程序。因此,可以說(shuō)應(yīng)用程序框架通過(guò)提供所有應(yīng)用程序共有的東西,為用戶應(yīng)用程序的開發(fā)打下了良好的基礎(chǔ)。 Delphi已經(jīng)為您做好了一切基礎(chǔ)工作——程序框架就是一個(gè)已經(jīng)完成的可運(yùn)行應(yīng)用程序,只是不處理任何事情。您所需要做的,只是在程序中加入完成您所需功能的代碼而已。 在空白窗口的背后,應(yīng)用程序的框架正在等待用戶的輸入。由于您并未告訴它接收到用戶輸入后作何反應(yīng),窗口除了響應(yīng)Windows的基本操作(移動(dòng)、縮放等)外,它只是接受用戶的輸入,然后再忽略。Delphi把Windows編程的回調(diào)、句柄處理等繁復(fù)過(guò)程都放在一個(gè)不可見的Romulam覆蓋物下面。

創(chuàng)新互聯(lián)建站長(zhǎng)期為千余家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為江永企業(yè)提供專業(yè)的成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè),江永網(wǎng)站改版等技術(shù)服務(wù)。擁有10余年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。

在安卓開發(fā)中如何在自己設(shè)置的經(jīng)緯度顯示到高德地圖上中心點(diǎn)

首先創(chuàng)建工程,并在工程Build PathConfigure Build Path…libraries 中選擇“Add Externel JARs…”,選定

MapApi.jar,點(diǎn)擊OK,這樣就可以將高德地圖Android API 庫(kù)文件引入。然后在工程Build PathConfigure Build

Path…Order and Export 中將引入的庫(kù)文件MapApi.jar 選中,點(diǎn)擊OK,這樣您就可以在您的程序中使用高德地圖API

了。

二、我們?cè)诓皇煜さ那闆r下、先盡量多的添加此軟件應(yīng)用權(quán)限;所以在mainifest中添加如下代碼;插入的位置在

application的代碼之前。

Java代碼

uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/uses-permission

uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/uses-permission

uses-permission android:name="android.permission.INTERNET"/uses-permission

uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/uses-permission

uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/uses-permission

uses-permission android:name="android.permission.READ_PHONE_STATE"/uses-permission

uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/uses-permission

uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/uses-permission

三、接著就要在res文件下的layout中添加界面布局了。其代碼如下、你可以完全復(fù)制進(jìn)去。

Java代碼

?xml version="1.0" encoding="utf-8"?

LinearLayout xmlns:android=""

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

!--添加文本輸入框,查找地址--

LinearLayout

android:layout_height="wrap_content"

android:layout_width="wrap_content" android:orientation="horizontal"

xmlns:android=""

android:layout_gravity="center_horizontal"

TextView android:layout_height="wrap_content"

android:layout_width="wrap_content"

android:text="經(jīng)度"/

EditText android:layout_height="fill_parent"

android:layout_width="100px"

android:id="@+id/longitude"/

TextView android:layout_height="wrap_content"

android:layout_width="wrap_content"

android:text="緯度"/

EditText android:layout_height="fill_parent"

android:layout_width="100px"

android:id="@+id/latitude"/

Button android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="查找"

android:id="@+id/button"/

/LinearLayout

com.amap.mapapi.map.MapView android:id="@+id/mapView"

android:layout_width="fill_parent" android:layout_height="fill_parent"

android:clickable="true"

/

/LinearLayout

四、最后就是軟件的主程序部分了、里面需要的類和方法不多,主要以按鈕的監(jiān)聽器和地圖的界面實(shí)現(xiàn)為主

Java代碼

public void onCreate(Bundle savedInstanceState) {

// this.setMapMode(MAP_MODE_VECTOR);//設(shè)置地圖為矢量模式

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

mMapView = (MapView) findViewById(R.id.mapView);

mMapView.setBuiltInZoomControls(true); // 設(shè)置啟用內(nèi)置的縮放控件

mMapController = mMapView.getController(); // 得到mMapView

// 的控制權(quán),可以用它控制和驅(qū)動(dòng)平移和縮放

point = new GeoPoint((int) (39.982378 * 1E6), (int) (116.304923 * 1E6)); // 用給定的經(jīng)緯度構(gòu)造一個(gè)GeoPoint,單位是微度(度*

// 1E6)

// 按鈕添加監(jiān)聽器

button_location = (Button) findViewById(R.id.location);

longitude = (EditText) findViewById(R.id.longitude);

latidute = (EditText) findViewById(R.id.latitude);

locationListener = new OnClickListener() {

public void onClick(View e) {

if (e.equals(button_location)) {

// 得到文本輸入框的中經(jīng)緯 度坐標(biāo)值

String latStr = longitude.getText().toString();

// 將得到的字符串轉(zhuǎn)成數(shù)值

double lat = Integer.parseInt(latStr);

String lngStr = latidute.getText().toString();

double lng = Integer.parseInt(lngStr);

//轉(zhuǎn)成經(jīng)緯度坐標(biāo)

lat=lat*1E6;

lng=lng*1E6;

// 用給定的經(jīng)緯度構(gòu)造一個(gè)GeoPoint,單位是微度(度*1E6)

point = new GeoPoint((int) (lat), (int) (lng));

mMapController.setCenter(point); // 設(shè)置地圖中心點(diǎn)

mMapController.setZoom(12); // 設(shè)置地圖zoom 級(jí)別

// 添加地圖覆蓋物

// MyLocationOverlay(this, mMapView);

mylocTest.enableMyLocation(); // 判斷是否發(fā)現(xiàn)位置提供者

mylocTest.enableCompass(); // 打開指南針

mMapView.getOverlays().add(mylocTest);// 添加定位覆蓋物

}

}

};

// 按鈕添加監(jiān)聽器

button_location.setOnClickListener(locationListener);

mMapController.setCenter(point); // 設(shè)置地圖中心點(diǎn)

mMapController.setZoom(12); // 設(shè)置地圖zoom 級(jí)別

// 添加地圖覆蓋物

mylocTest = new MyLocationOverlay(this, mMapView);

mylocTest.enableMyLocation(); // 判斷是否發(fā)現(xiàn)位置提供者

mylocTest.enableCompass(); // 打開指南針

mMapView.getOverlays().add(mylocTest);// 添加定位覆蓋物

}

//另外一個(gè)添加界面覆蓋物的類:

public class MyLocationOverlayProxy extends com.amap.mapapi.map.MyLocationOverlay{

private Location mLocation;

protected final Paint mPaint = new Paint();

protected final Paint mCirclePaint = new Paint();

private Bitmap gps_marker=null;

private Point mMapCoords = new Point();

private final float gps_marker_CENTER_X;

private final float gps_marker_CENTER_Y;

private final LinkedListRunnable mRunOnFirstFix = new LinkedListRunnable();

public MyLocationOverlayProxy(amap amap, MapView mMapView) {

super(amap, mMapView);

gps_marker = ((BitmapDrawable) amap.getResources().getDrawable(

R.drawable.marker_gpsvalid)).getBitmap();

gps_marker_CENTER_X = gps_marker.getWidth() / 2 - 0.5f;

gps_marker_CENTER_Y= gps_marker.getHeight() / 2 - 0.5f;

}

public boolean runOnFirstFix(final Runnable runnable) {

if (mLocation != null) {

new Thread(runnable).start();

return true;

} else {

mRunOnFirstFix.addLast(runnable);

return false;

}

}

public void onLocationChanged(Location location) {

// TODO Auto-generated method stub

mLocation = location;

for(final Runnable runnable : mRunOnFirstFix) {

new Thread(runnable).start();

}

mRunOnFirstFix.clear();

super.onLocationChanged(location);

}

protected void drawMyLocation(Canvas canvas, MapView mapView, final Location mLocation,

GeoPoint point, long time) {

Projection pj=mapView.getProjection();

if (mLocation != null) {

mMapCoords=pj.toPixels(point, null);

final float radius = pj.metersToEquatorPixels(mLocation.getAccuracy());

this.mCirclePaint.setAntiAlias(true);

this.mCirclePaint.setARGB(35, 131, 182, 222);

this.mCirclePaint.setAlpha(50);

this.mCirclePaint.setStyle(Style.FILL);

canvas.drawCircle(mMapCoords.x, mMapCoords.y, radius, this.mCirclePaint);

this.mCirclePaint.setARGB(225, 131, 182, 222);

this.mCirclePaint.setAlpha(150);

this.mCirclePaint.setStyle(Style.STROKE);

canvas.drawCircle(mMapCoords.x, mMapCoords.y, radius, this.mCirclePaint);

canvas.drawBitmap(gps_marker, mMapCoords.x-gps_marker_CENTER_X, mMapCoords.y-gps_marker_CENTER_Y, this.mPaint);

}

}

}

如果 不清楚啊, 可以到我群里討論 look at my n a m e

java 自動(dòng)補(bǔ)全、就像百度似的。js和java代碼怎么寫?

原理很簡(jiǎn)單,但實(shí)現(xiàn)很復(fù)雜。

如果是代碼補(bǔ)全的,一般是通過(guò)反射去獲取類的一些信息,然后反饋給用戶,用于自動(dòng)填充。

如果是數(shù)據(jù)庫(kù)中有的,有3種解決方案,對(duì)應(yīng)2個(gè)不同的場(chǎng)景。

第一個(gè)場(chǎng)景:訪問(wèn)人數(shù)不多,項(xiàng)目不大,服務(wù)器資源空閑程度高。對(duì)應(yīng)的方案,直接針對(duì)數(shù)據(jù)庫(kù)進(jìn)行關(guān)鍵字模糊搜索。簡(jiǎn)單粗暴,實(shí)現(xiàn)技術(shù)要求很低。優(yōu)點(diǎn)開發(fā)難度低,架構(gòu)簡(jiǎn)單,缺點(diǎn)匹配程度可能不滿足當(dāng)前需求

第二個(gè)場(chǎng)景:訪問(wèn)人數(shù)多,服務(wù)器資源利用率要求高。對(duì)應(yīng)的方案,建立目錄緩存(也可能是NOSQL數(shù)據(jù)庫(kù)),對(duì)關(guān)鍵字在緩存(NOSQL數(shù)據(jù)庫(kù))進(jìn)行模糊查找并建立更新機(jī)制,但不能全完做到實(shí)時(shí)同步。優(yōu)點(diǎn)開發(fā)難度相對(duì)較高,架構(gòu)難度一般,缺點(diǎn)用戶體驗(yàn)可能不好。

最后一種解決方案,建立大數(shù)據(jù)平臺(tái),使用搜索引擎進(jìn)行搜索,搭配機(jī)器學(xué)習(xí)提高準(zhǔn)確率。優(yōu)點(diǎn)就是相對(duì)其他的基本沒(méi)有缺點(diǎn)。

網(wǎng)站欄目:java指南針代碼 指南針源碼
本文來(lái)源:http://muchs.cn/article26/hgcpcg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、小程序開發(fā)、品牌網(wǎng)站設(shè)計(jì)、營(yíng)銷型網(wǎng)站建設(shè)、品牌網(wǎng)站制作、網(wǎng)站設(shè)計(jì)

廣告

聲明:本網(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)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司