java中compreable接口讲解_java经典常用代码

// 加锁保证同步

Lock lock = new ReentrantLock();

try {

lock.lock();

// todo

} finally {

lock.unlock();

}

线程通信wait(), notify(), notifyAll()

生产者-消费者模式

Executors

//21. 内省或“命令类的类”

// 反射

Class c = Class.forName("http://www.doczj.com/doc/1b8c6a3f6c85ec3a87c2c5f5.htmlng.String");

Constructor[] cons = c.getConstructors();

for (int i = 0; i < cons.length; i++) {

System.out.println(cons[i].toString());

}

Method[] meths = c.getMethods();

for (int i = 0; i < meths.length; i++) {

System.out.println(meths[i].toString());

}

// 动态装载类

Class c = Class.forName("http://www.doczj.com/doc/1b8c6a3f6c85ec3a87c2c5f5.htmlng.String");

Object obj = c.newInstance();

// 通过反射调用类的方法

class X {

public void master(String s) {

System.out.println("Working on \"" + s + "\"");

}

}

Class clx = X.class;

Class[] argTypes = {String.class};

Method worker = clx.getMethod("master", argTypes);

Object[] theData = {"Chocolate chips"};

worker.invoke(new X(), theData);

输出: Working on "Chocolate chips"

//22. Java与其他语言的结合

// 执行CMD命令,在Eclipse控制台输出

Process p = Runtime.getRuntime().exec("C:/StudySource/ver.cmd");

p.waitFor(); // 等待命令执行完

BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));

String s;

while ((s = br.readLine()) != null)

System.out.println(s);

// 调用Jython - 计算22.0/7

BSFManager manager = new BSFManager();

String[] fntypes = {".py"};

manager.registerScriptingEngine("jython", "org.apache.bsf.engines.jython.JythonEngine", fntypes);

Object r = manager.eval("jython", "testString", 0, 0, "22.0/7");

System.out.println("Result type is " + r.getClass().getName());

System.out.println("Result value is " + r);

// 调用C++,使用JNI

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值