package com.yuan.test;
public class Autogrew {
public static void main(String[] args) {
// 保存 short 可取的最大值的常量,最大值为 215-1。(32 767)
// 保存 short 可取的最小值的常量,最小值为 -215。(-32 768)
short s1=11278;
s1+=1;
//s1=s1+1;//报错 自动会转换成int 类型
System.out.println(s1);
// 值为 2 31次方-1 的常量,它表示 int 类型能够表示的最大值。
// 值为 -2 31次方 的常量,它表示 int 类型能够表示的最小值。
//一个常量,保存 byte 类型可取的最大值,即 2 7次方-1。(127)
//一个常量,保存 byte 类型可取的最小值,即 -2 7次方。(-128)
}
}
对于 short s1 = 1; s1 = s1 + 1;由于 s1+1 运算时会自动提升表达式的类型,所以结果是 int
型,再赋值给 short 类型 s1 时, 编译器将报告需要强制转换类型的错误。
对于 short s1 = 1; s1 += 1;由于 +=是 java 语言规定的运算符, java 编译器会对它进行特殊
处理,因此可以正确编译。
2、 char 型变量中能不能存贮一个中文汉字?为什么?
char 型变量是用来存储 Unicode 编码的字符的, unicode 编码字符集中包含了汉字,所以,
char 型变量中当然可以存储汉字啦。不过,如果某个特殊的汉字没有被包含在 unicode 编
码字符集中,那么,这个 char 型变量中就不能存储这个特殊汉字。 补充说明: unicode 编
码占用两个字节,所以, char 类型的变量也是占用两个字节。
备注:后面一部分回答虽然不是在正面回答题目,但是,为了展现自己的学识和表现自己对
问题理解的透彻深入,可以回答一些相关的知识,做到知无不言,言无不尽。
来源:oschina
链接:https://my.oschina.net/u/2308739/blog/407458