你的main方法里只有一行代码,new 了一个PrimeThreads,参数是字符串数组 args
目前创新互联已为成百上千家的企业提供了网站建设、域名、网页空间、网站运营、企业网站设计、安国网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
PrimeThreads pt = new PrimeThreads(args);
调用PrimeThreads的构造方法
public PrimeThreads(String[] args) {
PrimeFinder[] finder = new PrimeFinder[args.length];
for (int i = 0; i args.length; i++) {
//……
注意这里有个字符串数组参数:args
PrimeThreads的构造方法内部的所有实现都是围绕着args的,如果args没有元素也就是args.length() == 0 ,那么第一个for循环直接跳过,同时finder也没有元素,第二个for循环也直接跳过,然后在sleep那里睡眠1秒,while循环也退出,程序结束。于是出现了你说的总时间1秒。
在来说说args,这个参数最早是在main方法中传进来的
public static void main(String[] args){
其实这个参数默认情况是没元素的是空的
试试给PrimeFinder构造方法传值看看效果
可以看出来你描述的运行之后没输出的原因即是args为空
关于如何给args赋值你可以自行百度,这里贴一个刚刚百度到的链接
声明创建数组时要加上数组的长度 不能直接赋值为null 如果你不知道需要的数组的长度 可以用集合来代替
public class hello {
static public double f(double x) {
return (x * (x + 1) * (x + 1) - 1.0);
}
public static void main(String args[]) {
int i;
double x[] = new double[8];
x[0] = 0.4;
x[1] = 0.6;
for (i = 1; i 6; i++) {
x[i + 1] = x[i] - f(x[i]) * (x[i] - x[i - 1])
/ (f(x[i]) - f(x[i - 1]));
}
for (i = 0; i 6; i++) {
System.out.println("x[" + i + "]=" + x[i] + " " + "\tf(x" + i
+ ")=" + f(x[i]));
}
}
}
将控制面板-区域-位置改到中国就行了,你现在的语言环境不支持中文,改回来就行了
'o'b.charAt(i)b.charAt(i)'g'
这个地方写的不对 就相当于 x10 x5 一样 肯定是false
所以c必然是空字符串
你的parseInt也就出错了。
而且我没有用过Integer.parseInt(d, 10) 不知道你说的十进制是什么意思