更多課程 選擇中心
        Java培訓

        400-111-8989

        Java培訓 > Java教程  > 正文

        java與ruby的直觀比較

        • 發布:Java培訓
        • 來源:Java教程
        • 時間:2017-12-19 11:42

        Java與Ruby的直觀比較

        以前花過一段時間學習ruby,還順便寫了個股票爬蟲,搭了數據展示網站,這次回顧一下以前的知識點,將ruby與java作個簡單而直觀的比較,這樣有助于更深入地理解java。

        一、ruby特性概覽

        1、動態強類型

        n=1

        n= “hello world”//n類型可變

        n+4 //運行時報Type Error

        相對于ruby,java則是靜態強類型

        int n = 1 //此處要指定類型

        n = “hello world”// 編譯時報錯

        靜態類型與動態類型的選擇,實際是可靠性與靈活性的選擇,靜態類型在編譯時確保了類型安全,增強了軟件的可靠性,但同時失去了靈活性,一個變量只能賦值某種類型,不便于擴展,相反動態類型則使程序更加地靈活和簡潔,但在類型安全保障方面卻不及前者有力。

        2、完全面向對象

        4.4765.round =>4

        nil.to_i =>0

        ruby是完全面向對象的,就算是數字,nil(類似java中null)也可以當作對象處理,執行相應方法

        3、腳本語言

        4、在命令行輸入irb即可獲得一個簡易的交互界面

        irb(main):001:0>

        二、ruby vs Java

        1、簡潔性

        代碼行數很重要!

        實現同樣一個輸出功能,ruby的代碼行數小于java,也許,正是出于簡潔性的考慮,java8出了lambda表達式。

        java:

        public static void main(String[] args) throws IOException {

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        List al = new ArrayList();

        String line = null;

        while (null != (line = br.readLine())) {

        al.add(line);

        }

        Collections.sort(al);

        System.out.println("sorted:" );

        for (Iterator it = al.iterator(); it.hasNext();) {

        System.out.println(it.next());

        }

        }

        共14行

        ruby:

        puts readlines.sort.unshift("sorted:\n" ).join

        共1行

        2、ruby的代碼塊

        本質:高階函數的一種特殊形式,類似于java的匿名內部類

        特點:1、使用時定義

        2、可引用外部局部變量(閉包)

        java:使用偏重的匿名內部類,不通用

        Execute( Callback callback){

        p = ..

        ...

        callback.do(p);

        }

        new Callback(Param p){

        do(){

        }

        }

        ruby:

        def execute

        yield

        end

        execute{|p|

        do anything….

        }

        3、開放類(Open class)

        動態改變已存在類的類定義

        4、動態類型

        Java:

        public void repair(Car car){

        }

        Ruby:

        def repair(c)

        end

        5、ruby中的Aop與Ioc

        AOP和依賴注入在ruby中是小菜一碟,但在java程序員而言,卻要學習新的編程模型,處理XML,引進復雜的語法。

        攔截器

        目的:不修改代碼,動態改變已定義類的行為,它支持AOP所需的大多數功能。

        (Ruby 2.0)能夠在之前、之后和包裝與Ruby方法鉤連。

        class Class

        alias_method :original_new, :new

        def new(*args)

        result = original_new(*args)

        print “object creadted "

        return result

        end

        end

        Ioc:

        IoC是一種可以幫助我們解耦各業務對象間依賴關系的對象綁定方式,主要是依賴注入,java需要 Ioc service Provider專門管理,方便自動化測試

        在ruby中,依賴注入是不必要的,它很容易修改運行中類的定義,你不需要在應用中添加新一層的復雜性,就可以注入新的行為

        class Payment < ActiveRecord::Base

        belongs_to :credit_card

        def capture

        PaymentGateway.capture(amount, credit_card)

        end

        end

        class PaymentGateway

        attr_accessor :desired_result

        def self.capture(amount, credit_card)

        Response.new(desired_result)

        end

        end

        三、Rails

        rails project

        目錄包含app 、config、script等

        常用包:

        Active Record:處理關系數據庫訪問

        Active Pack: 處理請求,管理model/view/controller

        它使用宏來幫助您快速生成基于數據庫結構的代碼和一些合理放置的宏

        (1) create table

        (2) ruby script/generate controller trails

        ruby script/generate model trails

        感謝大家閱讀由java培訓機構分享的“Java與Ruby的直觀比較”希望對大家有所幫助,更多精彩內容請關注Java培訓官網

        免責聲明:本文由小編轉載自網絡,旨在分享提供閱讀,版權歸原作者所有,如有侵權請聯系我們進行刪除

        預約申請免費試聽課

        填寫下面表單即可預約申請免費試聽!怕錢不夠?可就業掙錢后再付學費! 怕學不會?助教全程陪讀,隨時解惑!擔心就業?一地學習,可全國推薦就業!

        上一篇:Java Socket編程—通信是這樣煉成的
        下一篇:3 年工作經驗程序員應有的技能
        12大要點讓你的Java開發所向披靡~

        12大要點讓你的Java開發所向披靡~

        學習Java最好的12本免費在線電子書

        學習Java最好的12本免費在線電子書

        Java常用日志框架介紹

        Java常用日志框架介紹

        一篇文章了解RPC框架原理

        一篇文章了解RPC框架原理

        • 掃碼領取資料

          回復關鍵字:視頻資料

          免費領取 達內課程視頻學習資料

        • 視頻學習QQ群

          添加QQ群:1143617948

          免費領取達內課程視頻學習資料

        Copyright ? 2021 Tedu.cn All Rights Reserved 京ICP備08000853號-56 京公網安備 11010802029508號 達內時代科技集團有限公司 版權所有

        選擇城市和中心
        貴州省

        福建省

        • 達內廈門軟件園中心
        廣西省

        海南省

        国产高清情侣视频2019年,限制电影福利在线观看,23伊人大香蕉 百度 好搜 搜狗
        <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <文本链> <文本链> <文本链> <文本链> <文本链> <文本链>