You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java中该代码写法是否规范?求内存优化方案与最佳编码惯例

原代码的实践判定

这段代码属于不良实践,主要问题包括:

  • 用逗号分隔多行变量声明,可读性差,后续维护时很难快速定位单个变量的定义。
  • Math.random()返回的是[0.0, 1.0)区间的double值,直接强转成int会把小数部分截断,结果永远是0,完全达不到生成随机整数的目的。
  • sum = (num1 + num2)里的括号纯属于冗余写法,既没实际作用,还会干扰代码阅读。
内存高效的实现方式

如果你的需求是生成指定范围的随机整数并求和,推荐用Random(单线程场景)或者ThreadLocalRandom(多线程场景,性能更优),示例代码如下:

单线程场景

import java.util.Random;

public class RandomSumDemo {
    public static void main(String[] args) {
        Random random = new Random();
        // 生成 [0, 99] 区间的随机整数,可根据需求调整数值范围
        int num1 = random.nextInt(100);
        int num2 = random.nextInt(100);
        int sum = num1 + num2;

        System.out.print("sum is " + sum);
    }
}

多线程场景

import java.util.concurrent.ThreadLocalRandom;

public class RandomSumDemo {
    public static void main(String[] args) {
        // 生成 [0, 99] 区间的随机整数
        int num1 = ThreadLocalRandom.current().nextInt(100);
        int num2 = ThreadLocalRandom.current().nextInt(100);
        int sum = num1 + num2;

        System.out.print("sum is " + sum);
    }
}

要是你只是想生成0或1的随机数(毕竟原代码强转后只能得到0),也可以这么写:

int num1 = Math.random() > 0.5 ? 1 : 0;
int num2 = Math.random() > 0.5 ? 1 : 0;
int sum = num1 + num2;
System.out.print("sum is " + sum);

但这种场景下用Random的nextBoolean()会更直观:

Random random = new Random();
int num1 = random.nextBoolean() ? 1 : 0;
int num2 = random.nextBoolean() ? 1 : 0;
int sum = num1 + num2;
高效且恰当的编码惯例
  • 变量声明:每个变量单独占一行,方便后续加注释、修改,可读性拉满。
  • 随机数生成:
    • 单线程用Random,多线程优先用ThreadLocalRandom(不用手动处理同步,性能更高),别再直接强转Math.random()来生成整数。
    • 明确随机数的范围,用nextInt(int bound)这类带参数的方法,业务意图一目了然。
  • 冗余代码清理:删掉没用的括号、多余空白,保持代码简洁但不牺牲可读性。
  • 格式规范:保持统一的缩进和换行,变量名对齐可以按团队规范来,但优先保证单个变量一行的原则。

内容的提问来源于stack exchange,提问作者Abhijit Bhangale

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 17:42:33