- 浏览: 28916 次
- 性别:
- 来自: 上海
最新评论
文章列表
Why final is not applied for Map ?
Prabhat Ranjan Ranch Hand Joined: Oct 04, 2006Posts: 374
posted 2010年11月16日 GMT+8下午8:00:19
double checked locking 实现法:
下面代码就是用double checked locking 方法实现的单例,这里的getInstance()方法要检查两次,确保是否实例INSTANCE是否为null或者已经实例化了,这也是为什么叫double checked locking 模式。
二行制转hex字符串的方法如下:
二行制转hex字符串的方法如下:
private static String byte2hex(byte[] b){
String hs="";
String stmp="";
for (int n=0; n<b.length; n++){
stmp=(java.lang.Integer.toHexString(b[n] & 0xFF));
if (stmp.length()==1) hs=hs+"0"+stmp;
...
When Doing Selenium tests, to locate the certain web elements, there are several methods.
Like By.id, By.className, By.tagName, By.name... But among them all, we use By.xPath and By.cssSelector to specify the elements with complex structure in the web page.
Now, while we are writing script to fin ...
使用Eclipse运行你的程序,讲Perspective改为Debug模式
右键选中的应用,单击properties。
你可以看到Command Line.
JavaScript的一些总结
- 博客分类:
- JavaScript
JavaScript的作用域链
在JS中,作用域的概念和其他语言差不多, 在每次调用一个函数的时候 ,就会进入一个函数内的作用域,当从函数返回以后,就返回调用前的作用域.
JS的语法风格和C/C++类似, 但作用域的实现却和C/C++不同,并非用“堆栈”方式,而是使用列表,具体过程如下(ECMA262中所述):任何执行上下文时刻的作用域, 都是由作用域链(scope chain, 后面介绍)来实现.在一个函数被定义的时候, 会将它定义时刻的scope chain链接到这个函数对象的[[scope]]属性.在一个函数对象被调用的时候,会创建一个活动对象(也就是一个对象), 然后对于 ...
线程在一定条件下,状态会发生变化。线程变化的状态转换图如下:
1、新建状态(New):新创建了一个线程对象。
2、就绪状态(Runnable):线程对象创建后,其他线程调用了该对象的start()方法。该状态的线程位于可运行线程池中,变得可运行,等待获取CPU的使用权。
3、运行状态(Running):就绪状态的线程获取了CPU,执行程序代码。
4、阻塞状态(Blocked):阻塞状态是线程因为某种原因放弃CPU使用权,暂时停止运行。直到线程进入就绪状态,才有机会转到运行状态。阻塞的情况分三种:
(一)、等待阻塞:运行的线程执行wait()方法,JVM会把该线程放入等待 ...
采用Selenium2 作为Web前段测试工具,跑测试脚本的时候遇到的问题是这样的:
比如进行10遍browser测试,在每次测试完成后,driver.quit(),关闭浏览器再重新开启后,对于IE,Cache会继续存在。所以对于需要Cache的测试,这样的Situation是满足的。
然而换成了Firefox后,FirefoxDriver目前采取的策略默认是新建profile。
即使将其设置为customer profile
FirefoxProfile profile = new ProfilesIni().getProfile("MySelenium& ...
1) 类中Static{}代码段会在该类第一次访问里被调用,并且仅被调用一次2) 由于类中构造方法会默认地或显示的调用父类的构造方法,这样类在实例化时(即调用构造器方法),会优先调用构造器方法。如下程序:
class Firework{
static {
System.out.println("Hello" );
}
public Firework () {
System.out.println("Firework 0" );
}
}
cl ...
怎么查看端口占用情况?
- 博客分类:
- tricks
开始--运行--cmd 进入命令提示符 输入netstat -ano 即可看到所有连接的PID 之后在任务管理器中找到这个PID所对应的程序如果任务管理器中没有PID这一项,可以在任务管理器中选"查看"-"选择列"
经常,我们在启动应用的时候发现系统需要的端口被别的程序占用,如何知道谁占有了我们需要的端口,很多人都比较头疼,下面就介绍一种非常简单的方法,希望对大家有用
假如我们需要确定谁占用了我们的9050端口
1、Windows平台在windows命令行窗口下执行:
C:\>netstat -aon|find ...
Selenium is browser automation tool, for more information select this link. We already have Selenium1.0, why Selenium2.0? Selenium1.0 can't tackle following items. 1. Native keyboard and mouse events. 2. Same origin policy XSS/HTPP(S) 3. Pop-ups, dialogs (Basic authentication, Self signed certificate ...
无论你是多牛的程序员,你都无法记住所有的东西。而很多时候,查找某些知识又比较费事。所以,网上有很多Cheat Sheets,翻译成小抄也好 ,速查卡也好,总之就是帮你节省 时间的。之前给大家介绍过Web设计的速查卡、25个jQuery的编程小抄,还有程序员小抄大全,今天转一篇开发人员的速查卡,源文在这里。下面的文章我就不翻译了。
HTML Cheat Sheet
HTML/XTML in one page
既然多态是面向对象的三大本质特征之一(其它两个是数据抽象和继承),那么C++为什么不将方法调用的默认方式设置为动态绑定,而要通过关键字virtual进行标记呢?Bruce Eckel在《Thinking in C++》中提到,这是由于历史原因造成的,C++是从C发展而来的,而C程序员最为关心的是性能问题,由于动态绑定比静态绑定多几条指令,性能有所下降,如果将动态绑定设定为默认方法调用方式,那么很多C程序员可能不会接受,因此,C++就将动态绑定定位成可选的,并且作出保证:If you don't use it, you don't pay for it(Stroustrup)。 但是,J ...
一个优秀的程序员如何能练就成一个卓越的程序员?
先等等,暂时不谈卓越,先谈谈如何成为一个优秀的程序员。
从第一步到第N步并没有明确的路线图。事实上,第N步到底是什么还不确定。就像逻辑型思维的开发者一样,缺乏明确的目标会让从入门到精通的道路变得异常崎岖。
过去的几年中,我花了不少时间来思索这个问题。我该如何从一名能力尚可的程序员修炼成一个真正优秀的程序员呢?
成功是什么?
当我对成功有清晰的目标、量化的标准的时候,我就能发挥我的最大潜力。比如,我想实现5分钟跑完一英里这个目标。好吧。这个路程很容易测量,成功的界限分明。我很容易知道跑一英里需要多久,网上也到处都是 ...
如何优化switch语句
编程的过程中难免会使用到switch语句,case如果少的情况下,效率和性能还可以,如果出项比较多的case的情况下,
还使用swtich,将会大大影响程序的性能。如何优化这样比较大的switch语句呢?有三种方法:
第一种方法就是根据频率来排列case的位置,对于频率较高的case放到前面,而不是按照
case的值得有序排列,例如:
switch (type)
{
case 1:
break;
case 2:
break;
…
case 20:
break;
default:
...