1. Scala的集合体系结构 Scala中的集合体系主要包括(结构跟Java相似): Iterable(所有集合trait的根trait) Seq(Range.ArrayBuffer.List等) Set(HashSet.LinkedHashSet.SortedSet等) Map (HashMap.SortedMap.LinkedHashMap等) Scala中的集合分为可变和不可变两类集合,分别对应scala.collection.mutable和scala.collection.immut…
引言 Scala是一门既面向对象,又面向过程的语言,Scala的函数式编程,就是Scala面向过程最好的佐证.也真是因此让Scala具备了Java所不具备的更强大的功能和特性. 而之所以Scala一直没有替代Java,一是因为Java诞生早,基于Java开发了大量知名的工程,并且最重要的是Java现在不只是一门编程语言,而是一个庞大的技术生态圈,所以未来十年内Scala也不会完全替代Java,但是Scala会在自己特有的领域大发光彩.   将函数赋值给变量 Scala中函数是一等公民,可以独立定…
1- 集合类(collection) 系统地区分了可变的和不可变的集合. scala.collection包中所有的集合类 可变集合(Mutable) 顾名思义,意味着可以修改,移除或者添加一个元素. scala.collection.mutable 中的所有集合类: 不可变集合(Immutable) 对不可变集合的操作(修改,添加,删除某个集合元素),都是返回一个新的集合,原来的集合不会发生改变. 由于“永远不会被改变”的特性,可以说不可变集合是线程安全的. Scala在默认情况下采用的是不可…
函数式编程的崛起 函数式编程中的“值不可变性”避免了对公共的可变状态进行同步访问控制的复杂问题,能够较好满足分布式并行编程的需求,适应大数据时代的到来. 函数是第一等公民 可以作为实参传递给另外一个函数 可以作为返回值 可以赋值给变量 可以存储在数据结构里 def greeting() = (name: String) => { s"Hello" + " " + name } //> greeting: ()String => String gre…
Array 与Java的Array类似,也是长度不可变的数组,此外,由于Scala与Java都是运行在JVM中,双方可以互相调用,因此Scala数组的底层实际上是Java数组. 注意:访问数组中元素使用()而不是Java中的 [] scala> val a = new Array[String](10) a: Array[String] = Array(null, null, null, null, null, null, null, null, null, n ull) scala> val…
Java基础复习笔记系列之 网络编程 学习资料参考: 1.http://www.icoolxue.com/ 2. 1.网络编程的基础概念. TCP/IP协议:Socket编程:IP地址. 中国和美国之间,海底光缆是如何横跨太平洋的.“所谓的铺设,就是直接扔进海里,只不过再扔之前需要勘探光缆经过的地区的年水流数据,海域水深等情况,基本都是扔在水比较浅且水流平稳的地区.”目前,同样有卫星无线通信. 网络通信的协议约束:通信协议的分层思想(编程的时候,无需了解光缆,还是宽带): 在网络编程中,有两个问…
  本文是针对于java8引入函数式编程概念以及stream流相关的一些简单介绍 什么是函数式编程?   java程序员第一反应可能会理解成类的成员方法一类的东西 此处并不是这个含义,更接近是数学上的函数 看一下百度百科中关于函数的说明 函数的定义: 给定一个数集A,假设其中的元素为x. 现对A中的元素x施加对应法则f,记作f(x),得到另一数集B.假设B中的元素为y. 则y与x之间的等量关系可以用y=f(x)表示. 我们把这个关系式就叫函数关系式,简称函数. 函数概念含有三个要素:定义域A.值…
前言: 上一篇介绍了 函数回调,高阶函数以及函数柯里化等高级函数应用,同时,因为正在学习JavaScript·函数式编程,想整理一下函数式编程中,对于我们日常比较有用的部分. 为什么函数式编程很重要?       学习过C++,java这些面向对象编程语言,我们大概都知道面向对象编程就是把目标问题分成几个部分,实现各部分的功能,再组合成一个更强大的对象.虽说JavaScript不是面向对象编程语言(虽然ES6已经出现了Class类这种对象,在此暂且不说),但它却是一种完完全全支持函数式编程的语言…
引言 Scala提供的隐式转换和隐式参数功能,是非常有特色的功能.是Java等编程语言所没有的功能.它可以允许你手动指定,将某种类型的对象转换成其他类型的对象.通过这些功能可以实现非常强大而且特殊的功能. Scala的隐式转换,其实最核心的就是定义隐式转换函数,即implicit conversion function.定义的隐式转换函数,只要在编写的程序内引入,就会被Scala自动使用.在程序中使用到隐式转换函数参数类型定义的对象时,会自动将其传入隐式转换函数,转换为另外一种类型的对象并返回.…
Scala基础语法 Scala与JAVA的关系 Scala是基于Java虚拟机,也就是JVM的一门编程语言,所有Scala的代码都需要经过编译为字节码,然后交由Java虚拟机来运行. 所以Scala和JAVA是可以无缝互操作的,Scala可以任意调用Java的代码,这两种语言的关系事非常紧密的. Scala解释器的使用 REPL:Scala解释器也被称为REPL,会快速编译Scala代码为字节码,然后交给JVM来执行. 计算表达式:命令行内,键入Scala代码,解释器会直接返回结果给你(附带变量…