Scala基础【HelloWorld代码解析,变量和标识符】

一 入门

1 hello scala world 代码解析

package com.hike.bigdata.scala.chapter01

/**
 * scala语言是基于java开发的
 *
 * package:java中的包
 *
 * object:声明一个对象,在编译时,会编译为两个类文件
 *         声明对象的类型为:当前对象+$
 *      java:
 *        User user = new User();
 *        user.setName();
 *      scala:
 *        Scala01_HelloWorld = new Scala01_HelloWorld$();
 *
 * Scala01_HelloWorld:对象名称
 *
 * def:声明方法的关键字
 *
 * main:scala程序的入口方法名,没有main,程序执行不了
 *
 * ():方法的参数列表
 *
 * args: Array[String]:参数
 *        java:
 *          String[] args,强类型语言,在运行之前就要确定变量是什么类型
 *                         在开发的过程中,变量名称比变量类型更重要
 *                         所以scala先写名称,在名称和类型之间加上冒号作为分隔符
 *        scala:
 *          args:Array[String]
 *            args:参数名
 *            Array[String]:参数类型
 *            : 分隔符
 *
 * Array[String]:Array是一个数组类型
 *                scala语言是一个完全面向对象的语言,所以万物皆对象
 *                数组也是对象,也有自己的类型,类型为:Array,这里的[]表示泛型
 *
 *                java中的数组:
 *                  String[]:String表示数组中元素的类型,[]表示数组,
 *                            数组在java中没有类型
 * : Unit =>    在scala中:
 *                  名称:类型
 *                  参数名:参数类型
 *                  变量名:变量类型
 *                  方法名:方法的返回值类型
 *
 *                Unit表示返回值类型,Unit是scala中新的类型,为了代替void关键字,表示没有返回值
 *                  void关键字的问题:返回有值,加上变量的类型,如int String
 *                                   返回无值,加上关键字,并不统一
 *                                   等于将关键字与类型等同,并不合理,所以有了Unit类型
 * =:赋值
 * 
 * {}:方法体
 *
 * System.out.println("Hello Scala World"):java代码
 *      scala语言基于java语言开发,所以大部分的java代码可以直接在scala中使用
 *
 * 代码可以不需要分号结尾,scala推荐一行代码中只有一个逻辑,则分号可以省略
 * 如果一行有多个逻辑那么需要加上分号
 */
object Scala01_HelloWorld {
   
  def main(args: Array[String]): Unit = {
   
    System.out.println("Hello Scala World")
  }
}

2 反编译

如果只是通过代码来进行语法的解析,并不能了解其真正的实现原理。scala语言是基于Java语言开发的,所以也会编译为class文件,那么我们可以通过反编译指令javap -v 类名 或 反编译工具jd-gui.exe查看scala编译后的代码,通过对比和java语言之间的关系,来掌握具体代码的实现原理。

3 关联源码

在使用Scala过程中,为了搞清楚Scala底层的机制,需要查看源码,那么就需要关联和查看Scala的源码包。

在这里插入图片描述

将源码下载下来,选择路径。

二 变量和数据类型

1 变量

变量是一种使用方便的占位符,用于引用计算机内存地址,变量创建后会占用一定的内存空间。基于变量的数据类型,操作系统会进行内存分配并且决定什么将被储存在保留内存中。因此,通过给变量分配不同的数据类型,可以在这些变量中存储整数,小数或者字母。

(1)变量声明

def main(args: Array[String]): Unit = {
   
      // TODO 变量
      // Java中变量声明: String name = "zhangsan";
      // scala中变量声明(1):var 变量名 :变量类型 = 变量值
      var name_var : String = "zhangsan"
      
      // 某些变量在某些场景中,初始化完成之后不能重新赋值
      // scala中变量声明(2):val 变量名 :变量类型 = 变量值
      val name_fin : String =
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

OneTenTwo76

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值