java中超过int的最大范围问题

 更新时间:2026年05月04日 10:26:06   作者:程宇寒  
文章讨论了Java中处理超过int最大范围的整数问题,在接收到超过int范围的参数时,直接转换会引发异常,建议使用Long或BigInteger处理,提供了代码示例,包括JSP页面和Servlet处理逻辑

java中超过int的最大范围

直接po图片和代码

如下图

大家有没有想过,在java中,如果我们要保存一个超大的整数,该如何做呢?这是我心血来潮想到的一个问题。

将浏览器客户端中传递过来的参数,转换成int类型(测试超过int的最大范围)

有时候无法保证用户会在文本框中输入多大的数字,万一用户在文本框中输入了一个超级大的数字提交到服务器端,我们该如何处理呢?大家可以集思广益!

下面是jsp页面和servlet的源代码

如下是servlet源代码

package com.servlet;
import java.io.IOException;
import java.math.BigDecimal;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
 * 测试超过int的最大范围
 */
@WebServlet("/TestInt")
public class TestInt extends HttpServlet {
	private static final long serialVersionUID = 1L;
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		String number6 = request.getParameter("number6");
		System.out.println("number6=" + number6);
		//将浏览器客户端中传递过来的参数,转换成int类型(测试超过int的最大范围)
		//有时候无法保证用户会在文本框中输入多大的数字,万一用户在文本框中输入了一个超级大的数字提交到服务器端
		BigDecimal bigDecimal = new BigDecimal(number6);
		System.out.println("bigDecimal=" + bigDecimal);
		//如下:如果用int类型来接收超大数据,会报错
		int intNumber6 = Integer.parseInt(number6);
		System.out.println("intNumber6=" + intNumber6);
	}
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doGet(request, response);
	}
}

下面是testInt.jsp页面

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>测试超过int的最大范围</title>
<style type="text/css">
input {
	/*文本框样式*/
	/*border:2px solid blue;*/
	/*这是简易写法,这样写语法是合理的,而且可以可以节省时间,如果不省略,border具体对应的属性写法如下:*/
	font-size: 25px;
	border-radius: 6px; /*把边框做成圆角*/
	border-width: 2px;
	border-style: solid;
	border-color: #4B0082;
}
input[type=text], input[type=password] {
	width: 600px;
	height: 32px;
	font-size: 20px;
	border: 2px solid #8E388E;
	border-radius: 4px; /*设置边框的4个直角变成圆角有弧度*/
	font-weight: bold; /*文本框中的文本字体加粗*/
	color: #0000a0;
	background-color: #ffff9f;
}
input[type=button], input[type=submit], input[type=reset], button {
	background-color: #8E388E;
	border-radius: 3px;
	border: none;
	padding: 6px 8px;
	color: #fff;
	font-size: 14px;
	overflow: visible;
	cursor: pointer;
	margin: 0px;
	line-height: normal;
	box-sizing: border-box;
	display: inline-block;
	text-align: center;
	vertical-align: middle;
	/*width:360px;*/
	/*height: 50px;*/
}
</style>
<script type="text/javascript">
	var jsonObj = {"userName":"ja\"\"ck"};
	console.log(jsonObj.userName);
	var testInt = 999999999999999999999999999;
	var testInt2 = 99;
	window.onload = function() {
	}
	function setInputNodeValue1(){
		$("number1").value = testInt;
	}
	function setInputNodeValue2(){
		$("number2").value = testInt + 100;
	}
	function setInputNodeValue3(){
		$("number3").value = testInt2;
	}
	function setInputNodeValue4(){
		$("number4").value = testInt2 + 100;
	}
	function setInputNodeValue5(){
		$("number5").value = testInt - 999999999999999999999999995;
	}
	function setInputNodeValue7(){
		$("number7").value = testInt - 9999999999999999995;
	}
	function $(id){
		var obj = document.getElementById(id);
		return obj;
	}
</script>
</head>
<body>
<h1>测试超过int的最大范围</h1>
<input type="button" value="给文本框1赋值" onclick="setInputNodeValue1()">
文本框1:<input type="text" id="number1"><br/><br/>
<input type="button" value="给文本框2赋值" onclick="setInputNodeValue2()">
文本框2:<input type="text" id="number2"><br/><br/>
<input type="button" value="给文本框3赋值" onclick="setInputNodeValue3()">
文本框3:<input type="text" id="number3"><br/><br/>
<input type="button" value="给文本框4赋值" onclick="setInputNodeValue4()">
文本框4:<input type="text" id="number4"><br/><br/>
<input type="button" value="给文本框5赋值" onclick="setInputNodeValue5()">
文本框5:<input type="text" id="number5"><br/><br/>
<div style="background-color: #7CCD7C; height: 60px;border:2px solid green;">
<form action="${pageContext.request.contextPath}/TestInt" method="get">
文本框6:
<input type="text" id="number6" name="number6" value="999999999999999999999999999" size="30">
<input type="submit" value="提交到servlet">
</form>
</div>
<br/>
<input type="button" value="给文本框7赋值" onclick="setInputNodeValue7()">
文本框7:<input type="text" id="number7"><br/><br/>
</body>
</html>

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • SpringCloud 分布式微服务架构操作步骤

    SpringCloud 分布式微服务架构操作步骤

    SpringCloud是一种微服务的框架,利用它我们可以去做分布式服务开发,这篇文章主要介绍了SpringCloud 分布式微服务架构,需要的朋友可以参考下
    2022-07-07
  • java:json-path支持fastjson作为JSON解析提供者的技术实现方式

    java:json-path支持fastjson作为JSON解析提供者的技术实现方式

    json-path和fastjson都是Java中常用的JSON处理库,json-path支持多种解析器,而fastjson具有高性能,通过扩展json-path,使其支持fastjson,可以在保持json-path强大功能的同时,享受fastjson的高性能优势
    2025-12-12
  • MyBatis中批量插入的三个关键优化技巧与避坑指南

    MyBatis中批量插入的三个关键优化技巧与避坑指南

    这篇文章主要为大家详细介绍了MyBatis中批量插入的三个关键优化技巧与避坑指南,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2026-01-01
  • Java中父类怎么调用子类的方法

    Java中父类怎么调用子类的方法

    这篇文章主要介绍了Java父类调用子类的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • Spring实现内置监听器

    Spring实现内置监听器

    这篇文章主要介绍了Spring 实现自定义监听器案例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧,希望能给你带来帮助
    2021-07-07
  • mybatis if test判断BigDecimal遇到的坑及解决

    mybatis if test判断BigDecimal遇到的坑及解决

    这篇文章主要介绍了mybatis if test判断BigDecimal遇到的坑及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • SpringBoot+Ajax+redis实现隐藏重要接口地址的方法

    SpringBoot+Ajax+redis实现隐藏重要接口地址的方法

    这篇文章主要介绍了SpringBoot+Ajax+redis实现隐藏重要接口地址,本篇文章主要讲诉使用SpringBoot项目配合Ajax和redis实现隐藏重要接口地址,这里我以隐藏秒杀地址为例,需要的朋友可以参考下
    2024-03-03
  • Java聊天室之解决连接超时问题

    Java聊天室之解决连接超时问题

    这篇文章主要为大家详细介绍了Java简易聊天室之解决连接超时问题的方法,文中的示例代码讲解详细,具有一定的借鉴价值,需要的可以了解一下
    2022-10-10
  • Java日常练习题,每天进步一点点(35)

    Java日常练习题,每天进步一点点(35)

    下面小编就为大家带来一篇Java基础的几道练习题(分享)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望可以帮到你
    2021-07-07
  • JPA中@CreatedDate和@LastModifiedDate的使用方式

    JPA中@CreatedDate和@LastModifiedDate的使用方式

    这篇文章主要介绍了JPA中@CreatedDate和@LastModifiedDate的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11

最新评论