Category Archives: Java|Scala

Scala Review : Class & Trait

1. 类成员可见性有两种,private,protected和public(和java一样),private需要声明,public无需额外声明。private[this]是更严格的限定,使用这个限定的成员只对被实例可见。private[class_name]和private是一样的,这个成员对这个类的实例可见。而protected[this]允许子类实例访问这个成员。
示例如下:

Continue reading

Posted in Dev, Java|Scala.

Git In IDEA

1. 使用命令行来clone branch
安装git之后,使用下面方式来初始化git本地目录

clone spark源代码

2. IntelliJ配置git
File – Setting – Version Control – Github,配置github account
git-conf
分享项目Github上:
选择菜单”VCS — Import into Version Control — Share project on Github”
git-conf2
不必输出library,等到分享结束。
Successfully shared project on Github: sbtFirst..
3. 通过IntelliJ来checkout源代码
输入git URL:
git://github.com/apache/spark.git
完成后会提示你是否打开。
git-conf3

^^

Posted in Dev, Java|Scala, Spark.

配置IntelliJ IDEA 13的SBT和Scala开发环境

对于scala的开发环境,公认最好的IDE是IntelliJ IDEA+scala&sbt插件。sbt(Simple Build Tool,a build tool for Scala.)是scala专用的构建工具,使用scala语言编写,配置比maven等构建工具简单了许多。sbt集成了依赖管理(使用Ivy做依赖管理),并“只在请求时更新”。(详见twitter, scala school的简单构建工具)
SBT其他相关链接
sbt http://www.scala-sbt.org/
sbt github https://github.com/sbt/sbt
sbt-idea https://github.com/mpeltonen/sbt-idea
我在配置IDEA+scala&sbt的过程中走了不少弯路,所以记录一下配置的过程,希望对大家有所帮助。
打开安装完成的Intellij IDEA 13(http://www.jetbrains.com/idea/),首先要安装好scala和sbt plugin。在IDEA的wizard中选择plugin -> 安装插件 -> 搜索scala和sbt,然后等待安装完成即可。
Continue reading

Posted in Dev, Java|Scala.

使用Scala Casbah连接MongoDB

Casbah是Scala的MongoDB toolkit,它对java Driver进行了封装并提供了scala风格的接口。Casbah使用了隐式的“PIMP My Library”代码来增强Java代码的功能。PIMP My Library模式是使用额外的方法和属性来装饰类的一种方法,一般使用隐式函数定义的方式来让Scala转换一个对象为一个新的对象,参考PIMP My Library,下面是一个简单的PIMP My Library用例:

Continue reading

Posted in Database, Dev, Java|Scala, NoSQL.

Scala Note – 运算符和转义

scala的运算符

(1).Scala 没有实现任何操作符,所有的操作符运算都是对方法/函数的调用。
如 1+2 实际上是调用了.+()这个方法 即1.+(2)
a:b是b.:(a)的方法调用
在具体的调用中,调用+实际上包含了+的各种类型参数的重载,所以直接可以使用。
(2).前缀后缀运算符是一元操作,而中缀运算符是二元操作。
(3).操作符优先级
表达式的读取和执行并不依赖于顺序,更关键是操作符固定的优先级
顺序如下:
特殊字符 > */% > +- > : > =! > <> > & > ^ > | > 其他字母 > 赋值操作符
scala还支持 *** +-+之类的操作符重载,其优先级以第一个符号为主。
*=等带等号的运算符重载,会被认为是赋值运算符而具有最低的优先级。
m*=(n+5) 等价于 m*=(n+5)

scala的转义

\b \u0008 退格
\t \u0009 制表符
\n \u0004 换行
\f \u000c 换页
\r \u000d 回车
\” \u0022 双引号
\’ \u0027 单引号
\\ \u005c 反斜杠

Posted in Dev, Java|Scala.

Scala Note – 数组和集合

1. Mutable size array – arraybuffer

Continue reading

Posted in Dev, Java|Scala.

Scala 高级函数特性

函数和其他常量、变量一样,也是一个值。

Continue reading

Posted in Dev, Java|Scala.

Linux下常见代理设置

1. 系统级
export http_proxy=username:password@my_proxy_hostname:8080

2. yum
vim /etc/yum.conf
proxy=http://my_proxy_hostname:8080
proxy_username=username
proxy_password=passwd

3. git(http://stackoverflow.com/questions/783811/getting-git-to-work-with-a-proxy-server)
git config –global http.proxy http://my_proxy_hostname:8008
or
git config –global http.proxy http://username:passwd@my_proxy_hostname:8080
此时配置会写入:
$ vim $HOME/.gitconfig
[http]
proxy = http://my_proxy_hostname:8080

unset the proxy:
git config –global –unset http.proxy
or
git config –global http.proxy “”

4. svn(http://hittyt.iteye.com/blog/889181)
vim $HOME/.subversion/servers
[global]
http-proxy-exceptions = *.exception.com, www.internal-site.org
http-proxy-host = my_proxy_hostname
http-proxy-port = 8080
# http-proxy-username = username
# http-proxy-password = password

5. maven
在$MAVEN_HOME/conf/settings.xml中可以找到,取消注释设置即可。

optional
true

http proxyuser

proxypass my_proxy_hostname

8080 local.net|some.host.com

————————————————————

6. Windows下一个比较好用的代理服务器kangle
安装之后服务已经启动,浏览器打开本机80端口,输入admin/kangle可以进行设置。
停止服务:
net stop kangle
打开服务:
net start kangle

Posted in Java|Scala, Linux.

Scala类的方法命名约定

对于一般的方法,则调用的目标是运算符前面的实例

这里相当于调用了s.^(T(“HELLO WORLD”) )
如果方法以冒号:结尾,那么调用目标的是运算符后面的实例。

另外,一元运算符+ – ! ~也是以其后的实例为目标的,会映射成unary_+()等方法。

Posted in Java|Scala.