我就不吃芹菜

导航

 

上面的图表示出了数据类型的分类, 加上布尔型(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 有相同的范围
posted on 2015-12-13 17:52  我就不吃芹菜  阅读(631)  评论(0编辑  收藏  举报