摘要:
1. 取消 merge1) 先用 git reflog 查看操作日志2) 使用 git reset --hard HEAD@{x} 强制回到你需要的分值2. 创建新分支git checkout -b newBranch3. 提交到远程分支git push origin newBranch4. 将本地... 阅读全文
摘要:
原文出处:http://www.ibm.com/developerworks/library/j-zerocopy/传统的I/O使用传统的I/O程序读取文件内容, 并写入到另一个文件(或Socket), 如下程序:File.read(fileDesc, buf, len);Socket.send(s... 阅读全文
摘要:
内核态: CPU可以访问内存所有数据, 包括外围设备, 例如硬盘, 网卡. CPU也可以将自己从一个程序切换到另一个程序用户态: 只能受限的访问内存, 且不允许访问外围设备. 占用CPU的能力被剥夺, CPU资源可以被其他程序获取为什么要有用户态和内核态由于需要限制不同的程序之间的访问能力, 防止他... 阅读全文
摘要:
问题:最近发现Netty项目每次发布的时候Netty在重启时都会报端口被占用的异常, 需要过十几秒左右手动重启一遍, Netty才能恢复正常目前猜测是由于Tomcat_restart的时候Netty执行相关的销毁操作, Channel.close().awaitUninterrupted() 以及 ... 阅读全文
摘要:
AsyncHttpClient的连接池结构很简单, NettyConnectionsPool内部重要的几个变量如下 // 连接池, 通过 host 区分不同的池 private final ConcurrentHashMap> connectionsPool = new Concurre... 阅读全文
摘要:
1. HashMap1) 并发问题HashMap的并发问题源于多线程访问HashMap时, 如果存在修改Map的结构的操作(增删, 不包括修改), 则有可能会发生并发问题, 表现就是get()操作会进入无限循环 public V get(Object key) { if (key... 阅读全文
摘要:
package org.zwl.test.nio;import java.io.IOException;import java.net.InetSocketAddress;import java.nio.ByteBuffer;import java.nio.channels.*;import jav... 阅读全文
摘要:
Netty writeAndFlush()方法分为两步, 先 write 再 flush @Override public ChannelFuture writeAndFlush(Object msg, ChannelPromise promise) { DefaultCh... 阅读全文
摘要:
不得不说Java的文件路径弄得很复杂, 有编译目录和resource目录什么的和解释型语言(PHP)的就是不一样搞了好几年java一直没认真去研究这些个破路径怎么回事, 每次都忘记, 梳理一下备忘1. 直接使用绝对路径这是最简单的一种, 例如 new File("/home/alexis/test.... 阅读全文
摘要:
先解释几个HTTP头Via: 对代理信息的解释, 可以包括被代理之前的http协议信息, 代理软件信息, 代理网关等等, 例如Via: 1.0 fred, 1.1 nowhere.com (Apache/1.1)表示原始客户端使用1.0协议发给代理fred, fred再用1.1协议发给代理nowhere.com, 代理软件是 apacheX-Forwarded-For: 被代理之前的客户端地址(不可信)不同的代理具有不同的匿名程度, 普遍上来讲分为如下:1. 透明代理透明代理会暴露原始客户端的IP信息Via: 有值X-Forwarded-For: 原始客户端IP2. 普通匿名代理匿名代理不会暴 阅读全文