
scala安装、与java、jvm关系、源文件解析、伴生对象扩展说明
HelloScala.class - 分享类,包含伴生对象的实例。 HelloScala$.class - 单例模式饿汉式,实现静态功能。 下载并解压Scala-IntelliJ-Bin-2018.2.3.zip文件。 在IDEA中,点击菜单栏的“文件” > “设置” > “插件”。 点击“安装从磁盘”选项,选择上述压缩文件。
发布日期:2021-05-10 03:44:33
浏览次数:20
分类:精选文章
本文共 1561 字,大约阅读时间需要 5 分钟。
Scala安装
安装Scala-2.11.8.msi时,请将安装路径设为D:\ProgramFile\scala。
安装完成后,在环境变量中设置SCALA_HOME为D:\ProgramFile\scala,Path为%SCALA_HOME%\bin。
为了验证安装是否成功,可以打开命令工具,输入以下命令:
scala -version
Scala、Java、JVM关系图
Scala适合在Java虚拟机(JVM)上运行,兼具面向对象和函数式编程的特点,同时支持静态类型编程。它的源文件(.scala)会被编译成Java字节码文件(.class),运行于JVM上。通过这种方式,Scala可以无缝与Java类库进行交互。
Scala语言特点
Scala是一门多范式语言,支持面向对象和函数式编程,并将两种范式无缝结合。它的简洁高效特性使其成为现代编程的理想选择。尽管支持静态类型,但Scala在灵活性方面也有出色的表现,适合处理复杂的编程需求。
Scala源文件和运行
编写Scala程序时,通常会创建一个文件名为HelloScala.scala的源文件。以下是一个简单的示例:
object HelloScala { def main(args: Array[String]): Unit = { println("HelloScala") }}
当你编译并运行这个文件时,你会看到如下结果:
HelloScala
反编译工具
Scala程序在编译后会生成以下两个类文件:
Scala在IDEA中编写
在IDEA中安装Scala插件以支持Scala开发。安装步骤如下:
完成安装后,您可以在IDEA中直接编写Scala代码。
编写代码示例
编写一个基础的Scala程序:
object First { def main(args: Array[String]): Unit = { println("hello scala") System.out.println("hello") }}
语法说明
Scala代码中,`object`关键字用于声明伴生对象(单例对象),`main`方法是程序的入口点。 Scala的语法与Java类似,但更加简洁和灵活。函数定义使用`def`关键字,参数和返回类型放在括号内,以空格分隔。
以下是一个简单的面向对象示例:
class Student(name: String, age: Int) { def printInfo(): Unit = { println(name + " " + age + " " + Student.school) }}object Student { val school: String = "atguigu" def main(args: Array[String]): Unit = { val alice = new Student("alice", 20) val tom = new Student("tom", 19) alice.printInfo() tom.printInfo() }}
发表评论
最新留言
初次前来,多多关照!
[***.217.46.12]2025年04月13日 16时39分33秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
嵌入式系统试题库(CSU)
2019-03-12
【自考】之信息资源管理(一)
2019-03-12
setup facatory9.0打包详细教程(含静默安装和卸载)
2019-03-12
Linux kernel pwn --- CSAW2015 StringIPC
2019-03-12
编译android源代码(aosp)
2019-03-12
IDEA 找不到 Persistence窗口解决办法
2019-03-12
C++ Primer Plus读书笔记:循环读取(错误处理)
2019-03-12
伴随矩阵和逆矩阵的关系证明
2019-03-12
Form窗体属性
2019-03-12
解决Eclipse加载图片或网页出现404错误
2019-03-12
vue 错误收集
2019-03-12
Java选择排序算法实现
2019-03-12
00010.02最基础客户信息管理软件(意义类的小项目,练习基础,不涉及数据库)
2019-03-12
00013.05 字符串比较
2019-03-12
LeetCode: 138. 复制带随机指针的链表(中等)[DFS, 迭代]
2019-03-12
Effective Java 读书笔记
2019-03-12
SpringBoot使用@Email报错误
2019-03-13
Rabbitmq的内存磁盘监控
2019-03-13