专业编程基础技术教程

网站首页 > 基础教程 正文

java基本数据类型之间的转换

ccvgpt 2025-03-03 17:36:27 基础教程 2 ℃
  • 数据类型分类



java基本数据类型之间的转换

  • 基本数据类型的取值范围
  • 数据转换
    1、整数类型默认的int类型;小数类型默认的double。
    2、String的字符串进行类型转换时,如果字符串中包含long整形的字符大写L或者小写l时,在转换成字符串时,会出现错误。
    示例:
    String str="123L";
    long str1=Long.parseLong(str);
    System.out.println(str1); //错误

    3、String的字符串是float、double浮点型时,字符串可以加f、F、D、d等,在进行基本类型转换时不会出错。
    示例:
    String f1="12.34f";
    float f2=Float.parseFloat(f1);
    System.out.println(f2);//结果:12.34,;d、D也一样
    4、自动类型转换(也叫隐式类型转换) ,其实就是小范围的数据类型向大范围的数据类型转换,例如int类型转long。
    5、强制类型转换(也叫显式类型转换) int b = (int)(i + j)。
    6、强制类型转换在某种情况下会丢失精度。
    7、表达式的数据类型自动提升。
  • 进行四则运算时
    1、所有的byte型、short型和char的值将被提升到int型。
    2、如果一个操作数是long型,计算结果就是long型。
    3、如果一个操作数是float型,计算结果就是float型。
    4、如果一个操作数是double型,计算结果就是double型。
    5、如果一个操作数是String型,计算结果就是String型。

案例(根据上面的规则):

byte b1 = 10;
byte b2 = 20;
byte b3 = b1 + b2 //错误,b1+b2是int类型,java的整数默认类型为int,b3是byte类型,二者类型不同,所以出错
byte b3 = (byte)(b1 + b2); //正确


short s1 = 10; 
s1 = s1 + 12; //错误: 不兼容的类型: 从int转换到short可能会有损失
short s2 = 10; 
s2 += 12;  // 等同于short s2 = (short)(s2 + (short)1); //正确
  • 其它

switch语句能否作用在byte上,能否作用在long上,能否作用在string上?
byte的存储范围小于int,可以向int类型进行隐式转换,所以switch可以作用在byte上
long的存储范围大于int,不能向int进行隐式转换,只能强制转换,所以switch不可以作用在long上string在1.7版本之前不可以,1.7版本之后switch就可以作用在string上了。
switch:

源码:
public static void main(String[] args) {
		String s = "a" ;
		switch (s) {
			case "1":
				break;
			case "2":
				break;
			default:
				break;
		}
	}
反编译后:
public static void main(String[] args) {
    String s = "a";
    String str1;
    switch ((str1 = s).hashCode()) { case 49:
    case 50:
      if ((str1.equals("1")) || (goto 57) || (str1.equals("2")))
        break;
    }
  }


完毕!!!!

给个关注,转发,谢谢

SpringBoot开发自己的@Enable功能

Java线上CPU100% 问题排查

Restful API设计规范

最近发表
标签列表