- 浏览: 30729 次
- 性别:
- 来自: 上海
最新评论
-
cyshooter:
你好,请问下你的这个timer是不是也用在netty心跳包检测 ...
Netty HashedWheelTimer过多导致内存泄漏的排错 -
冲杯茶喝:
yiyun_8 写道没有办法下载哦。已修改
Logback+slf4j应用总结(下载地址已更新) -
半糖主义:
demo无法下载
Logback+slf4j应用总结(下载地址已更新) -
yiyun_8:
没有办法下载哦。
Logback+slf4j应用总结(下载地址已更新)
文章列表
Happens-before法则
- 博客分类:
- 典藏【转载】
Java存储模型有一个happens-before原则,就是如果动作B要看到动作A的执行结果(无论A/B是否在同一个线程里面执行),那么A/B就需要满足happens-before关系。
在介绍happens-before法则之前介绍一个概念:JMM动作(Java Memeory Model Action),Java存储模型动作。一个动作(Action)包括:变量的读写、监视器加锁和释放锁、线程的start()和join()。后面还会提到锁的的。
happens-before完整规则:
(1)同一个线程中的每个Action都happens-before于出现在其后的任何一个Action ...
Java-HashMap的一点讨论
- 博客分类:
- 心得体会
这两天在写原始类型(Primitive)的HashMap,用于提高HashMap的效率。又温故了下HashMap的源码。
想起之前有趣的代码,所以借此拿来跟大家分享下。
代码如下:
public static void main(String[] args)
{
Map m = new HashMap();
Object o1 = new Integer(1);
Object o2 = new Long(1);
m.put(o1, 1);
m.put(o2, 2);
...
问题:
我想在顶层目录下编写一个脚本来调用自录下的clean.sh文件,该如何实现?
第一种情况:
假设目录结构为:
fme/
|__clean.sh
|__dc250/clean.sh
|__dc300/clean.sh
|__dc350/clean.sh
现在我在fme结构下编写一个clean.sh文件调用各个子目录下的clean.sh文件。
实现方法如下:
#!/bin/bash
for dir in `ls .`
hi,all:
最近抽时间把JVM运行过程中产生的一些线程进行了整理,主要是围绕着我们系统jstack生成的文件为参照依据。 前段时间因为系统代码问题,造成性能到了天花板,于是就dump了一份stack出来进行分析。 看stack其实也需要一定的经验,毕竟它里面很多线程不可能都是有问题,所以,需要对他们有一定认识。 现在市面上很少有人对这一块做整理,所以,导致很多新人在拿到一个stack文件之后,也是一头雾水。 下面我把这次整理的一些个人认为比较重要的线程列出来,供大家参考。 如果发现有什么写得不对或者可以补充的地方,也请朋友们抱着乐于分享的态度灌灌水。
...
前段时间细节的了解了Jedis的使用,Jedis是redis的java版本的客户端实现。本文做个总结,主要分享如下内容:
【pipeline】【分布式的id生成器】【分布式锁【watch】【multi】】【redis分布式】好了,一个一个来。一、 Pipeline官方的 ...
1. 线程组,在我们测试方案里面,每个线程模拟一个用户,执行用户的登录、等等等一系列的操作。由于我们的项目是长连接的,如何能实现多个sample公用一个长连接客户端,考虑了很久,最后实现方法如下:
1 package tea.client.network; 2 /** 3 * @author Teaey 4 * @creation 2012-8-25 5 */ 6 public class NetworkClientHolder 7 { 8 /** 9 * 这里使用ThradLocal存储BaseClient10 * 方便一轮测试的每个sample ...
如果是刚刚接触logback,建议先下载本文最后的《Logback手册.pdf》官方手册阅读。
1、 如何替换现有的log4j
“装饰者模式”和“对象适配器模式”异同
- 博客分类:
- 心得体会
这两种模式在Java IO包下应用很多
典型的包装者模式:InputStream ---> FilterInputStream ---> InputStream
典型的适配器模式:Reader ---> InputStreamReader ---> InputStream
一、定义
先看下两者的定义
装饰者:不改变接口,加入新的责任
适配器:讲一个接口改为另一个接口
不同点:
原文地址:点击打开链接 ,翻译有出入之处,请以原文为准
本文中,我们讨论一个问题:如何计算(或者说,估算)一个Java对象占用的内存数量?
通常,我们谈论的堆内存使用的前提是以“一般情况”为背景的。不包括下面两种情形:
某些情况下,JVM根本就没有把Object放入堆中。例如:原则上讲,一个小的thread-local对象存在于栈中,而不是在堆中。
被Object占用内存的大小依赖于Object的当前状态。例如:Object的同步锁是否生效,或者,Object是否正在被回收。
我们先来看看在堆中单个的Object长什么样子