3.2 基本数据类型

本文详细介绍了Java中的基本数据类型,包括long、int、short、byte、char、float和double,阐述了它们的大小、范围及可能的溢出问题。重点讲解了整数溢出的处理方法,以及字符类型和浮点数的表示。此外,还提到了布尔类型和数据类型的默认值。
摘要由CSDN通过智能技术生成

3.2 基本数据类型

Java基本数据类型
序号数据类型大小/位可表示的数据范围
1long(长整数)64-9223372036854775808~9223372036854775807
2int(整数)32-2147483648~2147483647
3short(短整数)16-32768~32767
4byte(位)8-128~127
5char(字符)160~255
6float(单精度)32-3.4E38(-3.4*10的38次方)~3.4E38(3.4*10的38次方)
7double(双精度)64-1.7E308(-1.7*10的308次方)~1.7E308(1.7*10的308次方)
8boolean(布尔)---true或false

3.2.1 整数类型

整数类型分四种:byte、short、int、long

short sum;         //声明sum为短整型

 声明之后,Java会在可使用的内存空间中寻找一个占有两个字节的块供sum变量使用,同时范围只能在-32768~32767之间

在Java中对于一个整型变量,其默认类型是int,所以在声明常量时不要超过int的范围

package com;

public class DataDemo01 {
    public static void main(String[] args) {
        int num=999999999999999;     //定义整型变量,错误,超出长度范围
    }
}
D:\Users\贾威娜\IdeaProjects\Java\src\com\DataDemo01.java:5:17
java: 过大的整数: 999999999999999

 

3.2.2 数据的溢出

当数据大小超出范围,且程序中没有数值范围的检查时,利用类型转换(使用更大范围的数据类型)防止数据出现紊乱

package com;

public class DataDemo01 {
    public static void main(String[] args) {
        int max=Integer.MAX_VALUE;                     //整型最大值
        System.out.println("整型最大值"+max);           //输出最大值
        System.out.println("整型最大值+1"+(max+1));     //最大值加1
        System.out.println("整型最大值+2"+(max+2));     //最大值加2
    }
}
整型最大值2147483647
整型最大值+1-2147483648
整型最大值+2-2147483647

Process finished with exit code 0

 原范围为-2147483648~2147483647

最大值加一变为最小值,最大值加二变成次小值,这就是数据类型的溢出,类似计数器的内容到最大值会自动归零

为了避免int类型的溢出,可以在该表达式的任意常量后加上大写的L,或在变量前面加long,做强制类型转换。

package com;

public class DataDemo03 {
    public static void main(String[] args) {
        int max=Integer.MAX_VALUE;                     //整型最大值
        System.out.println("整型最大值"+max);            //输出最大值
        System.out.println("整型最大值+1"+(max+1));      //最大值加1
        System.out.println("整型最大值+2"+(max+2L));     //变为long型
        System.out.println("整型最大值+2"+((long)max+2));//转换为long型
    }
}

 

整型最大值2147483647
整型最大值+1-2147483648
整型最大值+22147483649
整型最大值+22147483649

Process finished with exit code 0

处理int类型的溢出,可以利用强制类型转换的方式。但是对于long类型的溢出,必须加上变量值的界限检查,才不会出错

Integer是包装类。对于Integer可以使用MAX_VALUE取得最大值,也可以通过MIN_VALUE取得最小值,Integer的最大作用在于字符串与整型的转换上,还具有自动拆箱和自动装箱的功能。

3.2.3 字符类型

字符类型在内存中占有两个字节,可以用来保存英文字母等字符。计算机处理字符类型时,是把字符当成整数来看。

Unicode为了避免跨平台时发生错误,为每一个字符制定了一个唯一的数值。Java用的就是Unicode字符码系统。

package com;

public class DataDemo04 {
    public static void main(String[] args) {
        char ch1='a';                       //定义字符
        char ch2=97;                        //定义字符,整型转字符
        System.out.println("ch1="+ch1);     //打印输出
        System.out.println("ch2="+ch2);     //打印输出
    }
}
ch1=a
ch2=a

Process finished with exit code 0

 给字符变量赋值可以使用数字和字符,都可以正确运行

转义字符:

常用的转义字符
序号转义字符描述序号转义字符描述
1\f换页5\r归位
2\\反斜线6

\"

双引号
3\b倒退一格7\t制表符Tab
4\'单引号8\n换行
package com;

public class DataDemo04 {
    public static void main(String[] args) {
        char ch1='\"';                           //定义转义字符
        char ch2='\\';                           //定义转义字符
        System.out.println("ch1="+ch1);          //打印输出
        System.out.println("ch2="+ch2);          //打印输出
        System.out.println("\"Hello World\"");   //直接输出转义字符
    }
}
ch1="
ch2=\
"Hello World"

Process finished with exit code 0

 

3.2.4 浮点数类型与双精度浮点数类型

浮点数的表示方式除了指数的形式外,还可用带有小数点的一般形式来表示

double num;            //声明num为双精度浮点型变量
float sum=3.0f;        //声明sum为浮点型变量,其初值为3.0

 声明之后,Java会在可使用的内存空间中开辟一个内存块供num变量使用,其范围在-1.7E308~1.7E308之间,之后再开辟另外一个内存块供sum使用,范围只能在-3.4E38~3.4E38之间。

double num1=-6.3e64;               //声明num1为double
double num2=-5.34E16;              //e也可以用大写E
float num3=7.32f;                  //声明num3为float,并设初值为7.32f
float num4=2.456E67;               //错误,超出float可表示范围

注意:使用浮点型数值时,默认的类型是double。在数值后面可加上D或是d,作为double类型的标识,此时D或d是可有可无的。在数据后面加上F或f,则作为float类型的识别,此时若没有加上则默认double类型,而在编译时会发生错误,错误提示可能会丢失精度。

package com;

public class DataDemo06 {
    public static void main(String[] args) {
        float num=3.0f;
        System.out.println("两个小数相乘:"+num*num);
    }
}
两个小数相乘:9.0

Process finished with exit code 0

 

 3.2.5 布尔类型

可选true和false

boolean flag=true;        //声明布尔变量flag,并赋值为true

 可直接Sout输出    

3.2.6 基本数据类型的默认值

基本数据类型的默认值
序号数据类型默认值
1byte(byte)0
2short(short)0
3int0
4long0L
5float0.0f
6double0.0d
7char\u0000(空,”)
8booleanfalse

默认赋值没有意义,但应该保证程序执行时不会有这种未定义值的变量存在。虽然便利,但过于依赖系统给变量赋值,不容易检测到是否已经给予变量应有的值。 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值