- 浏览: 4769 次
最新评论
文章列表
在tomcat6.0 下 Base64.decode() 解码的中文为什么是乱码,我的tomcat编码是utf-8:而在javaIDE环境下运行,Base64.decode()解码的中文得出的是正常。有没有好的解决方案?
写道
public static String Base64ToStr(String s) { if (s == null) return n ...
public class ReflectUtils { /** * @param args * @return void * @throws ClassNotFoundException * @throws SecurityException * @throws NoSuchMethodException * @throws InvocationTargetException * @throws IllegalArgumentException * @throws IllegalAccessException * @throws Instanti ...
jdk1.5新特性1.泛型2.foreach3.自动拆箱装箱4.枚举5.静态导入(Static import)6.元数据(Metadata)7.线程池8.Java Generics 让我们详细讨论每个新特性,并看一些例子。 1、泛型(Generics) 泛型是JDK1.5中一个最“酷”的特征。通过引入泛型,我们将获得编译时类型的安全和运行时更小地抛出 ClassCastExceptions的可能。在JDK1.5中,你可以声明一个集合将接收/返回的对象的类型。在JDK1.4中,创建雇员名字的清单 (List)需要一个集合对象,像下面的语句: List listOfEmployeeName ...
一致性哈希算法是分布式系统中常用的算法。比如,一个分布式的存储系统,要将数据存储到具体的节点上,如果采用普通的hash方法,将数据映射到具体的节点上,如key%N,key是数据的key,N是机器节点数,如果有一个机器加入或退出这个集群,则所有的数据映射都无效了,如果是持久化存储则要做数据迁移,如果是分布式缓存,则其他缓存就失效了。
因此,引入了一致性哈希算法:
把数据用hash函数(如MD5),映射到一个很大的空间里,如图所示。数据的存储时,先得到一个hash值,对应到这个环中的每个位置,如k1对应到了图中所示的位置,然后沿顺时针找到一个机器节点B,将k1存储到B这个节点 ...
一个交易清算处理,里面有n(10)个线程,现在需要实现以下功能,
n(10)个线程中,n-4(6)个线程全部同时执行完成后,再执行剩下的4个线程。
采用CountDownLatch
CountDownLatch latch=new CountDownLatch(n-4);
声明之后,将latch塞给n-4个线程,然后让每个线程run方法的最后,都执行latch.countDown(),当n-4个线程都执行完时,latch的计数器也被减为0了,此时即一起完成了。然后再将latch赋值为new CountDownLatch(4),将剩余的线程启动即可。