- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
Scala
程序设计
Java虚拟机多核编程实战
目录
第1章简介
第2章起步
第3章Scala步入正轨
第4章Scala的类
第5章自适应类型
第6章函数值和闭包
第7章Trait和类型转换
第8章使用容器
第9章模式匹和正则表达式
第10章并发编程
第H章与Java互操作
第12章用Scala做单元测试
第13章异常处理
第14章使用Scala
第1章简介
可以在JVM上编程的语言有很多。通过这本书,我希望让你相信花时间学习Scala是值得
的。
Scala语言为并发、表达性和可扩展性而设计。这门语言及其程序库可以让你专注于问题
领域,而无需深陷于诸如线程和同步之类的底层基础结构细节。
如今硬件已经越来越便宜,越来越强大。很多用户的机器都装了多个处理器,每个处理器
又都是多核。虽然迄今为止,Java对我们来说还不错,但它并不是为了利用我们如今手
头的这些资源而设计的。而Scala可以让你运用这些资源,创建高响应的、可扩展的、高
性能的应用。
本章,我们会快速浏览一下函数式编程和Scala的益处,为你展现Scala的魅力。在本书
的其他部分,你将学会如何运用Scala,利用这些益处。
1.1为何选择Scala
Scala是适合你的语言吗?
Scala是一门混合了函数式和面向对象的语言。用Scala创建多线程应用时,你会倾向于
函数式编程风格,用不变状态(immulablestate)①编写无锁(lock-free)代码。
Scala提供一个基于actor的消息传递(message-passing)模型,消除了涉及并发的痛
苦问题。运用这个模型,你可以写出简洁的多线程代码,而无需顾虑线程间的数据竞争,
以及处理加锁和释放带来的梦魇。把synchronized这个关键字从你的字典中清除,享受
Scala带来的高效生产力吧。
①对一旦创建出来,就不再改变其内容,这样的对就是不变的。这也就无需顾虑多线
程访问对时的竞争管理。Java的Siring就是不变对一个非常好的例子。
然而,Scala的益处并不仅限于多线程应用。你可以用它构建出强大而简洁的单线程应用,
或是多线程应用中的单线程模块。你很快就可以用上Scala的强大能力,包括自适应静态
类型、闭包、不变的容器以及优雅的模式匹配。
Scala对于函数式编程的支持让你可以写出简洁而有表现力的代码。感谢更高层的抽,
它让我们可以用更少的代码做更多的事情。单线程应用和多线程应用都可以从函数式风格
中受益o
函数式编程语言也为数不少。比如,Erlang就是一个很好的函数式编程语言。实际上,
Scala的并发模型同Erlang的非常相似。然而,同Erlang相比,Scala有两个显著的优
势。第一,Scala是强类型的,而Erlang不是。第二,不同于Erlang,Scala运行于JVM
之上,可以与Java很好地互操作。
就运用在企业级应用的不同层面而言,Scala这两个特性使其成为了首选。只要你愿意,
就可以用Scala构建整个企业级应用,或者,也可以把它和其他语言分别用在不同的层上。
如果有些层在你的应用中至关重要,你就可以用上Scala的强类型、极佳的并发模型和强
大的模式匹配能力。下图的灵感源自OlaBini的语言金字塔(参见附录A的“Fractal
Programming),它展现了Scala在企业级应用中与其他语言的配合。
Domain-SpecificLanguagesImplementedUsingScala.Groovy,Ruby,...
ManageIntensiveMetaprogramming
ConcurrencyPatternMatching/000DynamicLangslike
您可能关注的文档
最近下载
- 材料及配件采购方案.docx VIP
- 中国重症患者肠外营养治疗临床实践专家共识(2024).pptx VIP
- 2025年福建省中小学教师招聘考试真题及答案.docx VIP
- 人教版物理八上光的直线传播 (3).ppt VIP
- 2024年事业单位医疗卫生综合知识考试题库(含答案).pdf VIP
- 无痛纤支镜麻醉技术规范.pptx VIP
- 广东春季高考2025数学试卷.doc VIP
- 浙江省杭州市2024—2025学年高三上学期期末学业水平测试语文试题(含答案).doc.docx
- 专升本英语时态练习题.doc VIP
- 实验03 1-溴丁烷的化学性质-高二化学(人教版2019选择性必修3).docx VIP
文档评论(0)