日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

scala语言的底层是java实现的_Scala学习笔记一(与Java、Jvm的关系以及程序执行流程分析)...

發布時間:2025/4/5 java 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 scala语言的底层是java实现的_Scala学习笔记一(与Java、Jvm的关系以及程序执行流程分析)... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、Scala語言與Java、Jvm的關系分析

Scala語言是馬丁奧德斯基接觸Java語言后,針對Java語言的特點,將函數式編程語言的特點融合到Java中,由此發明的。Scala語言和Java語言的;聯系是十分緊密的。現在主流的JVM的Javac編譯器就是馬丁奧德斯基編寫的,包括JDK1.5和JDK1.8。那么Scala和Java以及JVM之間有什么樣的聯系呢?我們來分析一下,如下圖所示:

可以看出Scala語言編譯的范圍要大于Java語言的編譯范圍,也就是說有的Java程序可以通過Scalac編譯形成字節碼,然后通過Scala運行器運行想要的class文件,因為Scala語言包含了部分Java語法。

但是Java編譯器是無法,編譯Scala程序然后用Java運行器執行的,因為Scala擁有自己一些特有的語法,這是Java編譯器和運行器所顧及不到的。

同時Scala語言也有自己的類庫SDK,這些類庫可能會用到JDK提供的相關類庫,主要是使用JDK對其進行進一步的包裝形成SDK。

Scala語言的Scalac編譯和Scala運行器文件都在Scala安裝目錄的bin文件夾下。

總結一下Scala語言的特點:

(1)Scala是一門以Java虛擬機(JVM)為運行環境并將面向對象和函數式編程的最佳特性結合在一起的靜態類型編程語言。

(2)Scala 是一門多范式 (multi-paradigm) 的編程語言,Scala支持面向對象和函數式編程。

(3)Scala源代碼(.scala)會被編譯成Java字節碼(.class),然后運行于JVM之上,并可以調用現有的Java類庫,實現兩種語言的無縫對接。

(4)scala 單作為一門語言來看, 非常的簡潔高效 。

(5)Scala 在設計時,馬丁·奧德斯基是參考了Java的設計思想,可以說Scala是源于java,同時馬丁·奧德斯基也加入了自己的思想,將函數式編程語言的特點融合到JAVA中, 因此學習過Java,只要在學習Scala的過程中,搞清楚Scala和java相同點和不同點,就可以快速的掌握Scala這門語言。

二、Scala程序執行流程分析

Scala語言的源代碼文件的后綴名是.scala,編寫完源代碼然后經過Scalac編譯器編譯會生成兩個.class文件,下面來分析一下具體的執行過程。先編寫一個最簡單的Scala程序:

object TestScala {

def main(args: Array[String]): Unit={

println("hello,scala,idea...")

}

}

1.object表示一個伴生對象,這里可以簡單的理解就是一個對象

2.TestScala就是對象名字,它底層真正對應的類名是TestScala$,對象是TestScala$類型的一個靜態對象MODULE$

3.def表示是一個方法,這是一個關鍵字

4.main表示方法名字,表示程序執行的入口

5.args:Array[String]表示形參,scala的特點是將參數名寫在前面,類型在后

6.Array[String]表示類型是一個數組

7.? ?:Unit=表示該函數的返回值為空

8.println?打印輸出

9.當我們編寫一個object TestScala,底層會生成兩個.class文件分別是TestScala和TestScala$,對上面這兩個.class文件進行反編譯,如下所示:

TestScala

public final classTestScala

{public static voidmain(String[] paramArrayOfString)

{

TestScala$.MODULE$.main(paramArrayOfString);

}

}

TestScala$

public final classTestScala$

{public static finalMODULE$;static{new();

}public voidmain(String[] args)

{

Predef..MODULE$.println("hello,scala,idea...");

}private TestScala$() { MODULE$ = this; }

}

10.scala在運行時的流程如下:

(1)先從TestScala的main開始執行

(2)然后調用TestScala$類的主方法TestScala$.MODULE$.main

(3)即執行了TestScala$類中的main方法,打印輸出了“hello,scala,idea...”,可以理解為我們在main中寫的代碼放在了TestData$的main方法中,在底層執行scala編譯器做了一個包裝。

我們可以通過Java程序來模擬上面Scala程序的執行過程,如下所示:

public classTestScala {public static voidmain(String[] paramArrayOfString) {

TestScala$.MODULE$.main(paramArrayOfString);

}

}final classTestScala$ {public static finalTestScala$ MODULE$;static{

MODULE$= newTestScala$();

}public voidmain(String[] args)

{

System.out.println("hello,scala,idea...");

}//private TestScala$() { MODULE$ = this; }

}

只要以后看到有 object objectName,應該有這樣一個認識:

1、object objectName對應的是一個objectName$的一個靜態對象MODULE$

2、在我們的程序中,是一個單例

Scala程序開發的注意事項:

Scala源文件以 “.scala" 為擴展名。

Scala程序的執行入口是main()函數。

Scala語言嚴格區分大小寫。

Scala方法由一條條語句構成,每個語句后不需要分號(Scala語言會在每行后自動加分號),這也體現出Scala的簡潔性。如果在同一行有多條語句,除了最后一條語句不需要分號,其它語句需要分號。

總結

以上是生活随笔為你收集整理的scala语言的底层是java实现的_Scala学习笔记一(与Java、Jvm的关系以及程序执行流程分析)...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲久久视频 | 91精品人妻一区二区三区果冻 | 免费国产羞羞网站视频 | 狠狠干欧美 | 国产欧美精品一区二区三区 | 国产精品久久久久久亚洲 | 亚洲第一综合色 | 99re国产 | 欧美日韩亚洲激情 | 国产免费三片 | 青青草视频在线观看 | 精品三级在线 | 日本在线网址 | 亚洲深夜福利 | 亚洲精品女人久久久 | 少妇无套高潮一二三区 | 黄色的网站免费观看 | 毛片aaa| 中文字幕一区三区 | 国产成人综合视频 | 一级性生活毛片 | 国产人妖在线视频 | 另类小说色 | 人妻精油按摩bd高清中文字幕 | 北条麻妃青青久久 | 国产成人在线网站 | 西川结衣在线观看 | 国产亚洲午夜 | 色在线免费视频 | 天天天天躁天天爱天天碰2018 | 免费视频一区二区 | 国产无套内射又大又猛又粗又爽 | 午夜性色| 6080久久| 日韩精品久久一区 | 夜夜爽妓女8888视频免费观看 | 国产成人无码精品久久 | 爱爱爱免费视频 | 国产精品夜夜 | 国内外成人激情视频 | 欧美手机在线观看 | 中日韩免费毛片 | 欧美性生交大片免费看 | 日本精品久久久久 | 女人被狂躁c到高潮 | 女生毛片 | 精品国产免费人成在线观看 | 永久视频在线 | 一级黄色片视频 | 99福利网 | 又骚又黄的视频 | 国产成人精品视频一区二区 | 一级特黄色大片 | 网站黄色在线观看 | 国产成人无码久久久精品天美传媒 | 日本xxxxwwwww | 国产伦理精品 | 国产精品传媒视频 | 日韩av无码一区二区三区 | 成人亚洲一区 | 网友自拍一区 | 污视频免费网站 | 一区二区免费在线观看视频 | 91精品视频观看 | 夜夜爽日日澡人人添 | 亚洲欧美激情一区二区三区 | 91亚洲国产成人精品性色 | 免费观看黄色 | 蜜桃av一区 | 久久久免费av | 午夜淫片| 免费看黄色aaaaaa 片 | 日韩性猛交ⅹxxx乱大交 | 国产精品一区二区免费看 | 久久国产精品综合 | 中文字幕 日韩 欧美 | 中文字幕av网站 | 99re视频 | 免费福利影院 | 人妻中文字幕一区二区三区 | 亚洲女成人图区 | 熟妇女人妻丰满少妇中文字幕 | 奇米四色影视 | 久久亚洲精品中文字幕 | 老司机深夜福利网站 | 爱如潮水3免费观看日本高清 | 九九看片 | 强睡邻居人妻中文字幕 | 波多野结衣在线观看一区 | 日韩少妇 | 国产你懂得| 精品免费视频一区二区 | 亚洲激情图 | 狠狠操网址 | 国产成人无码一区二区三区在线 | 黄视频网站在线 | 伊人伦理 | 在线观看视频一区二区 | 亚洲影音先锋 |