摘要: 前言顾名思义,同步的意思。当两个线程对一个对象实例进行读写操作的时候,很容易引起读写脏数据、不可重复读、丢失更新的问题。当代码块被声明了一个Synchronized的时候,就意味着该代码块只能有一个线程能读,其他线程只有等待的状态,等待其他线程读完才能获得该代码块的执行权,本文以理论理解为主,快速回忆;正文第一种方式:同步类中的方法,静态方法和非静态方法。 public synchronized void method() { }同理,对于静态方法来说,只要加上了synchronized关键字,这个方法就是同步的, class Test { pub... 阅读全文
posted @ 2013-01-30 14:25 广州_大臣 阅读(254) 评论(0) 推荐(0) 编辑
摘要: 前言第一次看到join ,以为是数据库的join , 最后才搞清楚,官网的介绍是:join public final void join (long millis )throws InterruptedException Waits at most millis milliseconds for this thread to die. A timeout of 0 means to wait forever.正文这个知识点比较容易理解,直接应用其他网站的代码+我的注释;主要作为备忘录;package mythread;publicclassJoinThread extends Thread { 阅读全文
posted @ 2012-12-07 12:10 广州_大臣 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 总结图 阅读全文
posted @ 2012-12-04 23:08 广州_大臣 阅读(246) 评论(0) 推荐(0) 编辑
摘要: Junit 3.8 对私有方法的测试 ; 1,修改方法的访问修饰符,讲private 修改 default或者 public ,但不推荐采取这种方式,因为测试尽量不去修改源代码; 2 , 使用反射在测试类中调用目标类的私有方法;源代码:1 package com.study.junit;2 3 public class calculator {4 5 private int add(int a ,int b)6 {7 return a + b ;8 }9 }测试代码: 1 package com.study.junit; 2 3 impor... 阅读全文
posted @ 2012-05-08 22:12 广州_大臣 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 一,Junit 最佳实践;新建一个名为test 的source folder ,用来存放测试类源代码,建个包,名字和测试对象名字一致目标类编译后class与测试类编译后应该位于同一个包下面,这样测试类就必要导入源代码所在的包,因为他们的class位于同一个包下;测试类的命名规则:在对应测试类后面加上Test二,Junit 3.8 中,测试方法需要满足如下原则;public 的void的无方法参数方法名称必须已test开头源代码: 1 package com.study.junit; 2 3 public class MyStack 4 { 5 private String[] ele... 阅读全文
posted @ 2012-05-08 22:03 广州_大臣 阅读(204) 评论(0) 推荐(0) 编辑
摘要: 在论坛看到人家面试的 sql:select 1 from table ,一下子反应不过来,囧,不废话,上机实操得永生:测试场景: table表是一个数据表,里面有4行数据;如下图1,执行查询:select 1 from table 生成没有列名的临时,每行的值是就是select后面的数,1其实就是一个产量,如下图:2,执行查询:select count(1) from table理解上一句SQL,这句就相对简单,得出的值是table表的行数3, 执行查询:select sum(1) from table ;计算临时列的总和。PS:如果这里还不是很清楚,可以试试把1换成2,就清晰多了;学习到这里 阅读全文
posted @ 2012-04-26 11:20 广州_大臣 阅读(4338) 评论(0) 推荐(1) 编辑