java数字溢出问题

问题描述

java默认情况下是不会检查数字溢出的,是否有办法让它检查呢,例如下面代码://溢出short a = Short.MAX_VALUE;//溢出了但是没有异常a += 1;System.out.println(String.format("a is %s",a));我查了一些资料,有的说是出于性能考虑没有做溢出检测,有办法检测吗?我知道在c#中可以通过checked关键字来设置,不知道java中是否有类似的机制 问题补充:chen_yongkai 写道

解决方案

public static short checkAndAdd(short a, short b) {if (Short.MAX_VALUE - a < b) {throw new ArithmeticException("Overflow");}return (short)(a + b);}apache 的 common math 包有类似的方法

时间: 2024-11-10 13:02:41

java数字溢出问题的相关文章

hibernate 查询40万条记录出现 java.sql.SQLException 数字溢出 异常

问题描述 大家好,我用hibernate 查询40万条记录,结果出现 java.sql.SQLException 数字溢出 异常,怎么回事啊?难道 hibernate 支持不了几十万的数据检索???我的代码: List list = session.createQuery("from 表 ").list(); 解决方案 你有没有设置Lazy Loading呀..如果你设的为立即加载的话,几十万的话数据.溢出很正常呀..解决方案二:大哥 你一起弄这么多数据出来能不溢出么?用LAZY解决方

Caused by: java.sql.SQLException: 数字溢出

问题描述 Causedby:java.sql.SQLException:数字溢出atoracle.jdbc.driver.NumberCommonAccessor.throwOverflow(NumberCommonAccessor.java:4380)atoracle.jdbc.driver.NumberCommonAccessor.getInt(NumberCommonAccessor.java:111)atoracle.jdbc.driver.OracleResultSetImpl.get

java.sql.SQLException: 数字溢出

问题描述 java.sql.SQLException:数字溢出atoracle.jdbc.driver.NumberCommonAccessor.throwOverflow(NumberCommonAccessor.java:4380)atoracle.jdbc.driver.NumberCommonAccessor.getInt(NumberCommonAccessor.java:111)atoracle.jdbc.driver.OracleResultSetImpl.getInt(Oracl

Java 内存溢出(java.lang.OutOfMemoryError)的常见情况和处理方式总结(转)

java.lang.OutOfMemoryError这个错误我相信大部分开发人员都有遇到过,产生该错误的原因大都出于以下原因:JVM内存过小.程序不严密,产生了过多的垃圾. 导致OutOfMemoryError异常的常见原因有以下几种: 内存中加载的数据量过于庞大,如一次从数据库取出过多数据: 集合类中有对对象的引用,使用完后未清空,使得JVM不能回收: 代码中存在死循环或循环产生过多重复的对象实体: 使用的第三方软件中的BUG: 启动参数内存值设定的过小: 此错误常见的错误提示: tomcat

java.lang.OutOfMemoryError: Java heap space java内存溢出问题 有错误信息

问题描述 java.lang.OutOfMemoryError: Java heap space java内存溢出问题 有错误信息 2013-12-26 11:18:09 [ERROR]-[rmss:165] Housekeeping log.error( : java.lang.OutOfMemoryError: Java heap spaceat java.lang.AbstractStringBuilder.(AbstractStringBuilder.java:45)at java.la

Tomcat溢出、Java内存溢出

Java内存溢出详解   一.常见的Java内存溢出有以下三种:   1. java.lang.OutOfMemoryError: Java heap space ----JVM Heap(堆)溢出JVM在启动的时候会自动设置JVM Heap的值,其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)不可超过物理内存. 可以利用JVM提供的-Xmn -Xms -Xmx等选项可进行设置.Heap的大小是Young Generation 和Tenured Generaion 之和. 在J

Java内存溢出详解

一.常见的Java内存溢出有以下三种: 1. java.lang.OutOfMemoryError: Java heap space----JVM Heap(堆)溢出JVM在启动的时候会自动设置JVM Heap的值,其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)不可超过物理内存. 可以利用JVM提供的-Xmn -Xms -Xmx等选项可进行设置.Heap的大小是Young Generation 和Tenured Generaion 之和. 在JVM中如果98%的时间是用于GC

Java堆溢出之OutOfMemoryError异常解决办法

在Java虚拟机规范的描述中,除了程序计数器外,虚拟机内存的其他几个运行时区域都有发生OutOfMemoryError(下面都叫OOM)异常的肯能,下面就通过一些实例来验证异常发生的场景. 在下面举的例子中,在注释中会设定一些虚拟机的参数,在"VM Args"后边,如果你是用控制台命令来执行的程序,直接把这些参数放到Java命令之后就行,如果用的开发工具,Eclipse IDE,才Debug/Run页签中设置.   Java堆溢出 堆是用来存储对象实例的,当我们不断的创建对象,并且保证

JAVA内存溢出解决方案总结

一 原因 1.内存中加载的数据量过于庞大,如一次从数据库取出过多数据: 2.集合类中有对对象的引用,使用完后未清空,使得JVM不能回收: 3.代码中存在死循环或循环产生过多重复的对象实体: 4.使用的第三方软件中的BUG: 5.启动参数内存值设定的过小:   二 常见错误提示 1.tomcat:java.lang.OutOfMemoryError: PermGen space 2.tomcat:java.lang.OutOfMemoryError: Java heap space 3.weblo