小编Cra*_*lus的帖子

通过执行程序的java线程重用

我对以下内容感到困惑:
要在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次,而我们不能在我们的程序中?我误会了什么吗?

谢谢.

java multithreading executorservice threadpool executors

6
推荐指数
2
解决办法
2897
查看次数

java vs C++通过引用传递


我对以下内容感到困惑:
在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中的内存吗?

c++ java function pass-by-reference

6
推荐指数
1
解决办法
5338
查看次数

java-使用过滤器检查远程地址

检测Web应用程序是否在本地访问的最佳方法是什么?
我有兴趣在过滤器(javax.servlet.Filter)中检查它.
我可以检查ServletRequest#getRemoteAddr()它是否是,127.0.0.1但如果它在IPv6机器上运行,地址将是0:0:0:0:0:0:0:1.
是否还有其他陷阱我应该注意,或者如果我只检查这两个字符串模式,我会没事的?

谢谢

java tomcat web-applications java-ee servlet-filters

6
推荐指数
1
解决办法
7616
查看次数

Tomcat中的Web应用程序部署

Tomcat是否为其容器中运行的每个Web应用程序使用不同的Java虚拟机(JVM),或者Tomcat中的所有Web应用程序是否在同一JVM下运行?

因此,对于一个特定的示例:如果Web应用程序下的Web应用程序以编程方式启用JMX(通过系统属性),这是否意味着为容器中运行的所有Web应用程序启用了JMX?

我相信情况确实如此,但我想确认一下.

这个问题来自我在这个帖子中的问题:关于tomcat和jmx的问题.有关该主题的任何意见表示赞赏.

java tomcat jmx java-ee

6
推荐指数
1
解决办法
2307
查看次数

我不可能理解所描述的字符串搜索方法.什么是uFFFF?

我正在阅读有关在排序的字符串数组中搜索(范围)字符串的内容.

它说:

如果要查找以"h"开头的所有字符串,可以对字符串"h"和"h\uFFFF"运行二进制搜索.这给出了以"h"开头的所有键的频带的所有索引.请注意,二进制搜索可以返回索引所在的索引,即使它实际上不在数组中也是如此.

我对这一段不明白.

h\uFFFF它是如何帮助/用于二进制搜索的,并且最后的句子也意味着即使这个搜索也有问题?

有什么帮助可以理解这里的内容吗?

java string algorithm performance binary-search

6
推荐指数
2
解决办法
1912
查看次数

表示对象中优先级/首选项的最佳方法是什么?

在域中建模优先级/首选项的最佳方法是什么?
例如,假设我有一个Person代表一个人的课程并且有一些偏好,例如PersonX喜欢披萨,spaggetti和omelete,实际上他更喜欢spagetti比披萨.
这些最好的模型如何?
第一个想法只是将它们放入List(作为成员变量Person)根据插入顺序保持首选项,例如列表中的第一个是最喜欢的,然后列表中的第二个是最喜欢的等等但是这似乎是我最终太乏味了.例如,当我想对偏好等进行搜索或关联时,
或许对这样的问题有一个标准的方法吗?

java oop design-patterns domain-driven-design

6
推荐指数
1
解决办法
331
查看次数

正确使用Eclipse 4中的ProgressMonitorDialog

我有一组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);

我该如何解决这个问题?

java eclipse swt jface eclipse-rcp

6
推荐指数
1
解决办法
1万
查看次数

什么应该是哈希表中的关键的最佳实践

最好的查找结构是HashTable.它平均提供持续访问(在最坏的情况下是线性的).
这取决于散列函数.好.
我的问题如下.假设一个良好的实现HashTable例如HashMap是否有关于在映射中传递的密钥的最佳实践?我的意思是建议密钥必须是不可变对象但我想知道是否有其他建议.
示例键的大小?例如,在一个好的hashmap(以上述方式)中,如果我们用作String键,那么"瓶颈"是否会在字符串比较中equals(试图找到键)?钥匙要保持小吗?或者是否有不应该用作键的对象?比如一个URL?在这种情况下,您如何选择使用什么作为关键?

java algorithm hashtable hashmap data-structures

6
推荐指数
1
解决办法
3354
查看次数

这个Eclipse视图是如何制作的?

Eclipse插件视图

我正在开发一个Eclipse插件,它将添加一个新的上下文菜单,当点击时会弹出一个对话框,用户可以从要安装的东西列表中进行选择.我希望我的对话框具有与所附屏幕截图相同的外观和感觉(当您编辑新插件时来自eclipse).

所以我的问题是:知道这个界面是如何制作的吗?这是HTML,如果是这样,怎么办呢?或者这是自定义Swing控件,还是这样的?我是Java的新手,所以我可能不会正确地提出这个问题,但任何帮助都会受到赞赏.

谢谢.

java eclipse eclipse-plugin

6
推荐指数
2
解决办法
151
查看次数

Perl中的数组和负索引

我是新手,Perl我正在读关于阵列.
据我所知,数组会根据需要自动扩展(很酷!)
但我还读到我们可以使用负索引以相反的顺序访问数组.
例如,3个元素的数组可以被访问为:
$array[0] $array[1] $array[2]

$array[-1] $array[-2] $array[-3] (以相反的顺序).
我的问题是小于-3例如的值会发生什么$array[-5]
阵列是扩展还是什么?

arrays perl

6
推荐指数
1
解决办法
6789
查看次数