Skip to content

Instantly share code, notes, and snippets.

@jackywyz
jackywyz / Ternary.scala
Created October 20, 2011 07:07
判空操作符
object Ternary {
implicit def coalescingOperator[T](pred: T) = new {
def ??[A >: T](alt: =>A) = if (pred == null) alt else pred
}
implicit def elvisOperator[T](alt: =>T) = new {
def ?:[A >: T](pred: A) = if (pred == null) alt else pred
}
}
@jackywyz
jackywyz / vim命令.md
Last active September 27, 2015 17:27
vim snippet

剪贴板: :reg 查看寄存器
"+y 复制到系统剪贴板,然后ctr-v粘帖到其他地方
""为临时剪贴板

格式化**************:
gg=G
dG全部剪切
gg v G全选

@jackywyz
jackywyz / ConsistentHash.java
Created October 24, 2011 02:12
一些算法(一致性hash,)
import java.util.Collection;
import java.util.SortedMap;
import java.util.TreeMap;
public class ConsistentHash<T> {
private final HashFunction hashFunction;
private final int numberOfReplicas;
private final SortedMap<Integer, T> circle = new TreeMap<Integer, T>();
@jackywyz
jackywyz / Base.java
Created October 25, 2011 02:46
Java Base study
'''hashCode
// equals 为true的时候 ,hashCode 函数为true
// object 的hashCode是32为内存地址
// 作用是放容器的时候,避免重复,hash存储。
'''快速排序
http://literateprograms.org/Special:Downloadcode/Quicksort_%28Java%29
@jackywyz
jackywyz / scala_links.md
Created October 26, 2011 02:42 — forked from ericacm/scala_links.md
Scala Links
@jackywyz
jackywyz / String format.scala
Created October 26, 2011 06:22 — forked from brianhsu/gist:792885
[Scala] 剪刀石頭布猜拳大亂鬥
'''print 格式化 => String 格式化,适用于python 的print语法
println("welcome %s ." format("jack"))
'''Java 版
String s = String.format("%d", factor);
System.out.println(s);
'''1.格式
%s 为字符串
@jackywyz
jackywyz / implicit.scala
Last active September 27, 2015 19:18
scala 隐式转换
case class Address(no: Int, street: String, city: String, state: String, zip: String)
trait LabelMaker[T] {
def toLabel(value: T): String
}
trait te{
implicit object StringLabelMaker extends LabelMaker[String] {
def toLabel(s: String) = s
}
@jackywyz
jackywyz / Observer.scala
Created October 28, 2011 01:46
设计模式
trait Clickable{def click}
abstract class Widge
class Button(val lable:String) extends Widge{ def click {}}
trait Subject {
type Obser = {def receive(who:Any,ms:String)}
private var subs = List[Obser]()
def addObser(obs:Obser) = subs::=obs
def notifyObser(ms:String) = subs foreach { _ receive (this, ms)}
@jackywyz
jackywyz / GC垃圾回收
Created October 31, 2011 06:35
Jvm虚拟机
//分代,计数,标记,复制
一)GC类型
GC有两种类型:Scavenge GC和Full GC。
1)Scavenge GC
一般情况下,当新对象生成,并且在Eden申请空间失败时,就好触发Scavenge GC,堆Eden区域进行GC,清除非存活对象,并且把尚且存活的对象移动到Survivor区。然后整理Survivor的两个区。
2)Full GC
对整个堆进行整理,包括Young、Tenured和Perm。Full GC比Scavenge GC要慢,因此应该尽可能减少Full GC。有如下原因可能导致Full GC:
a)Tenured被写满
@jackywyz
jackywyz / others.md
Created November 1, 2011 02:32
Tomcat总结

log4j级别

  • 其中,priority是日志级别,可选值包括OFF、FATAL、ERROR、WARN、INFO、DEBUG、TRACE、ALL