`
OpenMind
  • 浏览: 177043 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论
文章列表
把hexo博客的源码和生成的页面实时同步到github和gitcafe。 用搜索引擎搜索”github 博客”等关键字会出现大量很好的文章教小白一步步搭建。我这里列出一些关键点,希望可以让你少走弯路。这篇博客的markdown源代码在:https://gi ...
java线程dump可以使用jdk的命令“jstack  pid”完成,死锁检查可以用jconsole查看到。这两个工具是java调试的常用方法。   我遇到的问题是:在sles11sp3的服务上面测试,上面只有IBM J9 VM jre,默认没有装jdk,装了jdk后发现没有jstack命令,由于系统没有启动图形界面,jconsole也无法使用,最后安装了vnc server,在xterm里面打开jconsole才定位到问题。   于是我想做一个不依赖jdk,在J9 VM jre和oracle的 jre下都可以打印堆栈的工具。于是就有了下面的东西。   这个工具只能获取到当前J ...
我有一个这样的线程池的场景,相信很多人都遇到过: 1,每个用户都可以添加多个任务; 2,有很多的用户和很多的任务; 3,每个用户添加的任务必须有序串行执行,即在同一时刻不能有同时执行一个用户的两个任务; 4,实时性:只要线程池线程有空闲的,那么用户提交任务后必须立即执行;尽可能提高线程的利用率。  代码比较简洁,基本满足上述要求: public class SerialThreadExecutor { private Executor executor; private ConcurrentMap<Object, SequentialJob> serialJobs = ...
去年我一同学要我破解unity.exe,然后挂在网上卖点钱花。后来我对破解过程涉及的技术问题痴迷了,再后来...   unity.exe是一个windows下的二进制程序,有一个用xml签名的license文件,license文件分几个部分: 1,一个CA认证机构的证书(好像是PACE Anti-Piracy):certCA; 2,unity机构的证书:certU; 3,使用certU签名的关于当前用户的使用期限、能使用的功能等等:UserInfo; (上述1,2,3都是用标准xml signature保存的)   unity.exe把certU存了一份放在源码里面,我是怎么知 ...
前段时间用netty3.x做了一个pipe的功能,读的速度很快,写的速度很慢,结果读总是把内存耗光(来不及写写到pipe的另一端),后面解决了这个问题。 原来的pipe的代码: public void messageReceived(ChannelHandlerContext ctx, MessageEvent e) ...
jgroups创建一个channel需要创建一个协议栈,协议栈的底层是传输协议,如果使用TCP的话,它的发现机制和心跳是怎么实现的呢?   首先,TCP启动的时候会启动一个SocketServer bind到一个特定的地址然后accept:ConnectionAcceptor。jgroups会给每个TCP socketServer创建一个ConnectionMap<ipAddress->TCPConnection>,当accept到一个连接之后会创建一个TCPConnection对象put进这个Map。(TCPConnection对象用于读写数据)   心跳线程是一个 ...
问题1:为什么InputStream.read()读取一个byte却返回一个int呢? InputStream.read()返回一个unsigned byte [0 - 255],而java里面没有这个类型,所以用int接收。 byte的范围是[-128,127],所以如果read()返回的数在[128,255]的范围内时,则表示负数,即   (byte)128=-128   (byte)129=-127   (byte)255=-1   所以如果read()返回的是byte的话,那就会有负数。而"返回-1意味着结束",这个信息量用byte是无法表达的 ...
System.currentTimeMillis()是依赖于系统时钟的,也就是说,如果你把自己的系统时钟更改了,这个函数的返回会立即生效,变成更改后的值; System.nanoTime()主要用于记录一个时间段的长度,或者说一个超时,在这个过程中,你更改系统时钟也不会影响。 两个方法的精度一个是毫秒,一个是纳秒,但都是不靠普的(有些系统的时间粒度是10ms),nanoTime()的调用也会消耗几微妙,所以不靠普; 但粒度不是我讨论的重点。   我们程序中的timer是很常用的功能,归根到底到下面的API:   LockSupport. public static void p ...
Class.getResourceAsStream("abc.properties")方法: 1,如果使用“/”开头则从类路径根目录寻找资源; 2,没有“/”开头,则选择相对路径,即当前class同包下面找; ClassLoader.getResourceAsStream("abc.properties"): 1,不能用“/”开头,只能从根目录寻找。 2,根据不同ClassLoader实现也不一样。
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>/var/log/testglog</file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!-- daily rollover --> <fileNameP ...
假设原来的机器是两块网卡,eth0和eth1,克隆以后,MAC也是两块,MAC地址与原来的分别都不一样,但由于系统的一些网络配置没有更新,导致克隆机器的网络启动不了, 比如会抛出异常:Bringing up interface eth0: pcnet32 device eth0 does not seepresent, delaying initialization.   或者用ifconfig -a 看到的输出也与实际情况不符,比如不存在eth0,但多了eth2,eth3等等,   下面是一些修复项目: 1.将/etc/sysconfig/network-scripts/ifc ...
用VIM打开windows下面创建的文件会出现^M字符,它表示一个回车符, (windows下编辑器敲击回车键,键入\r和\n,表示回车和换行,linux下只会有换行符\n) 下面的方式可以去掉所有回车符: :%s/^M//g 其中,^M不是输入^和M,而是输入:1,Ctr+V;2,回车 //g替换成空字符  
1,用符号==比较两个对象,意味着比较他们是否是统一个对象。 2,代码Integer b = 1; 自动装箱,通过javap可以看出起始会调用:      invokestatic #16; //Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;        即调用Integer.valueOf(int) 3,代码int a = new Integer(1); 自动拆箱,其实会调用: invokevirtual #25; //Method java/lang/Integer.intValue:()I      即调用In ...
Netty源码里面有个类:DeadLockProofWorker,源码如下:   public static final ThreadLocal<Executor> PARENT = new ThreadLocal<Executor>(); public static void start(final Executor parent, final Runnable runnable) { if (parent == null) { throw new ...
win7下防止ARP攻击: 你需要知道你的网关,通常就是路由器的物理地址(MAC) 1,管理员权限运行cmd; 2,arp -a      查看当前ARP项,注意网关的物理地址,如果与实际的不符,那么你肯定无法上网,此时你遭受了ARP攻击。 3,运行 netsh i i show in      将显示你的所有网卡的索引号Idx,比如,我的本地连接的idx是11:       4,netsh -c "i i" add neighbors 11 "网关IP" ”网关MAC地址"      将idx 11 对应的连接绑定网关的M ...
Global site tag (gtag.js) - Google Analytics