Scala学习系列一
一 scala介绍 Scala是一门以java虚拟机(JVM)为目标运行环境并将面向对象和函数式编程的最佳特性结合在一起的静态类型编程语言。
1) Scala 是一门多范式 (multi-paradigm) 的编程语言,Scala支持面向对象和函数式编程
2) Scala源代码(.scala)会被编译成Java字节码(.class),然后运行于JVM之上,并可以调用现有的Java类库,实现两种语言的无缝对接。
3) Scala 单作为一门语言来看, 非常的简洁高效
4) Scala 在设计时,马丁·奥德斯基 是参考了Java的设计思想,可以说Scala是源于java,同时马丁·奥德斯基 也加入了自己的思想,
将函数式编程语言的特点融合到JAVA中, 因此,对于学习过Java的同学,只要在学习Scala的过程中,搞清楚Scala 和 Java相同点和不同点,
就可以快速的掌握Scala这门语言
二 windows安装sacla开发环境:
Scala需要Java运行时库,安装Scala需要首先安装JVM虚拟机并配置好,推荐安装JDK1.8
在 http://www.scala-lang.org/ 下载Scala2.11.8程序安装包
安装&配置
1. 配置JDK的环境变量 JAVA_HOME
2. 配置Scala的环境变量SCALA_HOME
3. 将Scala安装目录下的bin目录加入到PATH环境变量
在PATH变量中添加:%SCALA_HOME%\bin
4. 在命令行窗口中输入“scala”命令打开scala解释器(REPL)
出现下面的内容表示Scala已经正确的执行
idea中配置:

idea开发scala第一个项目:
首先创建一个java的maven项目。然后配置:

开发第一个程序:


就可以创建了:

看运行结果:

scala是一个完全的面向对象语言,来解释下代码具体含义:
package com.cxy.scala
object Abc{
//scala编译源码中包含了main方法,再编译后自动形成public static main
//scala再编译源码时候,会生成两个字节码文件,静态的main方法执行另外一个字节码文件中
//成员main方法
//scala是完全面向对象的语音,没有静态方法,只能通过模拟僧从静态方法
//编译时,将当前类生成一个特殊的类,,Abc$,然后创建对象来调用这个对象的main方法
//一般情况下,将加$符号的类对象,称之为“半生对象”
//半生对象,就可以通过类名来访问,来模拟java中的静态方法
//伴生对象,使用object声明
//public static void main (String[] agrs){
// 方法体
// }
//scala中没有public关键字,默认所有的访问类权限都是公共的
//void, static,也是没有这个关键字,
//scala 中使用unit来模拟void关键字
//scala中声明方法采用关键字def
//方法后面的小括号,参数类表,
//scala中,参数类表的声明方式和java中不一样
//scala只关注变量名。java中:String 参数名
//scala中 参数名:类型
//java中方法得声明和方法体直接连接
//scala中将方法的声明和方法题是通过等号连接
//scala中将方法的返回值类型防止再方法声明的后面使用冒号连接的
def main(args: Array[String]): Unit = {
println("Hello World")
}
}
看代码中的注释,就可以明白了
所以不做太多的阐述了
1) 打开IDEA工具,如图:点击Configure
Scala学习系列一的更多相关文章
- Scala学习系列(一)——Scala为什么是大数据第一高薪语言
为什么是Scala 虽然在大数据领域Java的使用更普及,Python也有后来居上的势头,但Scala一直有着不可动摇的地位.我们熟悉的Spark,Kafka,Flink都是由Scala完成了其核心代 ...
- scala学习系列二
一 scala语言开发注意事项: 1 Scala程序的执行入口是main()函数 2 Scala语言严格区分大小写. 3 Scala方法由一条条语句构成,每个语句后不需要分号(Scala语言会在每行后 ...
- Scala学习系列(三)——入门与基础
本课程源码共享于 https://github.com/tree1123/learning-scala 首先,打开IDEA编辑器的SbtExampleProject项目,我们将在这个项目下进行练习 本 ...
- scala学习笔记
一 入门 为了增加编程趣味和技能,学习新语言,体会函数式编程和简易的并发管理模型,了解日渐活跃的Spark,尝试下Scala.Scala = Scalable language,作者是Martin O ...
- 大数据学习系列之五 ----- Hive整合HBase图文详解
引言 在上一篇 大数据学习系列之四 ----- Hadoop+Hive环境搭建图文详解(单机) 和之前的大数据学习系列之二 ----- HBase环境搭建(单机) 中成功搭建了Hive和HBase的环 ...
- 大数据学习系列之六 ----- Hadoop+Spark环境搭建
引言 在上一篇中 大数据学习系列之五 ----- Hive整合HBase图文详解 : http://www.panchengming.com/2017/12/18/pancm62/ 中使用Hive整合 ...
- 大数据学习系列之七 ----- Hadoop+Spark+Zookeeper+HBase+Hive集群搭建 图文详解
引言 在之前的大数据学习系列中,搭建了Hadoop+Spark+HBase+Hive 环境以及一些测试.其实要说的话,我开始学习大数据的时候,搭建的就是集群,并不是单机模式和伪分布式.至于为什么先写单 ...
- Git学习系列之如何正确且高效地将本地项目上传到Github(图文详解)
不多说,直接上干货! 首先你需要一个Github账号,所以还没有的话先去注册吧! https://github.com/ 见 如何走上更高平台分享传递干货知识:(开通个人Github面向开源及私有软件 ...
- Git学习系列之Windows上安装Git详细步骤(图文详解)
前言 最初,Git是用于Linux下的内核代码管理.因为其非常好用,目前,已经被成功移植到Mac和Windows操作系统下. 鉴于大部分使用者使用的是Windows操作系统,故,这里详细讲解Windo ...
随机推荐
- Java基础(二十九)Java IO(6)对象序列化(Object Serialization)
参考之前整理过的Java序列化与反序列化:https://www.cnblogs.com/BigJunOba/p/9127414.html 使用对象输入输出流可以实现对象序列化与反序列化,可以直接存取 ...
- C#控件的简单应用
listview 创建columns: ImageList imgList = new ImageList(); imgList.ImageSize = , ); FaceListview.Small ...
- fenby C语言 P11
else {} if {} #include int main() { int a=15; if(a%2==0) { printf("我是偶数!"); }else { printf ...
- 二叉树,红黑树,B树,B+树
1.不要认为红黑树仅仅是在二叉树的节点上涂上颜色,他们最根本的区别是,红黑树根据节点涂色的约束限制,最终形成的树的结构与普通二叉树不同,最重要的是,其树的高度大大缩短,从而在查找.增删改等方面提高效率 ...
- 不用循环控制、条件控制、三目运算符 实现阶乘n!
long func(int n) { ( n <= 1 && (n=1) ) || ( n*=func(n-1)); return n; } template<int N& ...
- Web for pentester_writeup之Code injection篇
Web for pentester_writeup之Code injection篇 Code injection(代码注入) Example 1 <1> name=hacker' 添加一个 ...
- 【建站02】WordPress主题设置
大家好,我是帝哥.相信很多朋友看了我上一篇文章的介绍之后已经可以搭建自己的个人网站了,但是网站的功能和美观程度都还是有所欠缺的,现在呢,再给大家大概的介绍一些如何美化自己的网站,当然了,这个过程也是很 ...
- python super原理,不是指父类
class a(object): def __init__(self): print('in a') class b(a): def __init__(self): print('in b') sup ...
- 5. SOFAJRaft源码分析— RheaKV中如何存放数据?
概述 上一篇讲了RheaKV是如何进行初始化的,因为RheaKV主要是用来做KV存储的,RheaKV读写的是相当的复杂,一起写会篇幅太长,所以这一篇主要来讲一下RheaKV中如何存放数据. 我们这里使 ...
- NOIP模拟 40
考得更嘛也不是了. 不过如果不犯任何低错的话.. T1 我神奇地想要缩减码量 比如想把尽量多的$b[i]-1$省掉 于是求$b[i]$的时候先减了个一 本来是正的 减完就忘了他应该是非负的了 于是线段 ...

