Java
matrixdwy
这个作者很懒,什么都没留下…
展开
-
如何使得一个JComponent组件不论是否获得焦点,都可以响应键盘事件
这个问题来自于一个课程作业,作业要求不论什么情况下按alt-h都可以使得JTabbedPane中的一个Pane变成选中。我试过很多方法,比如为JTabbedPane添加一个KeyListener,这个方法的确成功了,但是如果其他Pane中的组件获得了焦点(比如JTextField),那么按alt-h就失效了。还想过给JFrame添加KeyListener,结果压根JFrame收不到任何键盘原创 2009-02-11 22:50:00 · 1478 阅读 · 1 评论 -
Atomicity(原子性),visibility(可被观察性),volatility(挥发性)
一、Atomicity(原子性)定义:atomic操作是指一个不会被thread scheduler打断的操作箴言:1.除非你是多线程【专家】,否则不要使用atomicity来代替synchronization2.有时候,即使一些操作看上去是atomicity,但实际上它可能并不是3.任何对去掉synchronization的尝试,通常是不成熟优化的信号,并带来许多麻烦应用:1.atomicity原创 2009-02-16 21:47:00 · 1114 阅读 · 0 评论 -
关于synchronized关键字的那些事儿
一、对象级别的同步1.类A有一个synchronized F(),一旦某Thread#1调用A类对象a.F(),则在F()返回前,Thread#2是不能够调用a.F()的。2.若类A中还有一个synchronized G(),那么在a.F()返回前,Thread#2也是不能够调用G()的。以上两种情况,Thread#2在a.F()返回前,都会进入blocking(阻塞)状态。注意:1.如果类原创 2009-02-16 21:51:00 · 587 阅读 · 0 评论 -
确保Runtime.getRuntime().exec()执行结束再执行下一步
Runtime.getRuntime().exec()是一个很有用的函数,可以调用操作系统的shell指令。但是这个函数有一个问题,当它把传给它的控制台命令丢给shell执行后,它就立即返回了。 这个问题看起来不大,但是如果我们用shell指令复制一个A文件到B文件,然后在下一语句中对B文件进行操作,那么问题就来了。因为shell指令很可能还没有执行完(而exec( )函数却已经返回了原创 2009-02-20 20:22:00 · 10896 阅读 · 2 评论 -
java中获得文件流的两种方法
InputStream in = new FileInputStream(xmlPath); // 相对于项目所在路径InputStream in = getClass().getResourceAsStream(xmlPath); // 相对于当前类.java所在路径原创 2009-03-13 21:14:00 · 1269 阅读 · 0 评论 -
ECLIPSE找不到插件的解决方法
原文地址:http://blog.113e.com/327615.shtml有时启动eclipse未加载插件,解决方法很多,总结一下:删除整个目录/eclipse/configuration/org.eclipse.update/,重启eclipse在启动eclipse时带上 -clean参数 如:d:/eclipse/eclipse.exe -clean如果转载 2009-03-13 21:15:00 · 3642 阅读 · 2 评论 -
在运行时开启断言的方法
ClassLoader.setDefaultAssertionStatus(true);ClassLoader.getSystemClassLoader().setDefaultAssertionStatus(true);原创 2009-03-29 20:42:00 · 690 阅读 · 0 评论 -
为什么Synchronized block要使用this作同步
为什么Synchronized block要使用this作同步学Java并发编程时遇到过一个问题:为什么凡是涉及到Synchronized block的代码,总是使用synchronized(this)这样的代码。一开始很疑惑不解,既然Synchronized block可以通过获得对象的锁来使得多个线程对同一对象的访问同步,那么Synchronized block可以使用任何对象(比如成员变量)原创 2009-04-04 23:38:00 · 2420 阅读 · 0 评论