首页 > 编程知识 正文

java中字符串转换为int,int转为long

时间:2023-05-03 18:51:58 阅读:49779 作者:232

Java的所有数字都必须是int型。

以下行在Java 1.5中是合法的

短整型=1; //willcompiletoshorts=short.value of () short )1)-thus you can ' texceedshortmaxvaluei.e。

短整型=4444; //is invalid for autoboxing

相同的机制用于实例化Integer和Byte。 但是,Long的动作完全不同。 以下代码显示编译时错误

长L=10;

因为Long用同样的方法进行长类型的自动装箱

Long l=10L; //isvalidandistranslatedintolong.value of (10l ) )。

我不明白为什么int不能分配给Long变量。 你觉得这件事怎么样?

解决方法:

我认为这个问题不是关于一般的原始和包装。

问题是关于将java转换为java.lang.Long和将int转换为java.lang.Short之间的区别。

JLS :

“如果表达式是字节、短整型、字符或整型常量表达式(第15.28节) :

如果变量类型为byte、short或char,则可以使用缩减基元转换,常量表达式的值可以用变量类型表示。

如果变量类型可以使用缩减基元转换进行装箱转换:

字节和常量表达式的值可以用类型字节表示。

Short表达式和常量表达式的值可以用Short类型表示。

字符和常量表达式的值可以用char类型表示。

因此,所有=32位原语都很容易转换,但长度(64位)需要特殊转换。

这似乎不符合逻辑。

像往常一样,不合逻辑的东西都说明了java的向后兼容性和历史的进化。

例如,从1.0版开始,java中存在Integer和Long类。 从1.1版开始,java中存在Short和Byte类。

它是起点,整数可以是整数或长整数两种类型。 因此,我认为这两个数字有不同的投影规则。 然后添加了short和byte。

我认为short和byte可以通过具体的JVM实现32位。

标签: java,最佳类型

资料来源: https://codeday.me/bug/2019 09 25/1816482.html

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。