Scala
文章平均质量分 65
u013063153
这个作者很懒,什么都没留下…
展开
-
JVM(java 虚拟机)内存设置
一、设置JVM内存设置1. 设置JVM内存的参数有四个:-Xmx Java Heap最大值,默认值为物理内存的1/4,最佳设值应该视物理内存大小及计算机内其他内存开销而定;-Xms Java Heap初始值,Server端JVM最好将-Xms和-Xmx设为相同值,开发测试机JVM可以保留默认值;-Xmn Java Heap Young区大小,不熟悉最好保转载 2016-12-23 11:32:25 · 367 阅读 · 0 评论 -
scala 中的def/val/lazy val/的区别,call-by-value/call-by-name
本文简述在Scala中def、val和lazy val的区别关于val、lazy val和def的概念在此不多说,假设在 ~/Desktop 目录下有有一个 test.dat 文件,内容为:content 1直接来看在REPL中的效果:使用val如果 ~/Desktop/test.dat 文件不存在scala> val content1 = Source原创 2017-02-14 17:02:57 · 2848 阅读 · 0 评论 -
Scala基础 - 传名参数和传值参数(by-name/by-value parameter)
原文:https://my.oschina.net/joymufeng/blog/6524091. 介绍传值参数在函数调用之前表达式会被求值,例如Int,Long等数值参数类型;传名参数在函数调用前表达式不会被求值,而是会被包裹成一个匿名函数作为函数参数传递下去,例如参数类型为无参函数的参数就是传名参数。下文将举例说明这两者的区别。2. 简单类型的传递示例2.1 传值参数(转载 2017-06-15 20:27:55 · 3407 阅读 · 0 评论 -
Scala基础——可变参数
object Test {def main(args:Array[String]) {printString("Java","Scala","Python")}def printString(args: String*) {var i: Int = 0for (arg println("Arg Value[" + i + "] = " + arg)i = i原创 2017-06-15 20:54:21 · 731 阅读 · 0 评论 -
Intellij IDEA JVM参数设置
参考文献:http://blog.csdn.net/lablenet/article/details/51149283 http://blog.csdn.net/sdujava2011/article/details/50086933 http://www.oschina.net/question/1040722_140162 设置地方:-se转载 2016-12-20 13:40:37 · 22687 阅读 · 0 评论 -
Scala Seq示例
基本集合类List标准的linked list。12scala> List(1,2,3)res0: List[Int] = List(1,2,3)你也可以像在函数式语言里一样把它们串接起来。12s原创 2017-06-27 11:30:07 · 26366 阅读 · 0 评论 -
Scala基础—文件操作示例
package com.spark.scala.basicsimport scala.io.Source/** * 1. */object FileOpps { def main(args: Array[String]): Unit = {// for (line <- Source.fromFile("C:\\Users\\YaoWang\\Desktop\\Tes原创 2017-06-18 18:09:28 · 332 阅读 · 0 评论 -
Scala基础—Override示例(extends with)
package com.spark.scala.basics/** * 1. */class Person { val count = 3 val countArray = new Array[Int](count)}class Sporter extends Person { override val count: Int = 5}object Overri原创 2017-06-18 15:48:20 · 1216 阅读 · 0 评论 -
Scala基础—异常、Lazy使用示例
package com.spark.scala.basicsimport java.io.IOException/** * 1. */object ExceptionAndLazyValueDemo { def main(args: Array[String]): Unit = { try { 1 / 0 } catch { case原创 2017-06-18 15:24:42 · 352 阅读 · 0 评论 -
Scala基础—偏函数的示例
package com.spark.scala.basics/** * 1.Spark源码中的用法. */object PartialFunctionDemo { def main(args: Array[String]): Unit = { val sample = 1 to 10 /* val isEven: PartialFunction[Int, U原创 2017-06-18 15:14:57 · 676 阅读 · 1 评论 -
Scala基础—并发编程示例
package com.spark.scala.basicsimport scala.actors.Actor/** * 1. */object ActorDemo { def main(args: Array[String]): Unit = { val actorDemo = new ActorDemo actorDemo.start() var原创 2017-06-18 14:52:19 · 551 阅读 · 0 评论 -
Xms Xmx PermSize MaxPermSize 区别
Eclipse崩溃,错误提示:MyEclipse has detected that less than 5% of the 64MB of Perm Gen (Non-heap memory) space remains. It is strongly recommendedthat you exit and restart MyEclipse with new virtual ma转载 2017-01-06 22:12:05 · 325 阅读 · 0 评论 -
使用Option、Some、None,避免使用null
避免null使用大多数语言都有一个特殊的关键字或者对象来表示一个对象引用的是“无”,在Java,它是null。在Java 里,null 是一个关键字,不是一个对象,所以对它调用任何方法都是非法的。但是这对语言设计者来说是一件令人疑惑的选择。为什么要在程序员希望返回一个对象的时候返回一个关键字呢?Scala的Option类型为了让所有东西都是对象的目标更加一致,也为了遵循函数式编程的习惯转载 2016-12-12 13:57:00 · 2172 阅读 · 0 评论 -
scala 模式匹配与case class
当一个类被声明为case class时,编译器会自动进行如下操作:1.构造器中参数如果没有被声明为var,则默认为val类型;2.自动创建伴生对象,同时在伴生对象中实现apply方法,这样在使用时就不用显式地使用new对象;3.伴生对象中同样可以实现unapply(),从而可以将case class应用于模式匹配;object Test { case class Stud原创 2016-12-19 16:19:00 · 901 阅读 · 0 评论 -
scala中的apply()方法
apply方法类似于类的初始化方法,在遇到Object(参数1,参数2,......,参数n)时就会自动调用apply()方法。object Test { def main(args: Array[String]): Unit = { val a = ApplyTest() a.haveTry() }}class ApplyTest{ def apply原创 2016-12-19 19:05:33 · 4382 阅读 · 0 评论 -
scala 模式匹配
1.常量模式匹配常量object Test { def main(args: Array[String]): Unit = { def patternMatch(x:Any) = x match { case 5 => println("五") case true => println("真") case "test" => prin原创 2016-12-19 20:05:06 · 379 阅读 · 0 评论 -
scala中的偏应用函数(Partially Applied Function)
在函数定义中,不需要提供所有参数,只需要提供部分参数后者不提供参数,称为偏应用函数。object Test { def sum(a:Int,b:Int,c:Int):Int = a + b + c def main(args: Array[String]): Unit = { val s1 = sum(1,2,3) //s1 = 6 val fp_a =原创 2016-12-19 19:25:09 · 406 阅读 · 0 评论 -
scala泛型操作
泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。scala也采用了Java的泛型擦除模式(erasure),即类型是编译期的,在运行时会被"擦除"的,即运行时看不到类型参数。package com.testimport scala.collection.immutable.Queue//对应的3个参数的类型为Triple类中的参数化类型F、S、Tclass Tr原创 2016-12-19 23:16:56 · 1411 阅读 · 0 评论 -
Scala 访问修饰符
Scala 访问修饰符基本和Java的一样,分别有:private,protected,public。如果没有指定访问修饰符符,默认情况下,Scala对象的访问级别都是 public。Scala 中的 private 限定符,比 Java 更严格,在嵌套类情况下,外层类甚至不能访问被嵌套类的私有成员。私有(Private)成员用private关键字修饰,原创 2017-01-05 11:26:53 · 318 阅读 · 0 评论 -
Scala 提取器(Extractor)
提取器是从传递给它的对象中提取出构造该对象的参数。Scala 提取器是一个带有unapply方法的对象。unapply方法算是apply方法的反向操作:unapply接受一个对象,然后从对象中提取值,提取的值通常是用来构造该对象的值。提取器使用模式匹配在我们实例化一个类的时,可以带上0个或者多个的参数,编译器在实例化的时会调用 apply 方法。我们可以在类和对象中原创 2017-01-05 12:07:14 · 292 阅读 · 0 评论 -
JVM调优总结 -Xms -Xmx -Xmn -Xss
堆大小设置JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。32位系统下,一般限制在1.5G~2G;64为操作系统对内存无限制。我在Windows Server 2003 系统,3.5G物理内存,JDK5.0下测试,最大可设置为1478m。典型设置:java -Xmx3550m -Xms355转载 2017-01-06 22:14:37 · 308 阅读 · 0 评论 -
scala apply()方法简单用法
apply方法类似于类的初始化方法,在遇到Object(参数1,参数2,......,参数n)时就会自动调用apply()方法。object Test { def main(args: Array[String]): Unit = { val a = ApplyTest() a.haveTry() }}class ApplyTest{ def app原创 2017-01-08 12:07:43 · 758 阅读 · 0 评论 -
scala中的class、object和trait的区别
Scalaclassclass Counter { private var value = 0 // 必须初始化字段 def increment() { value += 1 } // 方法默认公有 def current = value // 调用必须是myCounter.current这种风格}class Student{ var age=20 //底层原创 2017-01-08 12:17:56 · 1002 阅读 · 0 评论 -
Scala基础—implicit编程示例
package com.spark.scala.basics/** * 隐式转换的2种方法 */class Man(val name: String)object Man { implicit def man2SuperMan(man: Man) = new SuperMan(man.name)}class SuperMan(val name: String) { de原创 2017-06-18 14:13:24 · 418 阅读 · 0 评论 -
Scala基础—*类型参数编程实战示例
package com.spark.scala.basics/** * 1.scala的类和方法、函数都可以是泛型 * 2.对类型边界的限定,分为上边界和下边界: * 上边界:表达了泛型的类型必须是某种类型或者该类型的子类,语法为:,对类型的限定 * 下边界:表达了泛型的类型必须是某种类型或者该类型的父类,语法为>:,对类型的限定 * 3.View Bounds:是上边界和原创 2017-06-18 11:18:59 · 333 阅读 · 0 评论 -
Scala基础—集合函数式编程示例(占位符的使用示例)
package com.spark.scala.basicsimport scala.collection.mutable/** * 1.在scala集合体系中,Iterable是共同的Trait,Iterable要求继承者实现一些共同的方法,例如对元素的遍历等; * 2.Array是基础的数据结构,不从属于scala集合体系 * 3.scala集合体系中集合分为可变集合与不可原创 2017-06-18 00:14:37 · 553 阅读 · 0 评论 -
Scala使用Actor进行并发编程
原文:http://ghost-raidery.rhcloud.com/2013/11/28/scala%E4%BD%BF%E7%94%A8actor%E8%BF%9B%E8%A1%8C%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B/Akka 是一个用 Scala 编写的库,用于简化编写容错的、高可伸缩性的 Java 和 Scala 的 Actor 模型应用。转载 2017-07-18 16:33:08 · 1556 阅读 · 0 评论 -
Scala基础—模式匹配与case class示例
package com.spark.scala.basicsimport scala.collection.immutable.HashMap/** * 1.值匹配 * 2.类型匹配 * 3.集合匹配 * 4.class匹配 * 5.Option */class DataFrameWorkcase class ComputationFrameWork(name原创 2017-06-17 22:36:15 · 555 阅读 · 0 评论 -
Scala基础—Trait使用示例
package com.spark.scala.basics/** * 1. */trait Logger { def log(message: String): Unit = { println("Logger: " + message) }}trait RichLogger extends Logger{ override def log(messag原创 2017-06-17 17:17:45 · 454 阅读 · 0 评论 -
Scala基础—提取器Extractor使用示例
package com.spark.scala.basics/** * 1. */case class Person1(name: String, age: Int)class Coder(val name:String, val salary: Int)object Coder { def apply(name:String, salary: Int): Unit = {原创 2017-06-18 16:28:08 · 596 阅读 · 0 评论 -
Scala基础—多线程示例
原文:https://my.oschina.net/u/877759/blog/501733写的一个scala多线程的小demo,以备后用Runnable/Callable区别:Runnable无返回值,Callable线程执行完有返回值Runnable示例import java.util.concurrent.{Executors, ExecutorService转载 2017-07-24 14:52:24 · 2246 阅读 · 0 评论 -
Concurrency in Scala
原文:https://twitter.github.io/scala_school/zh_cn/concurrency.htmlRunnable/CallableRunnable接口只有一个没有返回值的方法。trait Runnable { def run(): Unit}Callable与之类似,除了它有一个返回值trait Callable[V]转载 2017-07-24 14:56:18 · 431 阅读 · 0 评论 -
scala implicit class使用
官方文档:http://docs.scala-lang.org/zh-cn/overviews/core/implicit-classes.html介绍Scala 2.10引入了一种叫做隐式类的新特性。隐式类指的是用implicit关键字修饰的类。在对应的作用域内,带有这个关键字的类的主构造函数可用于隐式转换。隐式类型是在SIP-13中提出的。用法创建隐式类时,原创 2017-08-15 16:55:04 · 2067 阅读 · 1 评论 -
scala.sys.process简介及实战
原文:http://itang.iteye.com/blog/1126777简介Ruby很方便的支持操作系统的调用,如: Ruby代码 irb> system 'dir' irb> system 'ls -la' irb> system 'curl -I http://www.iteye.com' irb> result转载 2017-08-15 17:27:16 · 2780 阅读 · 0 评论 -
Spark的基本概念及工作原理
Spark作业:-Application:用户自定义的Spark程序,用户提交后,Spark为App分配资源将程序转换并执行。-Driver Program:运行Application的main()函数并且创建SparkContext。-RDD DAG:当RDD遇到Action算子,将之前的所有算子形成一个有向无环图(DAG)。再在Spark中转化为Job,提交到集群进行执行。一个Ap原创 2016-11-11 10:35:09 · 2303 阅读 · 0 评论 -
Scala基础—函数式编程示例
package com.spark.scala.basics/** * 1.在scala中,函数式一等公民,可以像变量一样被传递,被赋值,同时函数可以赋值给变量,变量也可以赋值给函数; * 原因在于:函数背后是类和对象,在运行的时候,函数其实是一个变量,这背后的类是scala自动生成,且可以天然地被序列化和反序列化。 * 意义: * 1)序列化和反序列化,函数可以在分布式系统上原创 2017-06-17 14:23:31 · 456 阅读 · 0 评论 -
在Scala中,def foo = {}和def foo() = {}有什么区别?
原文:https://gxnotes.com/article/83516.html问题描述给定以下用于在Scala中定义函数的结构,你可以解释什么是区别,它将会有什么影响?def foo = {}与def foo() = {}更新感谢您的快速回复。这些都很棒对我来说唯一的问题是:如果省略括号,还有一种方法来传递函数吗?这是我得到的转载 2017-07-18 16:30:59 · 1553 阅读 · 0 评论 -
Scala 字符串插值器s,f 和 raw.
原文:http://docs.scala-lang.org/zh-cn/overviews/core/string-interpolation.htmlJosh Suereth 著简介自2.10.0版本开始,Scala提供了一种新的机制来根据数据生成字符串:字符串插值。字符串插值允许使用者将变量引用直接插入处理过的字面字符中。如下例:val name="转载 2017-07-21 09:43:29 · 4409 阅读 · 1 评论 -
Scala基础—函数式编程高阶示例,闭包、Currying等
package com.spark.scala.basics/** * 函数式编程进阶: * 1.函数和变量一样作为scala语言的一等公民,函数可以直接赋值给变量; * 2.函数更常用的方式:是匿名函数,定义的时候只需要输入参数的类型和函数体即可,不需要名称,但是一般要使用的时候, * 将匿名函数赋值给一个变量(val常量) * 3.函数可以作为参数直接传递给函数;原创 2017-06-17 21:41:48 · 505 阅读 · 0 评论 -
Scala基础—Map和Tuple操作示例
package com.spark.scala.basicsimport scala.collection.immutable.SortedMapimport scala.collection.immutable.HashMapimport scala.collection.mutable/** * 1.默认情况下,Map构建的是不可变的集合,里面的内容是不可修改的,原有的Map的原创 2017-06-17 16:48:13 · 619 阅读 · 0 评论