java计算1到1亿的和
计算1到1亿的和是一道经典的算法题,对于Java程序员来说也是必须掌握的基本技能之一。
以下是一个使用Java语言计算1到1亿的和的例子:
public class CalculateSum {public static void main(String[] args) {long sum = 0;for(int i = 1; i<= 100000000; i++) {sum += i;}System.out.println("1到1亿的和为:" + sum);}}
以上代码使用了for循环来遍历1到1亿之间的所有数字,并计算它们的和。最后,使用System.out.println()方法输出结果。
但是,这个方法在性能上还有优化的空间。我们可以使用多线程来提升计算速度。以下是使用多线程计算1到1亿的和的代码:
public class MultiThreadCalculateSum {public static void main(String[] args) {final int THREAD_COUNT = 10; // 10个线程final int NUMBER_COUNT_PER_THREAD = 10000000; // 每个线程计算的数字数量long sum = 0;for(int i = 0; i< THREAD_COUNT; i++) {final int begin = i * NUMBER_COUNT_PER_THREAD + 1;final int end = (i + 1) * NUMBER_COUNT_PER_THREAD;Thread thread = new Thread(new Runnable() {@Overridepublic void run() {long subSum = 0;for(int j = begin; j<= end; j++) {subSum += j;}synchronized (this) {sum += subSum;}}});thread.start();}while(Thread.activeCount() >1) {Thread.yield();}System.out.println("1到1亿的和为:" + sum);}}
以上代码使用了10个线程来计算1到1亿之间的所有数字。每个线程计算1000万个数字。线程计算完毕后,使用synchronized同步代码块保证sum值的正确累加。
无论是单线程还是多线程,计算1到1亿的和都需要耗费大量的时间和计算资源。作为一名Java程序员,我们需要平衡计算速度和计算资源消耗。
上一篇:ajax动态获取url参数值
下一篇:python的美元符号
winlogins.exe是什么文件?winlogins.exe是不是病毒
winsock2.6.exe是什么文件?winsock2.6.exe是不是病毒
WinDefendor.dll是什么文件?WinDefendor.dll是不是病毒
系统目录是什么文件?系统目录是不是病毒
wholove.exe是什么文件?wholove.exe是不是病毒
winn.ini是什么文件?winn.ini是不是病毒
w6oou.dll是什么文件?w6oou.dll是不是病毒
winduxzawb.exe是什么文件?winduxzawb.exe是不是病毒
wuammgr32.exe是什么文件?wuammgr32.exe是不是病毒
windiws.exe是什么文件?windiws.exe是不是病毒