Fork me on GitHub

nginx

nginx是著名的反向代理服务器,负载均衡利器,利用一些脚本甚至可以实现动态的负载均衡。这里只是记一下入门的helloworld。

启动nginx ,sudo nginx ;访问localhost:8080 发现已出现nginx的欢迎页面了。
配置文件:/usr/local/etc/nginx/nginx.conf

聊一聊体育运动与新的一年

过了个年,这不又长膘了,哈哈~仔细想想也好久没运动了,从7月正式实习一直到现在都没正儿八经的运动过一场,惭愧惭愧。要不是在家里,电视这种神奇的东西也是看不见的,偶尔翻开CCTV-5看看,才想起来,哟,今年是奥运年了啊。

体育运动

体育运动是人类最伟大的发明

git flow

用过git,那么肯定要碰到gitflow,gitflow个人认为是多人协作下使用git的一个规范,完全就是git操作,不过安装git flow后特定的命令可以帮我们做很多的事情,理解可以参考阮一峰的文章

功能开发

1
2
3
4
5
6
7
8
9
10
# 初始化工作目录(一直回车即可)
git flow init
# 开始创建新的需求分支(这个会从develop分出来,创建新的分支)
git flow feature start editimage #这时项目会自动切换 feature/editimage分支
# 更改部分代码后
# git commit -a -m "修改完了"
# 完成开发分支合并develop(自动完成,只合并到develop,没有合并到master)
git flow feature finish editimage
# 发布到远程开发分支
git push origin develop

mybatis中的几个问题

公司里用mybatis,写着写着会有几个问题冒出来,终于有空去看了一下源代码。

  • mybatis 方法签名返回list,LinkedList,如何实现不同的list?
    解:单纯使用mybatis时 List<Object> user = session.selectList(statement); 只能返回list且实际为arraylist

一些整理

看了《java并发编程实战》确实有一些可以梳理,也可以通过jdk的源码得到答案。

  • java voliate关键字与指令重排序

    缓存一致性问题和指令重排序的问题解释1,解释2

  • hashmap的实现另一个

  • concurrenthashmap的实现

  • copyonwrite,写时复制,读时不加锁,所以读可能是旧值,只保证最终一致性,不能保证数据的实时一致性,适合读多写少的并发场景
  • java内存泄露:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    //person 利用名字,年龄等属性重写了hashcode方法
    HashSet<Person> hs=new HashSet<Person>();
    Person p=new Person("张三",25);
    p.setAge(10);
    hs.remove(p);
    //这里会无法删除,修改属性后hashcode变了,也就无法找到并删除这个对象了
    //-----或者想下面这样--------
    Map map = new HashMap();
    //key未重写hashcode和equal方法
    //直接这样增加的话,没有new Key()的这样引用,永远无法取出来和移除这个键值对
    map.put(new Key("key"), "value");