
scala编程
文章平均质量分 57
梦飞天
这个作者很懒,什么都没留下…
展开
-
第105讲:解析Akka中的子Actor及其代码学习笔记
第105讲:解析Akka中的子Actor及其代码学习笔记akka中为什么会有子actor因为akka中的actor是分层结构的,任何actor在akka中都属于具体的层次。为什么需要子actor,什么时候需要应该创建子actor1当任务有多个子任务时2某actor由父acotr执行时可能 比较容易出错,将具体任务进行隔离。因为使用子actor时,当子actor崩溃时,可通过原创 2015-09-23 22:34:08 · 1336 阅读 · 0 评论 -
第92讲:Akka第一个案例动手实战开发环境的搭建,第93讲:Akka第一个案例动手实战开发消息实体类学习笔记
第92讲:Akka第一个案例动手实战开发环境的搭建学习笔记 本讲主要讲解如何利用IDEA创建项目。开发akka最好用IDEA1.IDEA自动集成了插件,2.IDEA越用越智能 1)创建maven工程2)pom.xml配置 第93讲:Akka第一个案例动手实战开发消息实体类学习笔记 mapActor的重要功能就是把收到的消息进行单词切分。Re原创 2015-09-06 22:38:47 · 1069 阅读 · 1 评论 -
第107讲:Akka中的Future使用代码实战详解学习笔记
第107讲:Akka中的Future使用代码实战详解学习笔记本讲分享akka中消息发送的第二种方式:send and receive给actor发送消息后会等待目标actor的回复用future等待目标actor的回复actorA ask actorB,用future来接收actorB的内容。接收到future后可以提取出future的内容。 import akka.u原创 2015-09-25 23:26:16 · 1084 阅读 · 0 评论 -
第97讲:使用SBT开发Akka第一个案例环境搭建详解学习笔记
第97讲:使用SBT开发Akka第一个案例环境搭建详解学习笔记 使用IDEA搭建scala SBT开发环境 1.下载IDEA. Windows版:http://download-cf.jetbrains.com/idea/ideaIC-14.1.4.exe2.IDEA默认没有安装SBT,所以需要安装SBT。打开IDEA,选择File->Settings 选择Plugins,在搜索栏打入S原创 2015-09-10 21:39:43 · 1812 阅读 · 0 评论 -
第90讲:基于Scala的Actor之上的分布式并发消息驱动框架Akka初体验学习笔记
第90讲:基于Scala的Actor之上的分布式并发消息驱动框架Akka初体验学习笔记akka在业界使用非常广泛spark背后就是由akka驱动的要写消息驱动的编程模型都首推akka下面将用30讲讲解akka本讲主要讲两部分内容:1.akka的重大意义2.akka与scala的actor Spark源码中使用akka使用鉴赏:在spark中有200行左右代码原创 2015-08-20 21:01:49 · 1573 阅读 · 0 评论 -
第58讲:Scala中Abstract Types实战详解学习笔记
第58讲:Scala中Abstract Types实战详解学习笔记抽象类型:在trait class/Abstract Class中定义的类型是抽象的。 trait Reader{ type In 表明是定义类型,但没有指明是什么类型。必须在trait的实现中定义具体的类型。 //是对抽象类型进行了限定。 type Contents def read原创 2015-09-04 21:30:45 · 516 阅读 · 0 评论 -
第106讲:解析Akka中的消息的不同发送方式方式详解学习笔记
第106讲:解析Akka中的消息的不同发送方式方式详解学习笔记 akka中有两种消息发送方式:1.发送后立即忘记(Fire and Forget)2.发送消息后等待目标actor回复(Send and Receive) 所有消息都是immutable(不可变的),异步的。发送消息的方法:java是tell,scala是! 以上内容是从王家林老师DT大数据课程第1原创 2015-09-24 21:37:20 · 1187 阅读 · 0 评论 -
第59讲:Scala中隐式转换初体验实战详解以及隐式转换在Spark中的应用源码解析学习笔记
第59讲:Scala中隐式转换初体验实战详解以及隐式转换在Spark中的应用源码解析学习笔记隐式转换或隐式参数都是为了增强类库功能的方式。在java/C#中增强类库功能的方式只是使用工具类或继承的方式,scala中是隐式转换或隐式参数的方式。隐式转换可以把一个类的实例当作另一个类的实例。从使用者角度使用者用的是当前的类,其实却用的是另一个类的方法。不需要修改原来的类就可以把新方原创 2015-09-05 21:36:46 · 891 阅读 · 0 评论 -
第89讲:Scala中使用For表达式实现内幕思考学习笔记
第89讲:Scala中使用For表达式实现内幕思考学习笔记本讲对for表达式实现的内幕机制进行更加深入的探讨前面讲了for的使用场景具体例子 查询等用for实现map filter从代码角度看for实现了map flatMap foreach withFilter等, trait FilterMonadic[+A, +Repr] extends Any { def m原创 2015-08-19 20:37:57 · 737 阅读 · 0 评论 -
第57讲:Scala中Dependency Injection实战详解学习笔记
第57讲:Scala中Dependency Injection实战详解学习笔记1.Dependency Injection解析2.Dependency Injection代码实战spring/OSJI都用了依赖注入写程序或系统时,可能由不同组件组装起来的,不同组件间是有依赖关系的。组件依赖的其他组件的接口,实际对其他组件的依赖关系是在程序运行时注入的。所以叫依赖注入原创 2015-09-03 13:06:44 · 644 阅读 · 0 评论 -
第96讲:Akka第一个案例动手实战main方法实现中ActorSystem等代码详解学习笔记
第96讲:Akka第一个案例动手实战main方法实现中ActorSystem等代码详解学习笔记本讲讲解main方法的具体实现。1.ActorSystem : 通过ActorSystem.create(name: String)创建ActorSystem2.main入口代码实现详解 ActorSystem可以看作为container级别(容器型)的内容。其中有很多Actor实例。原创 2015-09-09 21:33:19 · 912 阅读 · 0 评论 -
第95讲:Akka第一个案例动手实战MasterActor代码详解学习笔记
第95讲:Akka第一个案例动手实战MasterActor代码详解学习笔记 1.MasterActor的作用2.MasterActor代码实现详解 MasterActor的作用:1.实例化MapActor/ReduceActor/AggregateActor2.把MapActor要处理的内容发给MapActor public class MasterActor原创 2015-09-08 22:34:49 · 800 阅读 · 0 评论 -
第78讲:Type与Class实战详解学习笔记
第78讲:Type与Class实战详解学习笔记本讲主要讲解scala中的type与class的区别由于在scala中非常强调泛型或者说类型系统Java和scala是基于jvm的,java1.5以前具体对象的类型与class一一对应后来引入泛型,如字符串数组或整数数组,都是数组但其实类型是不一样的,在虚拟机内部,并不关心泛型或类型系统对泛型支持是基于运行时角度考虑的,在虚原创 2015-08-06 21:46:54 · 606 阅读 · 0 评论 -
第56讲:Scala中Self Types实战详解学习笔记
第56讲:Scala中Self Types实战详解学习笔记本讲主要内容:1. Scala的Self Type解析2. Self Type代码实战详解 class self { self => //self是this的别名。每一个类本身都有一个this指针指向自己的实例。 //=>就是把this指针命名了别名。 val tmp="Sc原创 2015-09-02 21:31:07 · 1113 阅读 · 0 评论 -
第88讲:Scala中使用For表达式实现map、flatMap、filter学习笔记
第88讲:Scala中使用For表达式实现map、flatMap、filter学习笔记本讲用for循环实现map,flatMap,filter等高阶函数for循环都可以用map,flatMap,filter来实现下面用实例实现map,flatMap,filter这些高阶函数:object For_Advanced { def main(args: Array[String])原创 2015-08-18 21:08:29 · 2158 阅读 · 0 评论 -
第98讲:使用SBT开发时动手解决rt.jar中CharSequence is broken等问题学习笔记
第98讲:使用SBT开发时动手解决rt.jar中CharSequence is broken等问题学习笔记 几乎所有从IDEA官网上下载安装在win上,采用默认方式自动运行的都 会遇到这个问题。error while loading CharSequence。class file "D:\IntelliJ IDEA Community Edition 14.1.4\jre\lib\rt原创 2015-09-11 22:49:37 · 1574 阅读 · 1 评论 -
第108讲:Akka中的Actor消息的处理、消息回复、消息转发学习笔记
第108讲:Akka中的Actor消息的处理、消息回复、消息转发学习笔记本讲主要讲解:1.Actor消息的处理2.Actor消息的回复3.Actor消息的转发处理消息一般通过复写receive方法,通过模式匹配的方式。/** * This defines the initial actor behavior, it must return a partial funct原创 2015-09-26 21:33:28 · 1582 阅读 · 0 评论 -
第91讲:Akka第一个案例动手实战架构设计学习笔记
第91讲:Akka第一个案例动手实战架构设计学习笔记接下来几讲用akka编写案例本期内容:1.akka第一个动手案例介绍2.akka第一个动手案例架构设计 本例是单词计数,输入具体内容,akka对单词进行计数。输入内容:The quick brown fox tried to jump over the lazy dog and fell on the dogA原创 2015-08-22 12:23:06 · 1386 阅读 · 0 评论 -
第60讲:Scala中隐式参数实战详解以及隐式参数在Spark中的应用源码解析学习笔记
第60讲:Scala中隐式参数实战详解以及隐式参数在Spark中的应用源码解析学习笔记1.scala隐式参数实战代码详解2.隐式参数在spark中的应用源码详解隐式参数:参数前有implicit。编译器会检查谁有implicit的值,如果有这样的值就作为默认值object Context_Implicits{ implicit val defual原创 2015-09-18 21:30:11 · 595 阅读 · 0 评论 -
第112讲:为什么会有第一代大数据技术Hadoop和第二代大数据技术Spark?学习笔记
第112讲:为什么会有第一代大数据技术Hadoop和第二代大数据技术Spark?学习笔记本讲开始hadoop深入浅出实战经典部分本讲内容:1.第一代大数据技术Hadoop2.第二代大数据技术Spark hadoop开启了人们大规模普及化使用大数据的历史阶段。但hadoop在计算方面有问题,所以更多用spark来做大数据计算。大数据要解决的三大核心问题:存储、多种计算原创 2015-10-08 23:01:47 · 2444 阅读 · 0 评论 -
第104讲:通过案例解析Akka中的Actor的不同类型的Constructor学习笔记
actor的构造器有两种:1默认:构造时把actor具体的类名称传入2非:构造实例时传入参数,助于特殊初始化,如可以在构造器中传入其他actor的actorRef(引用),这样就可以在自己的receive中给其他actor发消息。 val aggregateActor:ActorRef = context.actorOf(Props[AggregateActor],name="aggregate")构造默认构造器 val reduceActor:ActorRef = context.act原创 2015-09-17 20:46:39 · 877 阅读 · 0 评论 -
第103讲:通过案例解析Akka中的Actor的定义和创建学习笔记
第103讲:通过案例解析Akka中的Actor的定义和创建学习笔记 actor的定义需要借助ActorSystem:val _system = ActorSystem("HelloAkka")val master = _system.actorOf(Props[MasterActor],name = "master") ActorSystem相当于一个容器,内部类似树状结构原创 2015-09-16 21:45:08 · 848 阅读 · 0 评论 -
第102讲:通过案例解析Akka中的Actor运行机制以及Actor的生命周期学习笔记
第102讲:通过案例解析Akka中的Actor运行机制以及Actor的生命周期学习笔记Actor是构建akka程序的核心基石,akka中actor提供了构建可伸缩的,容错的,分布式的应用程序的基本抽象,actor是异步的,非阻塞式的,事件驱动的轻量级的模型, actor中都有自己的成员,也有receive方法,在receive中处理具体的逻辑。 actor间沟通只能通过发消原创 2015-09-15 21:55:34 · 842 阅读 · 0 评论 -
第62讲:Scala中上下文界定内幕中的隐式参数与隐式参数的实战详解及其在Spark中的应用源码解析学习笔记
第62讲:Scala中上下文界定内幕中的隐式参数与隐式参数的实战详解及其在Spark中的应用源码解析学习笔记本讲通过隐式参数和隐式转换的角度讲解上下文界定。class Pair_Implicits[T: Ordering](val first:T, val second:T){//Pair_Implicits是泛型,T:Ordering是说ordering也是泛型,存在一个隐式值:Or原创 2015-09-30 21:27:51 · 779 阅读 · 0 评论 -
第101讲:使用SBT开发Akka第一个案例源码解析MapActor、ReduceActor、AggregateActor学习笔记
第101讲:使用SBT开发Akka第一个案例源码解析MapActor、ReduceActor、AggregateActor学习笔记1)MapActor:package akka.first.app.scala.actorsimport scala.actors._class MapActor(reduceActor: ActorRef) extends Actor{原创 2015-09-14 21:59:04 · 575 阅读 · 0 评论 -
第111讲:Akka中的Actor中用become和unbecome动态切换receive的具体处理逻辑实战学习笔记
第110讲:Akka中的Actor中用become和unbecome动态切换receive的具体处理逻辑实战学习笔记本期内容:1.动态切换actor处理逻辑分析2.Become和unbecome代码实战可以改变actor具体处理业务逻辑的代码,而且是动态改变。可以借助akka提供的become和unbecome机制动态地切换当前actor的处理逻辑。代码:Case cl原创 2015-09-29 21:29:14 · 1531 阅读 · 0 评论 -
第100讲:使用SBT开发Akka第一个案例源码解析消息、main入口、MasterActor学习笔记
第100讲:使用SBT开发Akka第一个案例源码解析消息、main入口、MasterActor学习笔记本讲主要对Akka第一个案例源码的消息、main入口、MasterActor的scala代码进行解析。 下图是HelloAkkaWithSBT案例的文件结构: 下面是消息的scala代码解析: package akka.dt.app.messages import java.util.{原创 2015-09-13 18:18:02 · 742 阅读 · 0 评论 -
第99讲:手动Artifacts打包并运行SBT开发Akka第一个案例学习笔记
第99讲:手动Artifacts打包并运行SBT开发Akka第一个案例学习笔记SBT可以自动打包编译运行,IDEA自身也有打包编译运行,为什么还要手动打包编译运行? 基于IDEA/SBT集成开始环境时,是在集成开始环境下的,有时希望把开发的项目打成jar包,在其他机器/命令终端/其他人运行,这时就需要打成jar包。如何将HelloAkkaWithSBT项目打成jar包呢? 1.点击File->P原创 2015-09-12 19:39:00 · 1043 阅读 · 0 评论 -
第110讲:Akka中的Actor的Monitoring初步解析学习笔记
第110讲:Akka中的Actor的Monitoring初步解析学习笔记本讲主要讲解actor的监控机制这和supervisor不同。Akka是由树状结构构成的分层结构。下层actor发生变化上层actor都可以感知到变化。假设stop上层actor时,下层actor会首先被stop,然后才是上层actor。 Monitor actor会监控worker actor,如原创 2015-09-28 21:23:13 · 836 阅读 · 0 评论 -
第94讲:Akka第一个案例动手实战MapActor、ReduceActor、AggregateActor代码详解学习笔记
MasterActor把字符串发给MapActor,MapActor把每一个单词都计数为1,统计之后MapActor直接把结果发给了ReduceActor,这就是一个local reduce的过程,一般都在一个jvm中,AggregateActor对所有ReduceActor的结果进行的全局统计也没有必须和MasterActor联系。这是内部处理逻辑,Master是负责调度的,MapActor/ReduceActor/AggregateActor是负责计算的。这样的方式逻辑更清晰,处理效率更高。原创 2015-09-07 22:58:44 · 1050 阅读 · 1 评论 -
第109讲:Akka中的Actor异步和同步停止方式实战详解学习笔记
第109讲:Akka中的Actor异步和同步停止方式实战详解学习笔记本讲内容:1.Actor异步停止方式2.Actor同步停止方式为什么要停止actor?Actor完成了自己的消息处理任务后,后续不再需要这个actor再继续处理工作,为了节省或回收系统资源,就有必须停止actor Actor在正式处理邮箱中具体的邮件以前会有preStart,在preStart中进行资源原创 2015-09-27 21:25:53 · 3393 阅读 · 0 评论 -
第45讲:Scala中Context Bounds代码实战及其在Spark中的应用源码解析学习笔记
第45讲:Scala中Context Bounds代码实战及其在Spark中的应用源码解析学习笔记本讲主要讲解scala中的上下文界定,本讲主要内容:1.Context Bounds代码实战2.Context Bounds在Spark中的广泛应用。 前面讲到视图界定:T 到V实际上存在隐式转换,Int转换为RichInt,RichInt符合类型变量的上界。所以在sc原创 2015-08-21 21:19:38 · 505 阅读 · 0 评论 -
第55讲:Scala中Infix Type实战详解学习笔记
第55讲:Scala中Infix Type实战详解学习笔记中值类型:infix type允许带两个类型参数的类型,以中值的方式表示。中值类型不仅用在泛型中,可以用在很多地方。object Infix_Type { def main(args: Array[String]){ object Log {def >>:(data:String):Log.type原创 2015-09-01 21:53:00 · 691 阅读 · 0 评论 -
第87讲:Scala中F使用For表达式做查询学习笔记
第87讲:Scala中F使用For表达式做查询学习笔记本讲主要讲使用For循环做查询一般都基于数据库、网络、文件存储/查询数据scala中用for循环查询和数据库查询类似 case class Book(title: String, authors: List[String])object For_Query { def main(args: Array[String原创 2015-08-17 21:44:31 · 509 阅读 · 0 评论 -
第72讲:Scala界面事件处理编程实战详解学习笔记
用户在点击一个界面时,要有一定响应,响应的过程就是事件处理的过程,要想完成一定的任务,需要以下主题:1.界面本身2.要有具体事件3.有代码关注事件4.对事件具体处理原创 2015-07-30 22:14:11 · 529 阅读 · 0 评论 -
第49讲:Scala中Variance代码实战及其在Spark中的应用源码解析学习笔记
第49讲:Scala中Variance代码实战及其在Spark中的应用源码解析学习笔记本期内容:1.scala的variance代码实战2.spark中对variance的使用 泛型在具体使用时会有很多具体类型,具体类型会有一种关系,如果这种关系作用在泛型上是否还会有这种关系。 例如:有一个列表,是泛型的List[T],实际填充成类型A还有一个具体类型B,原创 2015-08-26 20:17:29 · 584 阅读 · 0 评论 -
第48讲:Scala类型约束代码实战及其在Spark中的应用源码解析学习笔记
第48讲:Scala类型约束代码实战及其在Spark中的应用源码解析学习笔记1.scala的类型约束代码实战2.scala的类型约束源代码解析3.spark中对类型约束的使用 //A =:= B //表示A类型赞同于B类型//A 表示A类型是B类型的子类型def rocky[T](i:T)(implicit ev: T //两个参数,第一个是i,每二个参数是隐原创 2015-08-25 21:22:36 · 528 阅读 · 0 评论 -
第83讲:Scala中List的实现内幕源码揭秘学习笔记
第83讲:Scala中List的实现内幕源码揭秘学习笔记本讲主要讲解List实现的具体内部的关键源码上讲讲了listbuffer对list的高效遍历,解决了堆栈溢出的问题和使用遍历时的效率问题scala中的list在后来的版本中都采用了这种方法。 toList不会低效,ListBuffer最后 一个元素是List的最后一个元素, /*Converts this buff原创 2015-08-11 21:57:27 · 870 阅读 · 0 评论 -
第71讲:Scala界面Panel、Layout实战详解学习笔记
结构化GUI应用程序的基本方式:由组件构成,如Frame,Panel,Label,Button的实例。组件有属性,可以被 应用程序定制。Panel组件可以在contents属性中包含多个其他组件,因而最终GUI应用程序是由一棵组件树构成的。原创 2015-07-29 21:04:53 · 921 阅读 · 0 评论 -
第82讲:Scala中List的ListBuffer是如何实现高效的遍历计算的?学习笔记
第82讲:Scala中List的ListBuffer是如何实现高效的遍历计算的?学习笔记本讲讲解对list集合类型的数据结构元素进行遍历访问时的效率问题,对比几种算法,引出ListBuffer使用时是如何高效操作list的。list/array对元素遍历是最基本的操作List与ListBuffer和java中的String与StringBuffer的设计很相似,List与Strin原创 2015-08-10 22:53:23 · 893 阅读 · 0 评论