久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長(zhǎng)資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      go語(yǔ)言和java的區(qū)別有哪些

      區(qū)別:1、Go不允許函數(shù)重載,java允許;2、Java默認(rèn)允許多態(tài),Go沒(méi)有;3、Go用HTTP協(xié)議進(jìn)行路由配置,java不是;4、Go代碼可以自動(dòng)擴(kuò)展到多個(gè)核心,而Java并不總是具有足夠的可擴(kuò)展性;5、Java對(duì)象的方法會(huì)有隱藏this指針傳遞,Go沒(méi)有;6、Java不支持多繼承,Go支持多繼承;7、GO采用的是非侵入式接口,而java不是。

      go語(yǔ)言和java的區(qū)別有哪些

      php入門(mén)到就業(yè)線(xiàn)上直播課:進(jìn)入學(xué)習(xí)
      Apipost = Postman + Swagger + Mock + Jmeter 超好用的API調(diào)試工具:點(diǎn)擊使用

      本教程操作環(huán)境:windows7系統(tǒng)、GO 1.18&&java8版本、Dell G3電腦。

      一、關(guān)于Java

      1、Java的用途

      首先我們來(lái)回顧下Java的主要用途和應(yīng)用場(chǎng)景:

      • 用途一:服務(wù)器后端系統(tǒng)開(kāi)發(fā)(web后端、微服務(wù)后端支付系統(tǒng)、業(yè)務(wù)系統(tǒng)、管理后臺(tái),各種后臺(tái)交互的接口服務(wù))。

      • 用途二:大數(shù)據(jù)框架的底層實(shí)現(xiàn)和Java的API支持。(Hadoop)。

      • 用途三:其它中間件的底層開(kāi)發(fā)。(Tomcat、RocketMq、Hbase、Kafka(部分)、SpringCloud,Dubbo…)。

      2、Java的優(yōu)勢(shì)和特點(diǎn)

      • 做服務(wù)端系統(tǒng)性能高。

      • 有虛擬機(jī),跨平臺(tái)。

      • 功能強(qiáng)大,支持的類(lèi)庫(kù)多,生態(tài)圈類(lèi)庫(kù)多,開(kāi)發(fā)框架和工具更易找。

      • 市場(chǎng)占有率高,約60%的中國(guó)程序員都是做Java相關(guān)的工作。

      二、關(guān)于Go

      1、Go的出生原因

      Go語(yǔ)言是Google內(nèi)部公司大佬開(kāi)發(fā)的,主要起因于Google公司有大量的C程序項(xiàng)目,但是開(kāi)發(fā)起來(lái)效率太低,維護(hù)成本高,于是就開(kāi)發(fā)了Go語(yǔ)言來(lái)提高效率,而且性能只是差一點(diǎn)。

      (Go是2007年開(kāi)始研發(fā),2009推出發(fā)布)

      2、宏觀看Go與Java的差異

      • 無(wú)虛擬機(jī),不跨平臺(tái)(這里的平臺(tái)指操作系統(tǒng))(可以運(yùn)行多個(gè)平臺(tái),每個(gè)平臺(tái)打不同的二進(jìn)制程序包),需要打包編譯成對(duì)應(yīng)服務(wù)器操作系統(tǒng)版本(windows/linux)的可執(zhí)行程序(比如windows是exe)。(注:說(shuō)go跨平臺(tái)的是指32位和64位相同操作系統(tǒng)之間的跨平臺(tái))

      • 因?yàn)镚o程序直接打包成操作系統(tǒng)可執(zhí)行的文件,沒(méi)有虛擬機(jī)在中間轉(zhuǎn)換的一層,所以理論上執(zhí)行效率會(huì)更高(理論上更高,實(shí)際情況需具體分析)。

      • 相比Java的語(yǔ)言和代碼編寫(xiě)風(fēng)格,Go更簡(jiǎn)潔,可以用更少的代碼實(shí)現(xiàn)同樣的功能。

      • Go語(yǔ)言底層也是C實(shí)現(xiàn)的,又做了高并發(fā)的設(shè)計(jì)(Java出生時(shí)(1995)還沒(méi)有多核cpu,所以他的并發(fā)支持后來(lái)添加上去的,Go(2009)出生時(shí)已經(jīng)有了多核cpu的電腦,它在設(shè)計(jì)語(yǔ)言時(shí)就考慮了充分利用多核cpu(英特爾2005首次推出多核)的性能),所以性能高,高并發(fā)的支持(高并發(fā)支持其中指的一個(gè)就是充分利用多核cpu的性能資源,比如go程序默認(rèn)使用所有cpu(除非自己設(shè)置使用多少))也好。

      • 天然的適用一些特定系統(tǒng)的開(kāi)發(fā),比如區(qū)塊鏈類(lèi)系統(tǒng)(如以太坊底層系統(tǒng)、以太坊上層應(yīng)用程序),云計(jì)算和容器(Docker,K8s底層都是go開(kāi)發(fā)的)開(kāi)發(fā)的(大公司自研運(yùn)維管理項(xiàng)目也大多是用go做底層的開(kāi)發(fā)),網(wǎng)絡(luò)編程(類(lèi)似于java的Netty)。

      三、Go語(yǔ)言和Java的具體區(qū)別

      1、函數(shù)重載

      Go上不允許函數(shù)重載,必須具有方法和函數(shù)的唯一名稱(chēng)。java允許函數(shù)重載。

      2、多態(tài)

      Java默認(rèn)允許多態(tài)。而,Go沒(méi)有。

      Java中的多態(tài)實(shí)現(xiàn)遵循一個(gè)原則:當(dāng)超類(lèi)對(duì)象引用變量引用子類(lèi)對(duì)象時(shí),被引用對(duì)象的類(lèi)型而不是引用變量的類(lèi)型決定了調(diào)用誰(shuí)的成員方法,但是這個(gè)被調(diào)用的方法必須是在超類(lèi)中定義過(guò)的,也就是說(shuō)被子類(lèi)覆蓋的方法。Java中的多態(tài)可以通過(guò)基于繼承和基于接口兩種方法實(shí)現(xiàn)。

      而在go語(yǔ)言一般不允許不同類(lèi)型的賦值,即不支持傳統(tǒng)的多態(tài)。interface是一個(gè)例外,可以用不同類(lèi)型進(jìn)行賦值只要一個(gè)類(lèi)型實(shí)現(xiàn)了該接口,我們就可以將該類(lèi)型的變量賦給該接口的變量。

      3、路由配置

      Go語(yǔ)言使用HTTP協(xié)議進(jìn)行路由配置;而java使用Akka.routing.ConsistentHashingRouter和Akka.routing.ScatterGatherFirstCompletedRouter進(jìn)行路由配置。

      4、可擴(kuò)展性

      Go代碼可以自動(dòng)擴(kuò)展到多個(gè)核心;而,Java并不總是具有足夠的可擴(kuò)展性。

      5、對(duì)象傳遞:

      Java中對(duì)象的方法會(huì)有隱藏的this指針傳遞,而Go語(yǔ)言中面向?qū)ο笾皇菗Q了一種語(yǔ)法形式來(lái)表達(dá),沒(méi)有隱藏的this指針,即方法施加的目標(biāo)顯示傳遞,沒(méi)有被隱藏。另外方法施加的目標(biāo)不一定是指針(java傳遞的是指向?qū)ο蟮闹羔?,如果是指針也可以不命名為this。

      6、繼承:

      Java的繼承通過(guò)extends關(guān)鍵字完成,不支持多繼承。Go語(yǔ)言的繼承通過(guò)匿名組合完成:基類(lèi)以Struct的方式定義,子類(lèi)只需要把基類(lèi)作為成員放在子類(lèi)的定義中,并且可以通過(guò)調(diào)整基類(lèi)成員的位置改變內(nèi)存布局,支持多繼承。

      7、接口:

      java中的接口作為不同組件中的契約存在,是強(qiáng)制的,類(lèi)必須聲明實(shí)現(xiàn)了某接口,需要從該接口繼承。哪怕是兩個(gè)一模一樣的接口但只有名字不一樣,也只能根據(jù)類(lèi)所聲明的實(shí)現(xiàn)接口是否包括該接口來(lái)決定該類(lèi)是否實(shí)現(xiàn)該接口,叫做“侵入式”的接口。

      而GO語(yǔ)言中采用的是非侵入式接口,一個(gè)類(lèi)只需要實(shí)現(xiàn)接口要求的所有函數(shù),那我們就說(shuō)該類(lèi)實(shí)現(xiàn)了該接口。GO語(yǔ)言可以通過(guò)接口進(jìn)行接口查詢(xún)(接口指向的對(duì)象是否實(shí)現(xiàn)了另外的接口),類(lèi)型查詢(xún)等。

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)