(JAVA)常见的测试错误:溢出。

简介: (JAVA)常见的测试错误:溢出。

目录

1、过渡段:强制类型转换!

(1)代码:

(2)结果:

2、溢出:

1、代码:

2、运行结果:

3、第一部分:

4、第二部分:

5、第三部分:正确的写法


 


1、过渡段:强制类型转换

(1)代码:

public class exercise01 {
    public static void main(String[] args) {
        byte e = (byte)300;
        System.out.println(e);
    }
}

byte占一个字节,范围值在 -128~127,由于上限值为127,而强制转换的值为300,此时发生溢出,会生成一个无关的数,看结果。

(2)结果:



2、溢出:

1、代码:

public class exercise01 {
    public static void main(String[] args) {
        int money = 1000000000;//10亿
        int years = 20;
        int total = money*years;
        System.out.println("total="+total);
        long total1 = money*years;
        System.out.println("total1="+total1);
        long total2 = money*((long)years);
        System.out.println("total2="+total2);
    }
}


2、运行结果:


3、第一部分:

total的运行结果为负数,由于溢出所导致,数据超出了 int 的范围。


4、第二部分:

total1仍是负数,是因为money*years会先运算,然后再转换成long类型,由于计算时是int类型,此时已发生错误,所以再转换依旧是错误的。


5、第三部分:正确的写法

两个数相乘,有一个是long类型,则结果也是long类型,所以money*((long)years)在运算时就转换类型,这样结果就是long类型,转换成功,不会发生溢出。

或者1L*money*years在运算时乘上一个long类型的数据也可以。

 


相关文章
|
14小时前
|
Java
java堆溢出和栈溢出
java堆溢出和栈溢出
7 1
|
1天前
|
IDE Java 机器人
如何在Java中进行单元测试:JUnit 5的使用指南
如何在Java中进行单元测试:JUnit 5的使用指南
|
1天前
|
Java 测试技术 数据库
【单文件版本】java SpringBoot 切换不同的运行环境(生产环境、开发环境、测试环境)SpringBoot配置多个不同运营环境
【单文件版本】java SpringBoot 切换不同的运行环境(生产环境、开发环境、测试环境)SpringBoot配置多个不同运营环境
8 0
|
1天前
|
Java 测试技术 数据库
java SpringBoot 切换不同的运行环境(生产环境、开发环境、测试环境)SpringBoot配置多个不同运营环境【多文件版本】
java SpringBoot 切换不同的运行环境(生产环境、开发环境、测试环境)SpringBoot配置多个不同运营环境【多文件版本】
6 0
|
1天前
|
IDE Java 机器人
如何在Java中进行单元测试?
如何在Java中进行单元测试?
|
1天前
|
缓存 算法 Java
Java中如何进行性能测试与优化?
Java中如何进行性能测试与优化?
|
2天前
|
Java 测试技术
java的Junit测试@Test@Before@After Assert.assertEquals
java的Junit测试@Test@Before@After Assert.assertEquals
7 0
|
2天前
|
缓存 算法 Java
Java中如何进行性能测试与优化?
Java中如何进行性能测试与优化?
|
2天前
|
XML Java 测试技术
《手把手教你》系列基础篇(八十二)-java+ selenium自动化测试-框架设计基础-TestNG测试报告-上篇(详解教程)
【6月更文挑战第23天】TestNG 是一个用于自动化测试的 Java 框架,它自动生成测试报告,包括 HTML 和 XML 格式。报告可在 `test-output` 文件夹中找到。要创建测试用例,可创建一个实现了 `@Test` 注解的方法。通过 `testng.xml` 配置文件来组织和执行测试。默认报告包括测试结果、失败点和原因。用户还能实现 `ITestListener` 和 `IReporter` 接口来自定义报告和记录器。
19 2
|
3天前
|
Java 测试技术 Python
《手把手教你》系列基础篇(八十一)-java+ selenium自动化测试-框架设计基础-TestNG如何暂停执行一些case(详解教程)
【6月更文挑战第22天】本文介绍了如何在TestNG中不执行特定测试用例。当部分模块未准备好时,可以通过以下方式暂停测试:③使用`@Test(enabled=false)`注解来禁用测试用例。作者提供了一个Java Selenium自动化测试的示例,展示如何通过修改`enabled`参数控制测试方法的执行。代码中,`testSearch2()`方法被禁用,因此在测试运行时不执行。文章还包含了测试报告和执行过程的截图。
34 7