
Scala
文章平均质量分 80
Scala
韩家小志
这个作者很懒,什么都没留下…
展开
-
scala--正则表达式-★★
正则表达式-★★Regex类Regex类scala中提供了Regex类来定义正则表达式要构造一个Regex对象可以使用new Regex的方式,或者直接使用String类的r方法即可val regex1 = new Regex(""“正则表达式”"")val regex2 = “”“正则表达式”"".r //建议使用三个双引号来表示正则表达式,不然就得对正则中的反斜杠来进行转义findAllMatchIn方法使用findAllMatchIn方法可以获取到所有正则匹配到的字符串原创 2021-02-25 21:41:55 · 181 阅读 · 0 评论 -
scala--隐式转换和隐式参数-★★★
隐式转换和隐式参数隐式转换隐式参数java中没有隐式转换和隐式参数Java中如果要实现得使用动态代理/AOP等技术概述Scala提供的隐式转换和隐式参数功能非常具有特色,也是Java等编程语言所没有的功能。可以将某种类型的对象转换成指定类型或者是给一个类型增加新的方法(可以不修改原来的代码而为代码增加新功能)后面在学习Akka、Spark、Flink等都会看到隐式转换和隐式参数的身影,可以实现非常强大且特殊的功能。隐式转换所谓隐式转换,是指以implicit关键字声明的带有单个参数原创 2021-02-25 21:41:36 · 149 阅读 · 0 评论 -
scala--模式匹配-★★★
模式匹配-★★★Java中的switch-case--了解即可-★Scala中的模式匹配-★★★补充:Option类型补充:异常处理扩展:偏函数扩展:提取器Java中的switch-case–了解即可-★只能按顺序匹配简单的数据类型和表达式(支持:byte、short、int、char、String、枚举,不支持long)相对而言,Scala中的模式匹配math-case的功能则要强大得多,几乎可以在match中使用任何类型、应用到更多场合并且Scala还提供了样例类,对模式匹配进行了优化,可以快原创 2021-02-25 21:41:05 · 133 阅读 · 0 评论 -
scala--Akka并发编程-了解-★
Akka并发编程-了解-★概述Akka的特性应用编程模型-了解API-了解-不用记准备环境Akka案例-1-简单RPC-尽量掌握流程-★★需求--掌握代码实现-Master代码实现-WorkerAkka案例-2-模拟SparkRPC通信-尽量掌握流程-★★需求分析-掌握-★★代码实现-1-样例类代码实现-2-信息存储类代码实现-3-Master代码实现-4-Worker概述Akka是基于Scala的Actor-API做进一步封装,实现的一个并发编程框架!可以让并发编程更简单!—但是实际使用起来好像并原创 2021-03-07 16:02:06 · 309 阅读 · 0 评论 -
scala--Actor并发编程-了解
Actor并发编程-了解Actor概述Actor介绍/说明Actor VS Java多线程Java中并发:Actor并发编程模型Actor发送消息的方式准备环境方式一:方式二:方式三:入门案例-1-创建Actor入门案例-2-发送和接收消息入门案例-3-循环发送接收消息入门案例-4-复用线程门案例-5-使用样例类发送复杂消息Actor-案例-WordCount-掌握-★★★★需求分析Actor概述接收消息Actor中使用receive方法来接收消息,需要给receive方法传入一个偏函数注意原创 2021-03-07 16:01:56 · 313 阅读 · 0 评论 -
scala--高阶函数-闭包-柯里化
高阶函数函数作为值、作为参数、匿名函数-★★★★闭包-★Scala中的闭包扩展-Java中的闭包-了解即可柯里化Scala混合了面向对象和函数式的特性,在函数式编程语言中,函数是头等公民我们通常将可以作为参数传递到方法中的表达式叫做函数将能够接收函数作为参数或者返回函数的函数,叫做高阶函数高阶函数包含:作为值的函数、作为参数的函数、匿名函数、闭包、柯里化等。函数作为值、作为参数、匿名函数-★★★★完整语法:val函数名称 :(参数类型)=>函数返回值类型 = (参数名称:参原创 2021-02-25 21:42:09 · 279 阅读 · 0 评论 -
Scala--泛型-★★
泛型Java中的泛型Scala中的泛型类和泛型方法-能掌握更好-★★Scala中的泛型上下界-能掌握更好-★★Scala中的协变、逆变、非变-了解-★概念面试题Scala中的泛型和Java中的泛型类似,都是用来进行类型约束的父类类型可以接收子类对象(. getclass得到的仍然是子类字节码)但是Scala中的泛型比Java中的更加强大!Java中的泛型通过几个面试题来复习package cn.hanjiaxiaozhi.genericdemo;import java.util.A原创 2021-02-25 21:41:18 · 133 阅读 · 0 评论 -
scala--面向对象-样例类-★★★★
面向对象-样例类-★★★★Java中的JavaBeanScala中的样例类case classJava中的JavaBean在Java中,如果要对数据进行封装,如封装学生对象信息,得创建如下的Student类package cn.hanjiaxiaozhi.caseclassdemo;/** * Author hanjiaxiaozhi * Date 2020/7/17 11:10 * Desc */public class Student_Java { private Str原创 2021-02-25 21:40:45 · 99 阅读 · 0 评论 -
scala--面向对象-特质-★★★
面向对象-特质-★★★Java8中的接口-★Trait作为接口使用-掌握-★★★Trait可以继承Class-了解-★对象混入Trait-了解-★trait的构造机制-看过就行1)语法详解2)代码演示扩展:Trait实现设计模式-看过就行1)语法详解2)代码演示Java7的接口:只能定义字段和抽象方法Java8的接口:可以定义字段和抽象方法,和带实现的默认方法那么Scala中的特质trait类似Java8中的接口interface也就是运行定义抽象方法和普通方法(带有实现的方法)Java8中的接原创 2021-02-25 21:40:30 · 139 阅读 · 0 评论 -
Scala--apply()与unapply()的用法
@[TOC](Scala apply()与unapply()的用法)apply()与unapply()apply方法接受构造参数变成对象而unapply方法接受一个对象,从中提取值。apply方法通常,在一个类的伴生对象中定义apply方法,在生成这个类的对象时,就省去了new关键字。apply方法会调用伴生类Car的构造方法创建一个Car类的实例化对象unapply方法可以认为unapply方法是apply方法的反向操作,apply方法接受构造参数变成对象,而unapply方法接原创 2021-02-25 21:40:18 · 350 阅读 · 0 评论 -
scala--面向对象-继承-★★★★
面向对象-继承-★★★extends、override、superextendsverridesuper扩展:protected说明类型判断、获取、转换构造器执行顺序抽象类扩展:匿名内部类extends、override、superextendsScala 中的继承与 Java 一样也是使用 extends 关键字;子类可以继承或覆盖父类的 field 和 method ,也可以实现子类特有的 field 和methodverrideScala 中,如果子类要覆盖父类中的字段或方法,要使用原创 2021-02-25 21:40:02 · 99 阅读 · 0 评论 -
scala--面向对象-Object-★★★★
面向对象-Object-★★★★作为程序的入口1)语法详解作为工具类作为伴生对象可以提供apply和update方法作为程序的入口1)语法详解在 Scala 中和Java一样也必须要有一个 main 方法作为程序的入口,而且必须定义在 object 中除了自己实现 main 方法之外,还可以通过继承 App Trait(类似接口)来实现1.编写object继承App2.将需要写在 main 方法中运行的代码,直接作为 object 的 constructor 代码3.使用 args 接收传原创 2021-02-24 21:07:14 · 164 阅读 · 0 评论 -
Scala--面向对象-类-★★★
面向对象-类定义类扩展-`访问权限`扩展- `@BeanProperty:`构造器/构造方法扩展:构造器参数扩展:私有化主构造器定义类说明在Scala中,类并不用声明为public类型的(默认就是public)Scala源文件中可以包含多个类,所有这些类都具有共有可见性调用无参方法时,可以加(),也可以不加;如果方法定义中不带括号,那么调用时就不能带括号扩展-访问权限Java 中的访问控制权限,同样适用于 Scala,可以在成员前面添加private/protected关键字来控制原创 2021-02-24 01:33:52 · 95 阅读 · 0 评论 -
Scala--WordCount案例-★★★★★
WordCount案例v1-入门程序员版v2-初级程序员版v3-中级程序员版v4-高级程序员版--后续学习Actor可以实现多线程计算v1-入门程序员版package cn.hanjiaxiaozhi.exerciseimport scala.collection.mutable/** * Author hanjiaxiaozhi * Date 2020/7/16 9:27 * Desc 演示使用Scala函数式编程API完成WordCount-v1-入门程序员版 */object原创 2021-02-24 01:24:12 · 202 阅读 · 0 评论 -
Scala--API详解
API详解1)遍历-foreach2)过滤-filter3)排序-sorted-sortBy-sortWith1.默认排序 | sorted2.指定字段排序 | sortBy3.自定义排序 | sortWith4)映射-map5)扁平化映射-flatMap6)分组-groupBy7)规约/聚合-reducereduce、reduceLeft和reduceRight8)折叠-fold1)遍历-foreach说明之前,我们学习过了使用for表达式来遍历集合。我们接下来将学习scala的函数式编程,原创 2021-02-24 01:16:45 · 1205 阅读 · 0 评论 -
Scala--函数式编程-★★★★★
函数式编程-★★★★★为什么要用函数式编程函数式编程API-练习为什么要用函数式编程通过前面的学习我们知道对于集合的操作,如遍历可以使用for循环,但是太麻烦再比如要从list=(1,2,3,4,5,6,7,8,9,10)中筛选出奇数(也就是删除掉偶数),那么使用原来的方式不好操作如果非得要操作的话,得额外搞一个集合package cn.hanjiaxiaozhi.functionsimport scala.collection.mutable.ListBuffer/** * Aut原创 2021-02-24 00:57:34 · 119 阅读 · 0 评论 -
Scala--常用集合-★★★
常用集合集合分类集合继承体系不可变集合继承体系变集合继承体系Array数组定义数组操作遍历数组数组其他常用方法Seq/List/Queue/StackQueue:List:队列(Queue)栈(Stack)SetTupleMap集合遍历拉链操作这里学习的是Scala中的内置的集合和Java中的集合一样的使用,一些语法细节有点差异而已而且以后使用,使用的是Spark/Flink封装之后的分布式集合,很少使用原始的单机集合但是他们的函数式编程API和Spark/Flink中的类似,所以函数式编程更重要原创 2021-02-24 00:55:56 · 203 阅读 · 0 评论 -
scala--基础语法-方法-函数-★★★★★
方法-函数方法def 方法名(参数名1:参数类型1,参数名2:参数类型2):返回值类型 = {方法体}Scala之后的方法和Java中的方法一样,都可以用来将一些操作进行封装,如接收一些参数, 根据这些参数执行封装好的代码, 并将执行结果进行返回(如果有就返回)入门案例hanjiaxiaozhipackage cn.hanjiaxiaozhi.basic2/**Author hanjiaxiaozhiDate 2020/7/13 15:17Desc*/object _01_Meth原创 2021-02-24 00:26:47 · 188 阅读 · 0 评论 -
Scala--基础语法★★★★★
基础语法-变量-类型-操作符变量数据类型String类型操作符Java和Scala混编表达式块表达式判断条件判断循环循环中的break和continue实现break:实现continue:变量声明变量1.var&valvar:可以重新赋值val:不可变变量/只读变量,相当于java中final修饰的变量2.为减少可变性引起的bug,尽可能使用不可变变量3.type关键字可以声明一个类型别名4.懒值lazy适合初始化开销大的场景,只有这个变量真正被使用,变量的赋值代码才会真正原创 2021-02-24 00:15:19 · 149 阅读 · 0 评论 -
Scala--开发环境搭建
安装IDEA的Scala插件1.如果网络条件较好可以直接选择在线安装—耐心等待并重试多次直到安装成功并重启2.如果上面的安装不了,得自己下载对应版本的插件进行安装找到自己的idea对应的版本下载(Help-->About就可以看到idea的版本了)下载地址进行安装 (File–>Import Settings导入下载的压缩文件就可以了)如果不行可以这样导入来整一个Hello Scala新建项目新建object类package cn.test/**原创 2020-12-20 01:20:06 · 245 阅读 · 0 评论 -
Scala--运行环境搭建
需要安装什么?1.Scala是基于JVM的,所以肯定需要安装JDK(里面包括JVM)2.安装Scala的编译器、Scala库,其实也就是Scala-SDK下载安装地址可以通过下载地址,下载scala-2.11.8.msi双击傻瓜式安装就可以了(一般如果系统权限没有问题,那么会自动配置环境变量)https://www.scala-lang.org/download/all.html注意安装至纯英文目录下,不要有中文、空格等特殊字符配置环境变量如何验证?在cmd中能够进入scala命原创 2020-12-12 03:41:56 · 392 阅读 · 0 评论 -
Scala--介绍
介绍官网:https://www.scala-lang.org/Scala是运行在JVM之上的,支持面向对象和函数式编程的多范式编程语言,常用来构建高性能的程序/系统可以将Scala理解为Java的改进版,也是编译成.class字节码文件然后运行在JVM之上并且还支持Java的面向对象和函数式编程注意:Java8之后也可以支持了函数式编程,其实是抄袭Scala的Scala的作者是Java源码贡献者,一开始觉得Java很多地方不好,所以创建了Scala编程语言,后续Scala发展的不错,原创 2020-12-11 09:43:44 · 244 阅读 · 0 评论