Java学习之路-----Java数据类型

本文详细介绍了Java中的数据类型,包括基本数据类型(如byte, short, int, long, float, double, char, boolean)及其转换规则,如隐式转换和强制转换。此外,还讨论了引用数据类型,如类、接口、数组和对象,以及它们之间的转换。最后,对比了基本数据类型与引用类型的主要区别,强调了内存分配和精度问题。
摘要由CSDN通过智能技术生成


一、为什么有数据类型

我们都知道,变量其实就是内存中的一小块区域。我们定义一个变量,其实就是开辟了一个内存空间。如果没有数据类型,那么我们需要开辟多大的内存空间合适呢?为了解决这种问题,java就给我们提供了不同的数据类型,那么针对不同的数据类型,在内存中分配了不同大小的内存空间。

二、Java中数据类型的分类

  • 基本数据类型
  • 引用数据类型

基本数据类型

Java语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。

基本数据类型的详细讲解

数值型
			整数型		 字节数			范围
			byte 		 1(8bit)       	-128  ~  127 
			short		 2(16bit)	   	-2^15 ~  2^15 - 1
			int		     4(32bit)      	-2^31 ~  2^31 - 1
		    long		 8(64bit)      	-2^63 ~  2^63 - 1
			浮点数
			float        4(32bit)       -3.403*10^38  ~ 3.403*10^38
			double       8(64bit)	    -1.798*10^308 ~ 1.798*10^308
字符型
	  		char       2(16bit)	     0 ~ 2^16 - 1 = 65535
布尔型 
	  		boolean     	1

	整数默认是int类型的 , 浮点数默认是 double类型的
class Test
{
	public static void main(String[] args) 
	{
		byte a=1;
		short b=2;
		int c= 3
		long d=1L;
		float f=1.0F;
		double t=3.14;
		char e='A';
		boolean one = true;
		System.out.println("a="+a);
		System.out.println("b="+b);
		System.out.println("c="+c);
		System.out.println("d="+d);
		System.out.println("f="+f);
		System.out.println("t="+t);
		System.out.println("e="e);
		System.out.println("one="+one);
	}
}
/*a=1
b=2
c=3
d=1
f=1.0
t=3.14
e=A
one=true
*/

基本数据类型转换

在Java中整型、实型、字符型被视为简单数据类型,这些类型由低级到高级分别为(byte,short,char)–int–long–float–double
byte,short,char之间不转换,他们参与运算首先转换为int类型

隐式转换

隐式转换即指在数据的运算过程中无需开发人员额外操作,系统可自行做出的操作,这种操作都是数据从低精度转换到高精度的转换

代码如下:

//byte类型转为int类型
public static void main(String[] args) 
	{
		byte a = 3;
		int i=a;
		System.out.println("i="+i);
	}
	//i=3
/*
byte,short,char三种数据类型为平级,不能被系统自动转换,三种数据类型中
char数据类型转换为高级类型,如int类型时,会转换为对应ASCII码值
*/
char类型转为int类型
{
		char a = 'A';
		int i=a;
		System.out.println("i="+i);
	}
	//i=65
//int类型转为long类型
	{
		int a = 3;
		long i=a;
		System.out.println("i="+i);
	}
	//i=3
//long类型转为float类型
	{
		long a = 3;
		float i=a;
		System.out.println("i="+i);
	}
	i=3.0
//float类型转为double类型
	{
		float a = 3;
		double i=a;
		System.out.println("i="+i);
	}
	//i=3.0
强制转换

从高级数据类型到低级数据类型的转换。
强制转换的格式为:目标数据类型 变量名=(目标数据类型)(被转换的数据)
示例代码:

public static void main(String[] args) 
	{
		long a = 100;
		int i=(int)a;
		System.out.println("i="+i);
	}
	//i=100

注意事项
尽量不要使用强制类型转化,因为可能存在损失精度的问题
示例代码:

{
		int a = 128;
		byte i=(byte)a;
		System.out.println("i="+i);
	}	
	//i=-128

强制类型转换代码示例:
示例代码:

高级类型向低级类型转换
int i=99;

byte b=(byte)i;

char c=(char)i;

float f=(float)i;
double d = (double)f;
平级转换
short i=99;

char c=(char)i;

引用数据类型

引用数据类型有类,接口,数组,以及对象。
在java里面除去基本数据类型的其他类型都是引用类型,自己定义的class类都是引用类型,可以像基本类型一样使用。
常见的引用类型有:StringStringBufferArrayListHashSetHashMap等。

引用数据类型转换

基本类型 与 对应包装类 可自动转换,这是自动装箱和折箱的原理;
两个引用类型间转换:
子类能直接转换为父类 或 接口类型;
父类转换为子类要 强制类型转换;且在运行时若实际不是对应的对象,会抛出ClassCastException运行时异常;

基本数据类型与引用数据类型的区别

基本数据类型和引用类型的区别主要在于基本数据类型是分配在栈上的,而引用类型是分配在堆上的。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值