Java数据类型,只需看这一篇

基本数据类型

	基本数据类型表示简单的数据,基本数据类型分为4大类,共有8种数据类型。
  • 整数类型:byte、short、int、long
  • 浮点类型:float、double
  • 字符类型:char
  • 布尔类型:boolean

基本数据类型如下图所示,其中整数类型、浮点类型、字符类型都属于数值类型他们之间可以相互转换
在这里插入图片描述

整数类型

java中整数类型包括byte、short、int、long,其实他们的区别仅仅在于宽度和范围的不同。

整数类型 宽度
byte 1个字节(8位)
short 2个字节(16位)
int 4个字节(32位)
long 8个字节(64位)

Java语言的整数类型默认是int类型,long需要在后面加 l / L 。试例如下

package java_hw;

public class HelloWorld {

	public static void main(String[] args) {
	//输出一个默认整数常量
	System.out.println("默认整数常量(int) = " + 7);
	byte a = 7;
	short b = 7;
	int c = 7;
	long d = 7L;
	long e = 7l;
	
	System.out.println("byte = " + a);
	System.out.println("short = " + b);
	System.out.println("int = " +c);
	System.out.println("long = " + d);
	System.out.println("long = " + e);
	}
}

浮点类型

浮点类型用来储存小数,也可以储存范围较大得整数,它分为浮点数(float)和双精度浮点数double),双精度浮点数内存比浮点数要大,可表示的数值范围与精度也较大。

浮点类型 宽度
float 4个字节(32位)
double 8个字节(64位)

数值的表示方式

1.进度数值表示

如果一个整数标量赋值,使用二进制、八进制、十六进制,它们的表示方式如下

  • 二进制:以0 b/B 为前缀
  • 八进制:以0为前缀
  • 十六进制: 以0 x/X 为前缀

例(如下几条同表达int整数28)

int decimaInt = 28;
int binaryInt1 = 0b11100;
int binaryInt2 = 0b11100;
int octalInt = 034;
int hexadecimalInt1 = 0x1c;
int hexadecimalInt2 = 0X1c;
2.指数类型

进行数学计算往往会用到指数表示的数值。如果采用十进制表示指数,则需要使用 e/E 表示幂,e2代表10的2次方

double myMemory = 3.33e2;
double freeSpaceMemory = 3.33e-2;

其中myMeory代表3.33 10的2次方,freeSpaceMemory代表3.33 10的负二次方

3.字符类型

字符类型表示单个字符,Java中char声明字符类型,Java中的字符常量必须是用单引号括起来的单个字符,如下

char a = 'B';

Java字符采用双字节Unicode编码,占两个字节(16位),因而可用16进制(无符号的)编码形式表示,它们的表现形式是\un,其中n为16位16进制数,所以’A’字符也可以用Unicode编码’\u0041’表示

在这里插入图片描述

在Java中,为了表示一些特殊字符,前面要加上反斜杠(\),这称为字符转义,常见转义符如下所示

扫描二维码关注公众号,回复: 8608588 查看本文章
字符表示 Unicode编码 说明
\t \u0009 水平制表符tab
\n \u000a 换行
\r \u000d 回车
\" \u0022 双引号
\’ \u0027 单引号
\\ \u005c 反斜线
4.布尔类型

在Java语言中声明布尔类型的关键字是boolean,它只有两个值:true和false

5.数值类型的相互转换

5.1 自动类型转换
自动类型转换就是需要类型之间转换是自动的,不要采取其他手段,总的原则是小范围数据类型可以自动转换为大范围数据类型。类型数据转换顺序如下图所示,从上之下总动完成的。
在这里插入图片描述
自动类型转换不仅发生在赋值过程中,在进行数学计算时也会发生自动类型幻化,在运算中往往是先将呼叫类型转换为同一类型,然后在进行计算。计算规则如下表

操作数1类型 操作数2类型 转换后的类型
byte、short、char int int
byte、short、char、int long long
byte、short、char、int、long float float
byte、short、char、int、long、float double double

public static void main(String[] args) {
		//声明整数变量
		byte byteNum = 16;
		short shortNum = 16;
		int intNum = 16;
		long longNum = 16;
		
		//byte类型转化为int类型
		intNum = byteNum;
		//声明char变量
		char charNum = '能';
		//char类型转化为int类型
		intNum = charNum;
		
		//声明浮点变量
		//long转化为float类型
		float floatNum = longNum;
		//float类型装华为double类型
		double doubleNum = floatNum;
		
		//表达式最后计算类型是double;
		double result = floatNum * intNum + doubleNum * shortNum;
	}

该表达式是又四个不同数据类型构成,范围最大的事double,所以在计算过程中他们先转化成double,那么最后的结果也是double类型
5.2 强制类型转化
在数值类型的转化过程中,除了需要自动类型转换外,有时还需要强制类型转换,强制类型变量或变量之前加上“目标类型”实现,实例代码如下:

//int型变量
int i = 10//把int型变量强制转化成byte
byte b =byte)i;

上述代码(byte)i表达式实现强制类型转换。强制类型转换主要用于大宽度类型转换为小宽度类型的情况,如把int转化为byte。实例代码如下:

//int型变量
int i = 10//把int变量i强制转换为byte;
byte b = (byte)i;
发布了19 篇原创文章 · 获赞 85 · 访问量 1341

猜你喜欢

转载自blog.csdn.net/qq_45828877/article/details/103337029
今日推荐