`
carver
  • 浏览: 50266 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论
文章列表
经常看到有人写这样的代码:new String(“乱码”.getBytes(“GBK”),”UTF-8”),能写出这种代码其实是对编码原理一点都没有理解,这种写法根本没有任何作用,浪费资源。   Java编码涉及到的就两个对象:string和byte,编码涉及的也 ...
最近项目中采用ZK去选择分布式集群的Master/Slave,生产环境运行一段时间中,经常出现同时存在多个Master的问题,然后去阅读了一下ZK扩展包的源码,发现两个BUG:   BUG:多机器同时获取WriteLock全局锁时有可能会有多个机器成为Leader。 原因分析:WriteLock创建临时自增节点是采用x-session_id-sequece_no的方式,在选举Leader时,通过TreeSet对节点进行排序,最小的节点就会被选为Leader,其它的会被选为Follower。由于ZNodeName的compareTo方法的实现问题,WriteLock获取的锁时并不是按sequ ...
研究了一下午,费话少说,直接上代码,依赖commons-io,有兴趣的朋友自己深究:     package com.carver; import java.io.File; import java.util.ArrayList; import java.util.Collection; import java.util.List; import org.apache.commons.io.FileUtils; import org.apache.commons.io.filefilter.IOFileFilter; import org.apache.commons ...
支持任何Unicode字符串的转换。   源代码:   private static final Pattern REG_UNICODE = Pattern.compile("[0-9A-Fa-f]{4}"); public static String unicode2String(String str) { StringBuilder sb = new StringBuilder(); int len = str.length(); for (int i = 0; i < len; i++) { char c1 = str.charAt ...
在JBOSS启动的时候,相信很多人都见到过下面这个日志错误:   [STDERR:152] - log4j:ERROR Could not instantiate class [org.jboss.logging.appender.FileAppender]. [STDERR:152] - java.lang.ClassNotFoundException: org.jboss.logging.appender.FileAppender [STDERR:152] - at java.net.URLClassLoader$1.run(URLClassLoader.java:202) ...

HashMap学习随笔

    博客分类:
  • Java
今天看了一下HashMap的实现,记录一下心得:   一、HashMap采用普通数组来保存元素   二、HashMap中添加元素的操作步骤 public V put(K key, V value) { if (key == null) return putForNullKey(value); int hash = hash(key.hashCode ...
TOP生产环境最近频频发生日志丢失事件,上了三拨人去解决,过了一段时间又出现了,太诡异了!具体现象如下: 1. 有一半的机器日志正常生成,而另一半的机器几乎没有生成日志。 2. 在日志丢失的机器上,所有普通logger配置 ...
1. 安装ASP.NET MVC3 http://download.microsoft.com/download/1/4/C/14C0533D-2299-42CD-898C-10AA5156E243/AspNetMVC3Setup.exe   2. 注册ASP.NET 4.0到IIS   3. Web共享工程文件夹到IIS站点   4. 配置站点工程的ASP.NET版本为:4.0   5. 设置站点URL后缀映射(.*) 注:一定不能勾选“check that file exists”   6. 设置本地依赖MVC3库:System.Web.Abstractions. ...
经过同样的缓存优化后,JSON解释器在性能上要比微软自带的XML解释器慢10倍左右[XML为0.15ms,JSON为1.56ms],不过由于JSON的返回结果要比XML小一些,相对于网络IO的性能,这个1毫秒级别的性能差距也就可以忽略不计了 /// <summa ...
1. 利用String类的length属性 int length = "我是字符串".length();  这种方法只能计算字符串的长度,一般情况下都会比数据库中规定的长度要大。 2. 利用正式表达式匹配中英文的字符数   3. 利用String的getBytes方法获得字节数 int length = "我是字符串".getBytes("GBK").length;  这种方法常用于保持和数据库一致的字条串长度限制。
性能比较:   public static void main(String[] args) throws Exception { System.out.println("======Begin Test======"); test1(); test2(); System.out.println("======End Test======"); } public static void test1() { Pattern pattern = Pattern.compile("\\.(jpg|png| ...
/// <summary> /// 获取文件的真实后缀名。目前只支持JPG, GIF, PNG, BMP四种图片文件。 /// </summary> /// <param name="fileData">文件字节流</param> /// <returns>JPG, GIF, PNG or null</returns> public static string GetFileSuffix(byte[] ...
如何创建泛型空对象实例: default(T)   如何创建泛型对象实例: Activator.CreateInstance(typeof(T))   如何创建动态泛型对象实例: Type listType = typeof(List<>).MakeGenericType(new Type[] { type }); IList listObjs = Activator.CreateInstance(listType) as IList;
工程地址:http://code.google.com/p/top4net/  
装饰模式概念 Decorator模式是构造型的设计模式之一,它可以动态地改变一个对象方法的行为。   装饰模式类图 Component 原有类的接口ConcreteComponent 功能实现类。Component的具体实现类Decorator 装饰抽象类。与ConcreteComponent一样都继承了Component接口,但实现的方式与ConcreteComponent有区别。ConcreteComponent通过单纯继承的方式来实现;而Decorator则通过对Component对象的封装与动作委让方式来实现。 ConcreteDecoratorA与Con ...
Global site tag (gtag.js) - Google Analytics