摘要:
问题给了A、B两个单词和一个单词集合Dict,每个的长度都相同。我们希望通过若干次操作把单词A变成单词B,每次操作可以改变单词中的一个字母,同时,新产生的单词必须是在给定的单词集合Dict中。求所有行得通步数最少的修改方法。举个例子如下:Given: A = "hit" B = "cog" Dict = ["hot","dot","dog","lot","log"]Return[ ["hit","hot"," 阅读全文
随笔分类 - Java
素数(质数)的一个用法
2013-07-26 19:17 by 康杜, 543 阅读, 收藏,
摘要:
素数的定义素数(质数,prime number)是一种只能被1和本身整除的数。鼎鼎大名的RSA就是用了素数的基本特性发明的。RSA太难,不容易理解,下面的这个素数的例子就比较容易理解了。给出两个字符串A和B,写出程序判断B串里面的字符是否都在A串中。例如A="hssawonderfulwo"B="who"这个问题可以有多种解法,比如说把A,B排序,然后比较;或者把A中的每个字符放到Set中,然后在把B的字符依次放到Set中,如果B中字符不能放进去,那么B中的字符A也有。还有一种方法...将A和B字符串中的每个字符做素数的映射,比如T=2,h=3,..., 阅读全文
一个手机号码剔重的问题
2013-07-19 19:24 by 康杜, 1431 阅读, 收藏,
摘要:
问题QQ群上有人问了这样一个问题,现有2个待推广手机号码数据文件,A文件1000W行,B文件是100W,文件中每行记录只有手机号,号码有重复,请设计高效方案先对A、B数据文件分别进行号码剔重,再找出B文件中在A文件存在的号码,请写出核心设计思想,并编写代码完整实现。(注:请用纯c实现,不许采用数据库、Memcached等第三方中间件,号码数据文件请自行模拟生成)答题要求:请同时提供Word设计文档,和程序源代码(如程序中使用了第三方Jar请注明,jar包请不要上传),打包上传。思路及分析我想了一下,看看《编程珠玑》,然后我决定用位图(Bit Map)来解决这个问题。有些朋友可能还不了解位图(B 阅读全文
采样问题
2013-05-07 18:14 by 康杜, 388 阅读, 收藏,
摘要:
先抛出问题:一个公司的员工有100位,如何在这100位的员工里面抽取出10个幸运奖得主?通过分析,这个问题可以总结为“如何在列表中随机等概率地选择其中某些元素”。针对这个问题,我先给出代码,然后在给出解释(通过问答的方式)。package art.programming.simpling;import java.util.Random;public class Simpling { public static Object[] simple(Object[] objects, int num) { //The length of the array int len = objects.le.. 阅读全文
PriorityQueue和Huffman编码
2012-12-14 15:47 by 康杜, 1191 阅读, 收藏,
摘要:
前言本文不描述Huffman编码的算法和理论知识。Huffman编码算法的描述请看酷壳上的文章《Huffman压缩算法》。本文只考虑Huffman编码的Java实现,代码中有些地方没有做性能优化。PriorityQueuePriorityQueue是一个排序的队列,是构建Huffman树的基础。package art.programming.huffman;//Frequency用来抽象每个字符出现频率public class Frequency implements Comparable<Frequency>{ private int frequency; private Cha 阅读全文
volatile
2012-09-20 20:24 by 康杜, 1277 阅读, 收藏,
摘要:
volatile是什么对于volatile, <The Java Language Specification Third Edition>是这样描述的“A field may be declared volatile, in which case the Java memory model ensures that all threads see a consistent value for the variable.”意思是,如果一个变量声明为volatile, Java 内存模型保证所有的线程看到这个变量的值是一致的。“… the volatile modifier guar 阅读全文
关于HttpURLConnection的TCP连接
2012-09-03 19:43 by 康杜, 1720 阅读, 收藏,
摘要:
背景在工作中,我被问及一个问题CXF的WebClient是如何通过连接发送请求的,到最后引申为HttpURLConnection的TCP连接的重用问题。问题描述在一个线程中,多个方法调用HttpURLConnection conn = (HttpURLConnection) url.openConnection() 建立一次TCP连接还是多次TCP连接?具体点讲,如下代码中HttpClient有3个方法,每个都调用 HttpURLConnection conn = (HttpURLConnection) url.openConnection() ,那么一个线程调用method1, method 阅读全文
一致性HASH算法
2012-08-27 13:43 by 康杜, 455 阅读, 收藏,
摘要:
在做大数据量的数据缓存,同时扩展性和可用性很重要的时候,一致性HASH算法是很有用的。原文“Thus, it is critical for our hash function to map items consistently: regardless of the existence of multiple, changing views of the system, each item should be mapped to only a small number of machines, and in such a way that all machines get roughly th 阅读全文
OSGi for beginners
2012-02-22 19:57 by 康杜, 179 阅读, 收藏,
摘要:
This is a very useful text for java developers who are willing to develop dynamic module for java applications. The Open Services Gateway Initiative (OSGi), also known as Dynamic Module System for Ja... 阅读全文
Java 7 resources
2012-01-11 16:44 by 康杜, 171 阅读, 收藏,
摘要:
Alex Miller’s Java 7 resources http://tech.puredanger.com/java7 阅读全文
异常处理的原则
2012-01-11 15:57 by 康杜, 2202 阅读, 收藏,
摘要:
这篇文章是我看到讲异常处理最好的一篇文章http://www.objectsource.com/j2eechapters/Ch18-Exception_Handling.htm。强烈建议阅读。以下该文内容的精粹。1. 异常处理基础 1.1 System.out.println是高代价的。调用System.out.println会降低系统吞吐量。 1.2 在生产环境中别用异常的printStackTrace()方法。printStackTrace默认会把调用的堆栈打印到控制台上,在生产环境中访问控制台是不现实的。 2. 异常处理基本原则 2.1 如果你不能处理异常,不要捕获该异... 阅读全文
String的intern方法的副作用
2011-12-27 11:49 by 康杜, 439 阅读, 收藏,
摘要:
以下的测试环境是 java version "1.6.0_29" Java(TM) SE Runtime Environment (build 1.6.0_29-b11) Java HotSpot(TM) Client VM (build 20.4-b02, mixed mode, sharing) import java.util.Random; public class ... 阅读全文
jps & ps
2011-12-23 10:29 by 康杜, 290 阅读, 收藏,
摘要:
jps -m -l -v ps -auxww | grep java 在Unix-like的系统中,比如Solaris和Lunix可以有两种方式取得JVM的进程号 阅读全文
java的同步方法
2011-12-20 13:56 by 康杜, 515 阅读, 收藏,
摘要:
同步方法锁的是对象When one thread is executing a synchronized method for an object, all other threads that invoke synchronized methods for the same object block (suspend execution) until the first thread is done with the object.当一个线程正在执行某个对象的同步方法的时候,其所有要执行这个对象的任意一个同步方法的其他线程都得等待,直到对象锁被释放。在下面的例子中,只有线程1和线程3能够得到 阅读全文
DateFormat的线程安全问题
2011-12-19 17:55 by 康杜, 396 阅读, 收藏,
摘要:
在下面例子中,System.out.println(data+" : "+ tempDateStr); 打印的结果是不一样的。publicclassDateFormatIsNotThreadSafe {staticfinalSimpleDateFormatdateFormat=newSimpleDateFormat("dd-MM-yyyy");staticString[]testData= {"01-10-1999","14-10-2001","31-10-2007"};publicstatic 阅读全文
JTS
2011-12-14 17:53 by 康杜, 211 阅读, 收藏,
摘要:
我要翻译这篇文章 http://www.ibm.com/developerworks/java/library/j-jtp0410/index.html 阅读全文
慎用ThreadLocal
2011-12-14 17:05 by 康杜, 813 阅读, 收藏,
摘要:
ThreadLocal的作用1)保存在当前线程计算的中间结果2)保存上下文信息,比如用户的身份等等ThreadLocal的副作用1) 信息泄露。 在服务器环境下(比如WebLogic), 线程往往被保存在线程池中。由于每个用户的请求(Request)都是通过一个线程来处理的,当线程处理完一个用户的请求之后,服务器应用程序会将该线程存放在线程池中。当下一个用户请求时,这个线程又被调度来处理请求。这种情况下,上一个用户的上下文信息(比如身份信息)将被得到。2)内存泄露。解决方法当每个用户的请求处理完成之后,调用ThreaLocal.remove()方法将数据清除参考:http://dave.sre 阅读全文
Strong/Soft/Weak/Phantom
2011-12-14 16:46 by 康杜, 429 阅读, 收藏,
摘要:
Strong Reference 强引用 在我们的代码里,这样的引用是强引用。 StringBuffer buffer = new StringBuffer(); 那么什么时候强引用太强了呢,导致它引用的对象无法被清除,最后导致内存溢出(OutOfMemoryError)。我们来看一个缓存的例子。 例子1, public class ReferenceTest { //pr... 阅读全文
浙公网安备 33010602011771号