五、java语言中的数据类型

本文详细介绍了Java中的数据类型,包括基本数据类型(整数型、浮点型、布尔型、字符型)和引用数据类型,以及它们的字节数和取值范围。讨论了数据类型转换的规则,自动类型转换和强制类型转换的应用,并举例说明。同时讲解了转义字符的概念、使用方法及其常见类型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、数据类型有什么用?

数据类型用来声明变量,程序运行过程中根据不同的数据类型分配不同大小的内存空间。

如:

int a=10;

double b=1.23;

a变量和b变量类型不同,所占用的内存空间的大小也不一样。

2、有哪些数据类型?

java语言中的数据类型包括基本数据类型引用数据类型

第一种:基本数据类型

​     基本数据类型又分为4大类:

  • 第一类:整数型

​            byte,shot、int、long(没有小数的)

  • 第二类:浮点型

            float,double(带小数的)

  • 第三类:布尔型

            boolean(只有两个值true和false,true表示真,false表示假)

  • 第四类:字符型

            char(java中规定字符型字面量必须使用单引号括起来,属于文字)

第二种:引用数据类型

  • 字符串型String属于引用数据类型
  • String字符串不属于基本数据类型范畴
  • java中除了基本数据类型之外,剩下的都是引用数据类型

3、8种基本数据类型占字节数以及取值范围

数据类型占用空间大小取值范围默认值数据类型占用空间大小取值范围默认值
byte1[-2^7 ~2^7-1]、 [-128~127]0float4[-2^31~2^31-1]、[-2147483648~2147483647]0.0
short2[-2^15~2^15-1]、[-32767~32768]0double8[-2^63~2^63-1]0.0
int4[-2^31~2^31-1]、[-2147483648~2147483647]0boolean1true、falsefalse
long8[-2^63~2^63-1]0char2[0~2^16-1]、 [0~65535]\u0000

如何使用:

public class Test{
	public static void main(String[] args){
		byte b=6;
		short s=20;
		int i=30;
		long l=200;
		//float类型在声明时,在末尾要加上L/l,由于l和1不好区分,一般写为大写L
		float f=1.25L;
		double d=3.14159;
	}
}

4、基本数据类型转换

1)转换规则

基本数据类型之间的转换可总结为以下几条规则:

  1. 8种基本数据类型中,除了boolean类型不能转换,剩下的七种类型都可以进行转换;

  2. 如果整数型字面量没有超出byte,short,char的取值范围,可以直接将其赋值给byte,short,char;类型的变量;

  3. 小容量向大容量称为自动类型转换,容量从大到小的排序为:

    byte < short(char) < int < long< float < double,其中short和char都占用两个字节,但是char不表示负数,所以char可以表示更大的正整数;

  4. 大容量转换成小容量,称为强制类型转换,编写时必须添加“强制类型转换符”,但运行时可能出现精度损失,谨慎使用;

  5. byte,short,char类型混合运算时,先各自转换成int类型再做运算;

  6. 多种数据类型混合运算,各自先转换成容量最大的那一种再做运算。

2)自动类型转换

小容量向大容量转换称为自动类型转换。

  1. long c=10L和long c=10有什么区别?

    ​ 两种写法编译均可以通过,但是其内部原理是不一样的。long c=10L是在内存中开辟一块内存用来存放long类型,值为10的数据,而long c=10其实是编译器将10默认为int类型的值,而在java中,小容量是可以直接给大容量赋值的。

  2. 思考下列代码。

public class Test{
	public static void main(String[] args){
        byte a=3;
        byte b=a+4; 
    }
}

第四行报错,报错原因:
     变量b和a都是byte类型的,而4编译器默认为int类型的,byte 类型的 a 和 int 类型的 4 求和, 结果为 int 类型,且对于以上代码来说 a 是一个变量,变量就是一个不确定的值,所以编译器会认为 a + 4 可能会超出 byte 取值范围, 所以编译报错了。

3)强制类型转换

      转换规则第四条,大容量转换成小容量,称为强制类型转换,编写时必须添加“强制类型转换符”,但运行时可能出现精度损失,谨慎使用

如何使用:

public class Test{
	public static void main(String[] args){
    	//强制类型转换规则:在需要转换的数据前加小括号,写上转换的目标类型,如下:
        int a=(int)3.14;
        System.out.println(a);  //输出结果为3,浮点型转整数型是直接截取整数部分,不会四舍五入
    }
}

5、转义字符

1)什么是转义字符?

​ 转义字符指用一些普通的字符组合代表一些特殊的字符,由于组合用的字符改变了原意,称为转义字符。 Java 中的转义字符以 \ 开始, 常见的转义字符有: \t、 \n、 \u、 \\、 \’, \",其中\t 代表制表符, \n 是换行符, \\表示一个普通的\字符,\‘表示一个普通的’, \“表示一个普通的”。

2)使用方法

使用如下:

public class Test{
	public static void main(String[] args){
		char c1 = 't';
        System.out.println("这是一个普通的字符 = " + c1);
        char c2 = '\t';
        System.out.println("abc" + c2 + "def");
	}
}

运行结果:
在这里插入图片描述

3)常见的转义字符

符号字符含义符号字符含义
\n换行 (0x0a)\t制表符
\r回车 (0x0d)\"双引号
\f换页符(0x0c)\’单引号
\b退格 (0x08)\\反斜杠
\0空字符 (0x0)\ddd八进制字符 (ddd)
\s空格 (0x20)\uxxxx16进制Unicode字符 (xxxx)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值