2020-02-17

HelloScala.scala

object HelloScala{
    def main(args:Array[String]):Unit={
        print("hello,scala!")
    }
}

HelloScala.class

import scala.reflect.ScalaSignature;

@ScalaSignature(bytes="\006\001%:Q!\001\002\t\002\025\t!\002S3mY>\0346-\0317b\025\005\031\021a\002\037f[B$\030PP\002\001!\t1q!D\001\003\r\025A!\001#\001\n\005)AU\r\0347p'\016\fG.Y\n\003\017)\001\"a\003\b\016\0031Q\021!D\001\006g\016\fG.Y\005\003\0371\021a!\0218z%\0264\007\"B\t\b\t\003\021\022A\002\037j]&$h\bF\001\006\021\025!r\001\"\001\026\003\021i\027-\0338\025\005YI\002CA\006\030\023\tABB\001\003V]&$\b\"\002\016\024\001\004Y\022\001B1sON\0042a\003\017\037\023\tiBBA\003BeJ\f\027\020\005\002 M9\021\001\005\n\t\003C1i\021A\t\006\003G\021\ta\001\020:p_Rt\024BA\023\r\003\031\001&/\0323fM&\021q\005\013\002\007'R\024\030N\\4\013\005\025b\001")
public final class HelloScala
{
  public static void main(String[] paramArrayOfString)
  {
    HelloScala..MODULE$.main(paramArrayOfString);
  }
}

HelloScala$.class

import scala.Predef.;

public final class HelloScala$
{
  public static  MODULE$;

  static
  {
    new ();
  }

  public void main(String[] args)
  {
    Predef..MODULE$.print("hello,scala!");
  }
  private HelloScala$() { MODULE$ = this; }

}
//说明
//1.object表示一个伴生对象,这里我们可以简答的理解就是一个对象
//2.HelloScala就是对象名字,它底层真正对应的类名是HelloScala$
//对象是HelloScala$类型的一个静态对象MODULE$
//3.当我们编写一个object HelloScala底层会生成两个.class文件,分别是HelloScala和HelloScala$
//4.scala在运行时,的流程如下
//(1)先从HelloScala的main开始执行
//public static void main(String[] paramArrayOfString)
//  {
//    HelloScala..MODULE$.main(paramArrayOfString);
//  }
//(2)然后调用HelloScala$类的方法 HelloScala$.MODULE$.main
//(3)即执行了下面的代码
//public void main(String[] args)
//  {
//    Predef..MODULE$.print("hello,scala!");
//  }
object HelloScala{
    //说明
    //1.def 表示一个方法,这是个关键字
    //2.main表示方法名字,表示程序入口
    //3.args:Array[String]表示形参,scala的特点时将参数名在前,类在后
    //4.Array[String]表示类型数组
    //5. :Unit= 表示该函数的返回值为空(void)
    //6.print("hello,scala!")输出一句话
    def main(args:Array[String]):Unit={
        print("hello,scala!")
    }
}

用scalac可能能执行java字节码文件,但是javac不能执行scala字节码文件,因为scala比java的范围大

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 春节以后,与几位品牌经理交流,完全不同的公司,得到了差不多的反馈。 品牌经理A来自BAT大厂,之前一直负责品牌形象...
    Katie_6e92阅读 1,501评论 0 1
  • https://newsroom.sprint.com/executive-team/ Sprint执行团队简历和...
    Nomodel阅读 3,462评论 0 0
  • 《朗读者》100句精华,读了读,有意外的收获 重读《朗读者》中的这些美好的句子,还是会感动,也有了不一样的收获。 ...
    在水一方_y阅读 1,287评论 0 0
  • 不知何时开始,渐渐习惯并喜欢上了自己一个人的生活方式。 喜欢一个人吃饭,找个相对不起眼的角落,找几篇自己喜爱的文章...
    双子男的故事阅读 2,688评论 1 7
  • 刘婷网中第11期坚持分享第553天2020.02.15 邱寒春老师的分享: 1.接纳 在当下关注对方的感受,听到他...
    天然去雕饰_ab82阅读 1,924评论 0 0