【无标题】

前言

Java语言是强类型语言,对于每一种数据都定义了明确的具体数据类型,在内存中分配了不同大小的内存空间。


一、基本数据类型分类

4类八种

1.整数型

- byte 	  占一个字节  	    -128到127【记住】
- short   占两个字  		 -2^15~2^15-1d
- int 	  占四个字节 		-2^31~2^31-1		整数的默认类型是int
- long    占八个字节 		-2^63~2^63-1

**注意事项:**
在定义long类型时候,推荐在long类型的值后面加特殊的标识(l或者L,推荐使用L)

*浮点型

- float 	占四个字节 		-3.403E38~3.403E38
	单精度浮点型,占内存:4个字节,精度:科学记数法的小数点后6~7位
- double 	占八个字节		-1.798E308~1.798E308		小数的默认类型是double
	双精度浮点型,占内存:8个字节,精度:科学记数法的小数点后15~16位

字符型

- char 	占两个字节 		0~65535    char类型 取的数值 代表的是码表值
- 具有数字和字母双重特性,能够进行数学运算(a+1)
- 允许使用转义字符'\'将其后的字符转变为其他的含义,例'\n'

布尔型*

计算机中
true底层使用1表示
false底层使用0表示

二、基本数据类中转换

在Java程序中,不同的基本数据类型的值经常需要进行相互转换。
Java语言所提供的七种数值类型之间可以相互转换,基本数据类型转换有两种转换方式:自动类型转换和强制类型转换。
boolean类型不参与。

1.自动类型转换(隐式类型转换)

取值范围小的类型自动提升为取值范围大的类型
Java中的默认转换规则:

  • byte short char 运算过程中 自动提升为 int
  • 取值范围小的数据类型与取值范围大的数据类型进行运算,会先将小的数据类型提升为其中最大的类型,再运算。
    只是在运算过程中,把小的转换为大的然后去运算,但是并不改变小的本身的数据类型

在这里插入图片描述示例代码:

class Demo3_DataTypeConversion { // Conversion转换
	public static void main(String[] args) {
		// 数据类型转换之隐式转换
		int x = 3;
		byte b = 4;

		x = x + b; // b类型从byte自动提升为int,再进行运算
		System.out.println(x);
        
        long l = 88L;
        l = l + b; // b类型从byte自动提升为int,遇到long类型又自动提升为long类型,再进行运算
        System.out.println(l);
	}
}

2.强制类型转换(显示类型转换)

取值范围大的类型强制转换成取值范围小的类型

强制转换问题

int a = 10;
byte b = 20; 
b = a + b;  //有问题,错误: 可能损失精度

强制转换格式

目标类型 变量名=(目标类型)(被转换的数据);
示例:
int a = 10;
byte b = 20;
b = (byte)(a + b);  // 强制转换

需注意事项

如果超出了被赋值的数据类型的取值范围得到的结果会与你期望的结果不同。

byte b = (byte)(127 + 1);
结果是什么?//-1

1.5 赋值到int 类型变量会发生什么?产生编译失败,肯定无法赋值。

int i = 3.14; // 错误

想要赋值成功,只有通过强制类型转换,将double 类型强制转换成int 类型才能赋值。

补充

基本数据类型与字符串类型的转换

  • 基本数据类型与字符串类型的转换
    - 任意数据类型的数据与String类型进行“+”运算时,结果一定是String类型
    
    - 但是String类型不能通过强制类型()转换,转为其他的类型
    
    • 示例代码

      System.out.println("" + 1 + 2);//成功的,结果为12 
      
      String str = "123";
      int num = (int)str;//错误的
      int num = Integer.parseInt(str);
      Integer in  =  new Integer(str);
      int num1 = in;//这里是自动拆箱
      Integer in1 = Integer.valueOf(str);
      //以上用到的是包装类和str的转化.
      
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值