数据类型及类型转换

数据类型

数据类型及数据的类型,有两个作用,开辟内存空间以及决定存放的数据类型,Java的基本数据类型有八种,具体情况如下。

一、整形数据(byte、short、int、long)

Java整形数据有四种表示形式,byte,short,int,long,他们的区别为取值范围不同,之所以不同是为了节省空间,例如年龄变量,我们只需要用short型即可(byte最大为127),没必要采用int型,占内存。

Java整数有四种表示形式,分别如下:

1、十进制整数:如127,-5等

2、二进制整数:以0b开头,如0b011(十进制3)0~1

3、八进制整数:以0开头,如011(十进制9)0~7

4、十六进制数:以0x开头,如0x01f(十进制31)0~9,a~f/A~F相同意义

二、浮点型数据(float、double)

浮点型数据有以下两种形式

1、十进制形式:如3.14

2、科学计数法:如3e8(表示3*10的8次方)E,e均可

注:float型精度要比double小,float  a=1.3,会出错,1.3默认类型为double,故应为double a=1.3(亦可进行强制类型转换,下面会提及)

三、字符型数据(char)

与C语言不同的是,C语言字符型数据采用的是ASCII码,一个字符一个字节,表示范围为0到2的8次方-1(0-255),而Java字符采用的是Unicode编码,一个字符两个字节,表示范围为0到2的16次方-1(0-65535),前256位都相同,后面相当于ASCII的扩展。

该种数据类型的变量可以有以下几种赋值方式:

1、 使用英文单引号(' ')括起单个字符;例如:

   char c1 = 'a';  

   char c2 = '中';//char可以存储一个中文(一个中文也占2个字节);

2、 使用英文单引号括起来十六进制字符代码值来表示单个字符,格式为'\uXXXX',其中u是约定的前缀,为Unicode的第一个字母,例如:    

  char c1 ='\u0061';// 实质代表a字母  

3、可以直接使用数字表示单个字符,例如:

   char c2 = 97;//表示a字母

4、 某些特殊的字符可以采用转义符'\'来表示,以将其后面的字符转变为其它含义,例如:  

  char c1 = '\t';//制表符  

  char c2 = '\n';//换行符-New Line  

  char c3 = '\r';//回车符-Carriage Return

四、布尔型数据(boolean)

布尔型,又称逻辑类型,只有true和false两个取值,默认初始值为false。这区别与C语言,在C语言标准(C89)没有定义布尔类型,所以C语言判断真假时以0为假,非0为真。

在二进制逻辑中Java规定1为真0为假。

类型转换

类型转换有两种:自动类型转换与强制类型转换

1、将表示范围小的数据类型赋值给表示范围大的数据类型时,Java自动使用隐式类型完成数据类型转换

2、而将表示范围大的数据类型赋值给表示范围小的数据类型时,只能进行强制类型转换,且会导致数据精度受损。

      强制类型转换可能导致数据精度损失或溢出

     转换格式:(要转换的类型)被转换的值

其中34.98f指float型34.98,不可省

编程实验:

public class HelloWorld{
	public static void main(String[] args){
		//整形byte short int long
		int age1=12;//十进制
		System.out.println(age1);
		int age2=0b0111;//二进制0 1
		System.out.println(age2);
		int age3=017;//八进制0~7
		System.out.println(age3);
		int age4=0x01f;//十六进制0~9 a~f
		System.out.println(age4);
		int age_4=0x01F;
		System.out.println(age_4);
		System.out.println("~~~~~~~~~~~~~~~");
		//浮点型float double
		double price=9.9;//十进制
		System.out.println(price);
		double pi=3.14e2;//科学计数法
		System.out.println(pi);
		System.out.println("~~~~~~~~~~~~~~~");
		//字符型char
		char letter1='a';
		System.out.println(letter1);
		char letter2=65;
		System.out.println(letter2);
		char letter3='\u0041';
		System.out.println(letter3);
  		//转义字符
		System.out.println("HelloWorld");
		System.out.println("\tHello\nWorld");
		System.out.println("~~~~~~~~~~~~~~~");
		//boolean型true false
		boolean flag=true;
		System.out.println(flag);
		System.out.println("~~~~~~~~~~~~~~~");
		//数据类型转换
		byte a=12;
		int b=a;//小范围数据可以直接赋给大范围数据类型的变量,自动类型转换
		System.out.println(b);
		float c=0.1f;//0.1为double型,64位,大范围不能直接赋值给小范围
		System.out.println(c);
		int d=(int)3.14;//强制类型转换
		System.out.println(d);
				
		}
}

编译结果:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值