设计模式之动态代理

代理实现可以分为静态代理和动态代理, 下面使用jdk和cglib来分别说明。

静态代理

具体实现:

public interface Subject {
    void request();
}

class RealSubject implements Subject {
    public void request(){
        System.out.println("Call RealSubject");
    }
}

class Proxy implements Subject {
    private Subject subject;

    public Proxy(Subject subject) {
        this.subject = subject;
    }

    public void request() {
        System.out.println("begin");
        subject.request();
        System.out.println("end");
    }
}

public class ProxyTest {

    public static void main(String args[]) {
        RealSubject subject = new RealSubject();
        Proxy p = new Proxy(subject);
        p.request();
    }
}
[阅读全文]

设计模式之单例模式

单例模式 (Singleton) 也叫单态模式,是设计模式中最为简单的一种模式。

第一种(懒汉, 线程不安全)

public class Singleton {

    private static Singleton instance;

    private Singleton() {
    }

    public static Singleton getInstance() {
        if (instance == null) {
            instance = new Singleton();
        }
        return instance;
    }
}

这种写法 lazy loading 很明显, 但是致命的是在多线程不能正常工作。

[阅读全文]

Git常用指令整理

整理的一些常用的Git指令

创建仓库

echo "# comments" >> README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin git@github.com:your_username/your_project.git
git push -u origin master

若仓库存在直接push 

git remote add origin git@github.com:your_username/your_project.git
git push -u origin master
[阅读全文]

Git 生成多个 SSH Key

当有多个git账号的时候,比如一个github,用于自己进行一些开发活动,再来一个gitlab,一般是公司内部的git。这两者你的邮箱如果不同的话,就会涉及到一个问题,生成第二个git的key的时候会覆盖第一个的key,导致必然有一个用不了。

[阅读全文]

博客终于正式开张啦~

万事开头难,第一次总是有更多的纪念意义。

经过几番折腾,花了一个周末的时间,在github pages上终于把自己的个人博客搭建好了。

本来9月13号我购买了一年的阿里云服务器,用Java搭建好了,结果因为购买服务器是国内的,备案一直没有弄下来,购买的域名也无法使用,也不能退,花的RMB就这样打水漂啦啦啦~

最近接触的东西挺多的,加上之前一直挺喜欢写点东西的,使用过各种第三方博客,但是很多没有坚持下来,不够纯粹,达不到自己想要的,所以才下定决心把个人博客弄起来,希望自己能够坚持下去,加油!