JAVA基础2.3

2.3 Java数据类型

Java数据类型概述

根据能对数据进行的操作以及数据所需内存大小的不同,把数据分成不同的类型,这样就可以充分利用内存。

Java数据类型分为两大类,即基本数据类型和引用数据类型。

引用数据类型又分为类、接口和数组。

基本数据类型分为4种,分别是整型(4种)、浮点型(2种)、字符型和布尔型。

数据类型字节数位数使 用 说 明
byte18取值范围:-27~27-1
short216取值范围:-215~215-1
int432取值范围:-231~231-1
long864取值范围:-263~263-1,直接赋值时必须在数字后加上l或L
float432取值范围:1.4E-45~3.4E38,直接赋值时必须在数字后加上f或F
double864取值范围:4.9E-324~1.8E308
char216使用Unicode编码(2个字节),可存汉字
boolean只有true和false两个取值

整型

Java各整数类型有固定的表示范围和字段长度,其不受具体操作系统的影响,以保证Java程序的可移植性。

Java语言整型常量有以下3种表示形式。

  1. 十进制整数,例如12,-127,0。

  2. 八进制整数,以0开头,例如014(十进制的12)。

  3. 十六进制整数,以0x或0X开头,例如0XC(十进制的12)。

Java语言的整型常量默认为int型,声明long型的整型常量需要在常量后面加上“l”或“L”,例如:

long maxNum = 9999999999L;

为了存整数,Java语言设计出4种整型类型的目的是存不同大小的数,可以节约存储空间,对于一些硬件内存小或者要求运行速度快的系统显得尤为重要。例如,需要存储一个两位整数,其数值范围在-99到99之间,程序员就可以使用byte类型进行存储,因为byte类型的取值范围为-128到127之间。

浮点型

在计算机系统的发展过程中,曾经提出过多种表示实数的方法,但是到目前为止使用最广泛的是浮点表示法。相对于定点数而言,浮点数利用指数使小数点的位置可以根据需要而上下浮动,从而可以灵活地表达更大范围的实数。

Java浮点类型常量有以下两种表示形式

  1. 十进制形式,例如3.14,314.0,.314。

  2. 科学记数法形式,例如3.14e2,3.14E2,100E-2。

Java语言浮点型常量默认为double型,声明一个float型常量,则需要在常量后面加上“f”或“F”,例如:

float floatNum = 3.14F;

不同于整型,通过简单的推算,程序员就可以知道这个类型的整数的取值范围。对于float和double,要想推算出来,需要理解浮点型的存储原理,且计算起来比较复杂。接下来,通过下面的程序,可以直接在控制台输出这两种类型的最小值和最大值。

class FloatDoubleMinMax{
        public static void main(String[] args) {  
                   System.out.println("float最小值 = " + Float.MIN_VALUE);    
                   System.out.println("float最大值 = " + Float.MAX_VALUE);
                   
                   System.out.println("double最小值 = " + Double.MIN_VALUE); 
                   System.out.println("double最大值 = " + Double.MAX_VALUE);
         }
} 

字符型

字符型(char型)数据用来表示通常意义上的字符。

字符常量为用单引号括起来的单个字符,因为Java使用Unicode编码,一个Unicode编码占2个字节,一个汉字也是占2个字节,所以Java中字符型变量可以存放一个汉字,例如:

char eChar = 'q';

char cChar = '乔';

Java字符型常量有以下3种表示形式。

  1. 用英文单引号括起来的单个字符,例如’a’、‘汉’。

  2. 用英文单引号括起来的十六进制字符代码值来表示单个字符,其格式为'\uXXXX',其中u是约定的前缀(u是Unicode的第一个字母),而后面的XXXX位是4位十六进制数,是该字符在Unicode字符集中的序号,例如’\u0061’。

  3. 某些特殊的字符可以采用转义符’‘来表示,将其后面的字符转变为其他的含义,例如’\t’代表制表符,’\n’代表换行符,’\r’代表回车符等。

class CharShow{
         public static void main(String[] args){
                   char eChar = 'q';
                   char cChar = '乔';
                   System.out.println("显示汉字:" + cChar);
                   char tChar = '\u0061';
                   System.out.println("Unicode代码0061代表的字符为:" + tChar);
                   char fChar = '\t';//制表符
                   System.out.println(fChar+"Unicode代码0061代表的字符为:" + tChar);
         }
}

布尔型

Java中boolean类型可以表示真或假,只允许取值true或false(不可以用0或非0的整数替代true和false,这点和C语言不同

boolean flag = true;

基本数据类型转换

Java的数据类型转换分为以下3种:基本数据类型转换,字符串与其他数据类型转换,其他实用数据类型转换。

其中boolean类型不可以和其他的数据类型互相转换。整型、字符型、浮点型的数据在混合运算中相互转换遵循以下原则

  • 容量小的类型自动转换成容量大的数据类型。
  • byte、short、char之间不会互相转换,三者在计算时首先会转换为int类型。
  • 容量大的数据类型转换成容量小的数据类型时,需要加上强制转换符,但可能造成精度降低或溢出,使用时需要格外注意。
  • 有多种类型的数据混合运算时,系统首先自动地转换成容量最大的数据类型,然后再进行计算。
class TestConvert{
    public static void main(String[] args){
        int i1 = 222; 
        int i2 = 333;
        double d1 = (i1+i2)*2.9;                 //系统将转换为double型运算
        float f1 = (float)((i1+i2)*2.9);        //从double型转换成float型,需要进行强制类型转换
        System.out.println(d1);
        System.out.println(f1);
        byte b1 = 88; 
        byte b2 = 99;
        byte b3 = (byte)(b1+b2);                 //系统先转换为int型运算,再从int型转换成byte型
                                                //需要进行强制类型转换
        System.out.println("88 + 99 = " + b3);    //强制类型转换,数据结果溢出
        double d2 = 5.1E88;
        float f2 = (float)d2;                    //从double型强制转换成float型,结果溢出
        System.out.println(f2);
        float f3 = 3.14F;
        f3 = f3 + 0.05F;//这条语句不能写成f3 = f3 + 0.05;,否则会报错,因为0.05是double型
        				//加上f3,仍然是double型,赋给float会报错
        System.out.println("3.14F + 0.05F = " + f3);
    }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值