当前位置:首页 > 生活百科

string转short类型(int转short强制转换的方法)

栏目:生活百科日期:2024-12-19浏览:0

String 类可以说是在 Java 中使用最频繁的类了,就算是刚刚接触 Java 的初学者也不会陌生,因为对于 Java 程序来说,main 方法就是使用一个 String 类型数组来作为参数的(String[] args)。

对于这样一个频繁使用的类,String 字符串可以有多长呢?十万字符?一百万字符?还是无限的呢?

要弄清楚 String 的最大长度,首先应该了解 String 类的内部实现。在 String 类中,是使用一个字符数组来维护字符序列的,其声明如下:

private final char value&[];

这也就是说,String 的最大长度取决于字符数组的最大长度,我们知道,在指定数组长度的时候,可以使用 byte、short、char、int 类型,而不能够使用 long 类型。这也就是说,数组的最大长度就是 int 类型的最大值,即 0x7fffffff,十进制就是 2147483647,同理,这也就是 String 所能容纳的最大字符数量。

而且,我们来看下 java.lang.String#length() 源码:

public int length() {    return value.length;}

可以看出获得 String 对象长度的 length 方法返回值是 int 类型的,而不是 long 类型的,也是因为这个原因。

不过,这个最大值只是在理论上能够达到的值,在我们实际的使用中,一般情况下获得的最大长度比理论值要小。下面我们写一个最简单的程序来看。

/** * @author wupx * @date 2020/01/13 */public class StringTest {    public static void main(String&[] args) {        char&[] c = new char&[Integer.MAX_VALUE];    }}

运行这个程序,在通常情况下,都会产生如下的错误:

Exception in thread "main" java.lang.OutOfMemoryError: Requested array size exceeds VM limitat test.StringTest.main(StringTest.java:9)

产生这个错误的原因就是内存溢出,也就是系统无法分配这么大的内存空间所致。计算一下,一个 char 类型占用 2 字节,2147483647 个 char 类型就是 4294967294 字节,这接近于 4GB 大小,想要申请这么一大块连续的内存空间,失败也就不足为奇了。

那么,到底我们所用的计算机能够承受多大的字符数组呢,这跟软件与硬件等诸多因素都有关,我们可以编写程序来获得可申请最大字符数组的近似值。

/** * @author wupx * @date 2020/01/13 */public class StringTest {    public static void main(String&[] args) {        for (int i = 0; i &< 100; i++) {            int len = Integer.MAX_VALUE - i;            try {                char&[] ch = new char&[len];                System.out.println("len: " + len + " OK");            } catch (Error e) {                System.out.println("len: " + len + " " + e);            }        }    }}

运行结果如下:

len: 2147483647 java.lang.OutOfMemoryError: Requested array size exceeds VM limitlen: 2147483646 java.lang.OutOfMemoryError: Requested array size exceeds VM limitlen: 2147483645 OKlen: 2147483644 OKlen: 2147483643 OK

根据运行结果可以看出 String 的最大长度为 Integer.MAX_VALUE &– 2 或 2 ^ 31 &– 3。

总结

在 String 类内部,是使用一个字符数组(char[])来维护字符序列的。

String 的最大长度也就是字符数组的最大长度,理论上最大长度为 int 类型的最大值,即 2147483647。

在实际中,一般可获取的最大值小于理论最大值,在我的电脑上得出的最大值是 2 ^ 31 &– 3,大家可以在自己的电脑上测试下。

“string转short类型(int转short强制转换的方法)” 的相关文章

农夫山泉广告策划书范文,史上最全农夫山泉广告策划分析

“人美心甜话还少”如果对农夫山泉这些年的营销进行总结,我觉得这句话很贴切。其原因大致有两点:1.每当提及农夫山泉,很多人会在第一时间想到“农夫山泉有点甜”。2....

孟晚舟律师发表声明(孟女士没有认罪 )

阔别祖国34个月后,孟晚舟终于踏上归途。9月25日,华为公司发表声明称:“我们期待孟女士尽快安全回国,与家人团聚。华为将继续在美国纽约东区联邦地区法院的公司诉讼...

屠呦呦获诺贝尔奖有什么重大意义(解密屠呦呦重大发现及

6月初,中国之声特别专栏《奋斗百年路启航新征程·数风流人物》讲述了茅以升、屠呦呦的事迹。今天,小九就带你回顾屠呦呦改变人类历史的故事。一、“呦呦鹿鸣,食野之蒿”...

微信怎么自动回复怎么设置(微信自动回复小工具)

随着时代的进步,现在网络营销已经进入常态化,尤其是微信营销。但很多人会遇到一个头疼的问题,那就是总会有很多客户重复的询问同一个问题,所以微信快捷回复怎么设置,如...

修复乳液哪个牌子好用(全球公认最好用的四款修复乳液)

美白这件事,在国内女性心目中的是最高追求了,天天想方设法的防晒、祛斑、淡化痘印等等。没错,这就是我最爱干的事,特别是在春夏之际,一度达到追求美白的顶峰,只想要白...

加密文件夹如何解密,文件加密及解密的方法

文件夹怎么加密?如何给文件夹设置打开密码呢?有些文件可能因为隐私问题需要设置密码,那么如何给文件夹添加打开密码呢?下面请看具体操作步骤。操作步骤:1、右击需要加...

头条号赚钱规则,如何利用头条号稳定赚钱

头条号自媒体想要赚钱,我们首先得成为一名创作者很多人其实都是一名用户,用户到创作者,流程也非常简单1、取个好听的名字2、填写你账号的个人简介3、完善你的头像4、...

公路车品牌排行榜前十名(2020年入门公路车推荐)

气动公路车的热度在过去十年中持续攀升。在自行车圈中,用更少的力骑得更快的魅力也一直未衰减,这种对速度的渴望,尤其体现在职业公路车圈,这便不断吸引着厂商的大量投资...

品牌燃气灶排名前十名有哪些(热销榜最好的十大燃气灶品

嵌入式双眼灶是燃气灶市场的主立面,也是众多家庭厨房里的普遍选择。那么,嵌入式燃气灶应该怎么选、市面上的主流品牌TOP机型的技术趋势是什么、目前主要的TOP品牌和...

lenovo平板电脑怎么样(口碑性能好的lenovo平板电脑)

当平板沦为了盖泡面、“优、爱、腾”煲剧的工具之时,你是否已经忘记了当初买它的初衷?当看到孩子拿着平板玩着游戏而你只能不断地口头警告时,是否感觉到语言有时候也是无...