`
wjjxf
  • 浏览: 237760 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表
哲学家问题,java去除死锁的解法,琢磨了半天,要避免死锁就必须在得不到右边的筷子情况下放弃左边的筷子,如此才可!正所谓,退一步海阔天空。。。。 public class Zhexuejia { public static void main(String[] args) throws Exception{ new Zhexuejia().t(); } public void t() throws Exception{ Jia j1 = new Jia("哲学家1", x1, x2); Jia j2 = new Jia(" ...
今天在采集错误时,发现有一个诡异异常: com.android.internal.os.LoggingPrintStream.println(LoggingPrintStream.java:298) 抛出空指针异常,NullPointerException,奇怪了,我没有调用这个方法啊,只是 System.out.println()出字符串信息?难不成println空指针字符串会出错为了验证这个问题,我特地写了如下代码再onCreate()里: String responseBody = null; System.out.println(responseBody); 当启动的时候你发 ...
import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.TimeZone; public class Time { /** * @param args */ public static void main(String[] args) { long t = 1283331724316L; Calendar c = Calendar.getInstance(); c.setTimeInMillis(t); c.setTimeZone ...
今天用mongodb统计,老是出错误,在反复改和看官网文档后,终于知道错在哪了! 在使用mongodb的mapreduce时,需要注意以下2点: 1.map中的emit的第二个参数和reduce返回的数据格式应该是一致的,否则会出现难以预见到的错误! 2.reduce方法是被迭代调用的,同一个key也会被调用多次,所以计算和时不能根据vals.length计算,而应该是累加和! 代码: m = function(){emit(this.info.level+"_"+this.info.mType,{level:this.info.level,mType:this.info ...
1.抽象:  抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。 2.继承:  继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。 3.封装:  封装是把过程和数据包围起来,对 ...
/** * 冒泡排序和快速排序 */ public class SwapSort { public static void main(String[] args) { int[] data = {261,53,48,11,13,48,32,15}; // bubbleSort(data); quickSort(data); for(int a: data){ System.out.print(a+" "); } } /** * 冒泡排序 */ public static voi ...
学习了插入排序算法,记录下以作备查 public class InsertSort { public static void main(String[] args) { int[] data = {261,53,48,11,13,48,32,15}; // binsort(data); // data = new int[]{261,53,48,48,32,15,13,11}; // binsort(data); // sort2(data); data = new int[]{261,53,48,48,32,15,13,11}; // sor ...
如何计算一定的成功几率的结果 经常遇到比如50%的成功概率,求某次到底成功了没有,下面是我的实现方法: /** * 以rand的概率返回true * rand范围是0.01%-99.99%。即0.0001-0.9999 */ public static boolean getTrueFalse(float r){ int v = (int) (r * 10000); if(v < 0 || v > 10000)throw new RuntimeException("out of range"); rand.setSee ...
Mongodb如何保持数据正确更新 所谓数据正确更新,就是在并发请求很多的情况下,不会出现被多次更新的情况。比如偷菜,一个人只能偷一次,不能因为同时多点了记下就偷了多次。 这类问题的通常解决办法就是Update if not change! 也就是在更新的时候,判断一下当前数据有没有被其他操作改变,如果没有改变,我才改变它,从而保证不会乱改变。。。实际操作时,把原值也传过去,即可。。。 Mongodb中通过把原值作为查询参数传递过去进行更新,如果原值已经被改变了,则这次更新操作失败,返回的结果记录应该为0,同时提示“updatedExisting”,如果成功了当然是大于0,我们只要判断返 ...
    Mongodb使用json格式存储数据,不像关系型数据库用记录来表示,它是一种nosql数据库。数据存储用key:value形式存储,这样表示好处就是简单。     在项目中,有一个用户的实体User,他有很多朋友,当然他的朋友也在数据库里 ...
base64编码的java实现 虽然有现成的库,自己也写了个,顺便学习一下忘记了很久的东西。 编码过程:参考wiki 引用 将三个byte的数据,先后放入一个24bit的缓冲区中,先来的byte占高位。数据不足3byte的话,于缓冲区中剩下的bit用0补足。然后,每次取出6(因为26 = 64)个bit,按照其值选择ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/中的字符作为编码后的输出。不断进行,直到全部输入数据转换完成。 如果最后剩下两个输入数据,在编码结果后加1个“=”;如果最后剩下一个输入数据,编码结果 ...
Transfer-Encoding: chunked 的含义 在用firebug查看服务器的请求时,返回的header都有Transfer-Encoding: chunked,在做实际应用时,好像也 没有多大关系。 试试用socket连接http服务器,看看数据是如何传输的。 Socket s = new Socket("172.16.1.123", 80); InputStream ins = s.getInputStream(); OutputStream os = s.getOutputStream(); os.write("GET /a. ...
Mongodb的MapReduce学习经验 Mongodb的Map/reduce在批量操作数据或者聚合操作时很有用。这是官网的英文文档,可以看看: http://www.mongodb.org/display/DOCS/MapReduce 现在,我该怎么用呢? 现在需要查看最近访问某人页面的5个人列表且不能重复, 访问轨迹在一个visit的collection里存储,visit里有3个字段,u,f,t.分别代表被访者id,访问者id,和访问时间。 现在如果用普通查询,sort可以解决,但是不能重复不能解决,本以为可以用distinct,但在mongodb里,distinct是用 run ...
转来滴,话说我当时自己觉得选E,但WB选D,大龙选E,最后还是选了E。 今天晚上Google的2011年校园招聘宣讲会分别在北大和清华举行,其中北大本来是350 人的会场,去了大约600多人,爆满,那场面绝对是人山人海,彩旗飘飘。经过了大约 一个小时多的宣讲和问答,开始现场笔试环节,一共10个选择题和三个算法题,只有选 择题答对了6个以上的人才有机会让面试官看你后面的算法题。然后明天下午会通知笔 试通过的人进行面试,Google的效率就像其搜索引擎一样迅速,效率可见一般。 其中前10个选择题中有一个特别雷人的,题如下: 现在北京有一套房子,价格200万,假设房价 ...
不说话,直接上代码: import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.OutputStreamWriter; import java ...
Global site tag (gtag.js) - Google Analytics