高手java里拼sql语句的最大长度是多少

如题所述

在java中sql的数据类型一般是String或StringBuffer。
java里拼sql语句的最大长度,也就是String或StringBuffer容纳字符的最大个数。
String 的最大长度:
我们可以使用串接操作符得到一个长度更长的字符串,那么,String 对象最多
能容纳多少字符呢?查看String的源代码我们可以得知类String中是使用域 count 来
记录对象字符的数量,而count 的类型为 int,因此,我们可以推测最长的长度
为 2^32,也就是4G。
不过,我们在编写源代码的时候,如果使用 Sting str = "aaaa";的形式定义一个字
符串,那么双引号里面的ASCII 字符最多只能有 65534 个。为什么呢?因为在class
文件的规范中, CONSTANT_Utf8_info 表中使用一个16 位的无符号整数来记录字
符串的长度的,最多能表示 65536 个字节,而Java class 文件是使用一种变体UTF-8
格式来存放字符的,null 值使用两个字节来表示,因此只剩下 65536- 2 = 65534
个字节。也正是变体UTF-8 的原因,如果字符串中含有中文等非ASCII 字符,那么
双引号中字符的数量会更少(一个中文字符占用三个字节)。如果超出这个数量,在
编译的时候编译器会报错。

而stringBuffer的最大长度:
一般认为没有限制,直到内存溢出为止。
public static void main(String[] args) {StringBuffer str = new StringBuffer();for (int i = 0; i < 3640; i++) {str.append("0");}System.out.println(str);//这里输出了3640个0str.append("0");System.out.println(str);//但是这里输出的却是空格?}我的机器上是多于3640就不成了,别的机器好像还不太一样。
所以这和机器也有关系。可以自己编写程序进行测试,看测试结果就知道了,这是最可靠的办法。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-12-16
最大Integer.MAX_VALUE。
相似回答