`
文章列表
1. Windows访问Linux中的文件 a. putty, winscp通过SSH访问 需要提供Linux的ip地址,用户名和密码 b. Linux中架设ftp服务器 i. 在Linux中开启vsftpd服务: service vsftpd start ii. 在Windows中通过资源管理器或者ftp客户端访问 ftp://root:123456@192.168.1.103 2. Linux访问Windows的文件 a. Linux的光驱加载Windows下的iso映像 i. 使用ISORecorder将Windows下的文件夹打包成iso映像 ii. ...
线程互斥是一次只有一个线程执行某段代码,保证数据的一致性。线程通信是指通过notify或notifyAll来唤醒在wait某个对象锁的线程。实现方式是通过synchronized关键字声明。 1. 如果同步代码块在对象方法中,可以实例化一个Object来作为lock的对象,或者用this关键字表示lock这个对象: synchronized(obj) { // code block } synchronized(this) { // code block } 2. 如果同步代码块在静态方法中,使用一个静态对象,如当前class的字节码来作为lock的对象: ...
1. 根据不同的运行平台,选择不同的OpenLdap安装软件安装 Linux: http://www.openldap.org/software/download/ Windows http://www.userbooster.de/en/download/openldap-for-windows.aspx 2. 配置slapd.conf 打开安装目录下的slapd.conf,可以看到一些预定义的配置,包括以下几个部分: ucdata路径 schema配置 访问权限控制 运行id和参数 动态模块 SSL配置 如果不需要SSL或者没有证书文件,则忽略下面代码: TLS ...
Cloneable接口声明中没有指定要实现的方法,一个类要实现Cloneable,最好是覆盖Object类的clone()方法。 1. 如果类没有实现Cloneable接口,调用类对象的clone方法抛出CloneNotSupportedException。 public class CloneableTest { public static void main(String[] args) throws CloneNotSupportedException { CloneableTest test = new CloneableTest(); Object obj ...
Condition是一个条件功能的class,必须放在Lock代码块内,如同wait,notify方法放在synchronized块一样。 Condition的(await,signal)与object的(wait,notify)相比,提供了更为通用和灵活的解决方案,可以让多种条件的线程之间相互通信。 Condition的定义: public interface Condition{ void await() throws InterruptedException; void awaitUninterruptibly(); long a ...
  Start.jar会调用org.mortbay.xml.XmlConfiguration的main()方法,如果没有提供启动参数则使用缺省的jetty.xml。代码首先实例化XmlConfiguration对象,然后调用其configure()方法去加载定义在xml文件里的类org.mortbay.jetty.Server,然后实例化Server类。 1. XmlConfiguration.main()方法: public static void main(String[] args) { try { P ...
简单工厂(Simple Factory)模式:又称静态工厂方法(Static Factory Methord)模式。 工厂方法(Factory Method)模式:又称多态性工厂(Polymorphic Factory)模式或虚拟构造子(Virtual Constructor)模式。 抽象工厂(Abstract Factory)模式:又称工具箱(Kit或Toolkit)模式。 这几个模式是逐级抽象的: 1. 简单工厂模式只是对产品做了抽象,就是说把一类产品抽象出个接口或者抽象方法,然后由工厂去根据情况实例化某个具体的产品。 2. 工厂方法模式是在简单工厂模式的基础上对工厂做了抽象,把 ...
自动化测试工具有QTP, RFT等,下面就介绍下用RFT测试Flex (SDK version: 2.0.1)的步骤: RFT(Rational Functional Test)是IBM开发的一套自动化测试工具,可以测试web, GUI和console。 前提条件: 1. Flex SDK installed 2. RFT installed 3. jdk installed 4. flex automation support available    如果没有装Flex automation软件,可以下载包含下面两个文件的附件    automation_agent.swc    a ...
加载资源可以用绝对路径和相对路径,但都有局限性。用硬编码的方式不好。 比较好的方式是绝对+相对方式。即绝对路径就是应用程序安装的路径,相对路径是资源文件相对于程序根目录的路径。 java.lang.ClassLoader不仅可以加载类到内存中,还可以加载其它的资源。 1. ClassLoader.getResourceAsStream 比方说配置文件,很多时候都是放在源代码路径下的,这样就可以直接使用ClassLoader package com.john.basis; public class MyClass { InputStream inputStream = M ...
java.lang.reflect.Array    Java反射机制通过Array类来处理数组,结合java.lang.Class类,可以在运行时获取数组的相关信息。要和集合包中的java.util.Arrays区分开,Arrays类是一个数组工具类(排序、遍历数组,将数组转换为集合等)。 实例化数组 如果在编译时知道数组的类型(如int类型),使用new关键字实例化 float[] array = new float[3]; 也可以使用反射: float[] array = Array.newInstance(float.class, 3); 和new关键字类似,这个 ...
cascade定义的是关系两端对象到对象的级联关系;而inverse定义的是关系和对象的级联关系。 这里举个简单的例子: 你去网购买个手机外壳, 如果你指定外壳的cascade=all,网店除了把外壳寄给你之外,顺带把外壳的几个螺丝也寄给你。 如果你指定外壳的cascade=none,网店仅仅把外壳寄给你。你还要单独购买螺丝。 你完全不知道这个外壳有哪几个螺丝,也不知道某个螺丝属于某个外壳, 这时你让外壳说话了(外壳的inverse=false):a, b, c, d这四颗螺丝是属于它的。 或者你让螺丝说话(螺丝的inverse=false):我是属于m外壳的。 cascade 是级联的程 ...
setTimeout和setInterval是延时或定时调用某个函数某段代码。基本上是一样的,接下来就只以setTimeout为例。 通常使用形式: iTimerID = setTimeout(strJsCode, 500)   //strJsCode为一个包含js代码的字符串 iTimerID = setTimeout(objFunction, 500) //objFunction为一个函数对象 看一下下面的代码: function showArguments() { var s = 'length: ' + arguments.length; for (var i = 0 ...
eval(str)是把传入的str当做脚本来执行,如果直接调用eval(),作用域为当前作用域。 function accumulate() { var i = 1; eval("var i = 3;"); document.writeln(i); } accumulate(); 执行结果:3 如果改成window.eval(): function accumulate() { var i = 1; window.eval("var i = 3;"); document.writeln(i); ...
在javascript函数内部声明变量,加var为局部变量,不加var为全局变量。 function entail() { var i = 4; } entail(); document.writeln(i); 执行会报错:i is undefined function entail() { i = 4; } entail(); document.writeln(i); 结果为 4
1. List 迭代过程中删除元素采用list.remove(obj)会造成其size自减,modCount自增而产生问题: Collection list = new ArrayList(); list.add("creek"); list.add("misty"); list.add("forest"); Iterator iter = list.iterator(); while (iter.hasNext()) { Object obj = iter.next(); if (" ...
Global site tag (gtag.js) - Google Analytics