我对以下内容感到困惑:
要在Java程序中使用线程,最简单的方法是扩展Thread类并实现runnable接口(或简单地实现runnable).
启动线程的执行.我们必须调用Thread的方法start(),然后调用线程的方法run().所以线程开始了.
方法start()(除非我错了)必须完全调用,每个线程只调用一次.因此,线程实例不能被重用,除非某种方式运行方法本身在某个短的无限循环中运行,这有利于自定义实现线程的重用.
现在javadoc
链接文本
说
如果可用,执行调用将重用先前构造的线程
我不明白这是如何实现的.我在执行方法的execute方法中提供了我的自定义线程,例如
ExecutorService myCachedPool = Executors.newCachedThreadPool();
myCachedPool.execute(new Runnable(){public void run(){
//do something time consuming
}});
Run Code Online (Sandbox Code Playgroud)
如何重用我删除到执行程序框架的自定义线程?
Executor是否允许调用方法start()超过1次,而我们不能在我们的程序中?我误会了什么吗?
谢谢.
我对以下内容感到困惑:
在C++中,我们可以通过引用将参数传递给函数(将其声明为指针或引用变量),如果我们在函数内部修改它,则当函数返回时,更改会反映给调用者.
这不是在java中发生的,我不确定我理解为什么.
例如,这是来自对象X的方法
public boolean aMethod(int id, myClass aClass)
{
//do some logic
aClass = new MyClass();
//configure argument object aClass
return true;
}
Run Code Online (Sandbox Code Playgroud)
在调用代码中:
//some code processing
myClass obj = null;
if(X.aMethod(2,obj))
{
obj.methodA();//start using the object
}
Run Code Online (Sandbox Code Playgroud)
我在C++中使用它,即返回一个通知可以使用函数参数的结果,但在java中这不起作用.
我输入if(X.aMethod(2,obj))分支,但obj为null.为什么它为空?
我没有在方法aMethod(int id,myClass aClass)中使用new分配堆中的内存地址吗?我没有在函数中传递obj的"地址"吗?我期望在调用代码中正确构造和使用obj.我误解了java中的内存吗?
检测Web应用程序是否在本地访问的最佳方法是什么?
我有兴趣在过滤器(javax.servlet.Filter)中检查它.
我可以检查ServletRequest#getRemoteAddr()它是否是,127.0.0.1但如果它在IPv6机器上运行,地址将是0:0:0:0:0:0:0:1.
是否还有其他陷阱我应该注意,或者如果我只检查这两个字符串模式,我会没事的?
谢谢
Tomcat是否为其容器中运行的每个Web应用程序使用不同的Java虚拟机(JVM),或者Tomcat中的所有Web应用程序是否在同一JVM下运行?
因此,对于一个特定的示例:如果Web应用程序下的Web应用程序以编程方式启用JMX(通过系统属性),这是否意味着为容器中运行的所有Web应用程序启用了JMX?
我相信情况确实如此,但我想确认一下.
这个问题来自我在这个帖子中的问题:关于tomcat和jmx的问题.有关该主题的任何意见表示赞赏.
我正在阅读有关在排序的字符串数组中搜索(范围)字符串的内容.
它说:
如果要查找以"h"开头的所有字符串,可以对字符串"h"和"h\uFFFF"运行二进制搜索.这给出了以"h"开头的所有键的频带的所有索引.请注意,二进制搜索可以返回索引所在的索引,即使它实际上不在数组中也是如此.
我对这一段不明白.
h\uFFFF它是如何帮助/用于二进制搜索的,并且最后的句子也意味着即使这个搜索也有问题?
有什么帮助可以理解这里的内容吗?
在域中建模优先级/首选项的最佳方法是什么?
例如,假设我有一个Person代表一个人的课程并且有一些偏好,例如PersonX喜欢披萨,spaggetti和omelete,实际上他更喜欢spagetti比披萨.
这些最好的模型如何?
第一个想法只是将它们放入List(作为成员变量Person)根据插入顺序保持首选项,例如列表中的第一个是最喜欢的,然后列表中的第二个是最喜欢的等等但是这似乎是我最终太乏味了.例如,当我想对偏好等进行搜索或关联时,
或许对这样的问题有一个标准的方法吗?
我有一组API来执行文件操作,例如 saveToFile(CustomObject objectToSave);
由于文件操作可能很长,我决定应该向用户显示某些指示,例如进度条.
我读了一下ProgressMonitorDialog,所以我尝试了,但它并不完全正常,因为我需要(或者更好,我不知道如何正确使用它).
目前我这样做:
ProgressMonitorDialog progressDialog = new ProgressMonitorDialog(theShell);
try {
progressDialog.run(false, true, new IRunnableWithProgress() {
@Override
public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
monitor.beginTask("Saving your data", 100);
try {
Utils.saveToFile(objectToSave);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
monitor.done();
}
});
Run Code Online (Sandbox Code Playgroud)
这段代码非常快速地显示了一个进度对话框,但问题是在较慢的PC上这会堆叠直到Utils.saveToFile返回,而我不知道如何在保存完成之前指示中间进程.
我找到了一个提到的线程,IProgressMonitor.UNKNOWN但它没有说明在monitor期间发生的事情performRead(_fileName, monitor);
我该如何解决这个问题?
最好的查找结构是HashTable.它平均提供持续访问(在最坏的情况下是线性的).
这取决于散列函数.好.
我的问题如下.假设一个良好的实现HashTable例如HashMap是否有关于在映射中传递的密钥的最佳实践?我的意思是建议密钥必须是不可变对象但我想知道是否有其他建议.
示例键的大小?例如,在一个好的hashmap(以上述方式)中,如果我们用作String键,那么"瓶颈"是否会在字符串比较中equals(试图找到键)?钥匙要保持小吗?或者是否有不应该用作键的对象?比如一个URL?在这种情况下,您如何选择使用什么作为关键?

我正在开发一个Eclipse插件,它将添加一个新的上下文菜单,当点击时会弹出一个对话框,用户可以从要安装的东西列表中进行选择.我希望我的对话框具有与所附屏幕截图相同的外观和感觉(当您编辑新插件时来自eclipse).
所以我的问题是:知道这个界面是如何制作的吗?这是HTML,如果是这样,怎么办呢?或者这是自定义Swing控件,还是这样的?我是Java的新手,所以我可能不会正确地提出这个问题,但任何帮助都会受到赞赏.
谢谢.
我是新手,Perl我正在读关于阵列.
据我所知,数组会根据需要自动扩展(很酷!)
但我还读到我们可以使用负索引以相反的顺序访问数组.
例如,3个元素的数组可以被访问为:
$array[0] $array[1] $array[2]
或
$array[-1] $array[-2] $array[-3] (以相反的顺序).
我的问题是小于-3例如的值会发生什么$array[-5]?
阵列是扩展还是什么?