
上面的图表示出了数据类型的分类, 加上布尔型(bealoon)分为四类八种数据类型, 构成了java的基本数据类型, 这几种数据的之间的联系也是想图中的箭头一样, 数据之间有一个自动提升数据类型的机制, 在java编程中需要随时注意.
下面看一组简单的代码实例:
byte a = 127;
short b = 45;
char e = 'a';
float f = 21.23f;
double g = 0.456;
String str = "xuesheng";
String x = str+e+a;
String z = e+a+str;
/*对于第一个表达式xuesheng+'a'+127,先进行"xuesheng" + 'a'的运算,将把'a'转换成字符串, 将拼接成字符串xueshenga,接着进行"xueshenga" + 127的运算,这也是 一个字符串连接运算, 得到结果是xueshenga127。对于第二个表达式,先进行'a' + 127加法运算, 其中'a'自动提升到int型,变成a对应的ASCII值:97,从97 + 127将得到224 , 然后进行224 + "xuesheng",224会自动转换成字符串,将变成两个字符串的连接运算, 从而得到224xuesheng。*/
System.out.println("xuesheng+'a'+127的结果为: "+x+"\n");
System.out.println("'a'+127+xuesheng的结果为: "+z+"\n");
//当byte型和short型还有char型运算的时候, 数据类型会自动提升为int型
//char型数据的转换根据字符在ASCII码表的位置转换成数字
int in = a + e; //byte型跟字符型的运算自动提升为int型
System.out.println("in的值为: "+in+"\n");
int in1 = a + b; //byte型跟short型运算自动提升为int型
System.out.println("in1的值为: "+in1+"\n");
byte by = a += 1;
//当使用+=运算符进行运算时不会自动提升数据类型
//原因是由于 += 是java语言规定的运算符, java编译器会对它进行特殊处理, 因此可以正确编译
System.out.println("by的值为: "+by+"\n");
double m = f+g;
//float型和double型之间的运算结果为double型
System.out.println("m的值为: "+m);

下表列出的内容是大部分的数据类型, 其实数据类型并不只局限于那四类八种, 还有很多, 我们所了解的function函数, 包括还有很多方法都可以看成是一种数据, 然后可以对其进行操作, 学的还是太少了
| Byte(字节型) | 0 - 255 |
| Boolean(布尔型/逻辑型) | True 或 False |
| Integer(整数型) | -32,768 ~ 32767 |
|
Long(长整形)
|
-2,147,483,648 ~ 2,147,483,647 |
|
Single
(单精度浮点型)
|
负数范围:
-3.402823E38 ~ -1.401298E-45
正数范围:
1.401298E-45 ~ 3.402823E38
|
|
Double
(双精度浮点型)
|
负数范围:
-1.797,693,134,862,32E308 ~
-4.940,656,458,412,47E-324
正数范围:
4.940,656,458,412,47E-324 ~
1.797,693,134,862,32E308
|
|
Currency
(变比整形 / 货币类型)
|
-922,337,203,685,477.5808~
922,337,203,685,477.5807
|
| Decimal(十进制型) |
没有小数点时:
+/-79,228,162,514,264,337,593,543,950,335
有小数点时:
+/-7.922,816,251,426,433,759,354,395,033,5
最小的非零值:
+/-0.000,000,000,000,000,000,000,000,000,1
|
| Date(时间日期型) | 100年1月1日~9999年12月31日 |
| Object(对象型) | 任何 Object 引用 |
| String (变长) | 长度从 0 到 大约 20 亿 |
| String (定长) | 长度从 1 到大约 65,400 |
| Variant (数字) | 任何数字值,最大可达 Double 的范围 |
| Variant (字符) | 与字符串长度,变长 String 有相同的范围 |
来源:https://www.cnblogs.com/wgbs25673578/p/5043251.html