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

createh51个月前 (04-05)技术教程19
  • 数据类型分类



  • 基本数据类型的取值范围
  • 数据转换
    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设计规范

相关文章

还在为 Spring Boot3 反编译安全发愁?这个方法超管用!

在互联网大厂后端开发领域,基于 Spring Boot3 搭建的项目,已然成为众多企业业务运转的核心支撑。但随着技术的飞速发展,一个严峻的问题悄然浮现 —— 代码反编译风险。各位身为后端开发人员,想必...

安卓移动应用代码安全加固系统设计及实现

安卓平台已经逐渐成为最受欢迎的移动终端操作系统,基于安卓系统的软件应用数量众多,同时安全威胁也在不断增加。介绍了Android系统的安全风险及加固的核心技术,据此提出了一种安卓应用程序的安全加固系统,...

告别脚本小子系列丨JAVA安全(1)——JAVA本地调试和远程调试技巧

前言告别脚本小子系列是本公众号新开的一个集代码审计、安全研究和漏洞复现的专题,意在帮助大家更深入的理解漏洞原理和掌握漏洞挖掘的思路和技巧。首期系列课程主要分享关于java安全相关内容,一方面主要记录自...

JAVA安全(4)——ClassLoader机制与冰蝎Webshell分析

告别脚本小子系列丨JAVA安全(4)——ClassLoader机制与冰蝎Webshell分析前言告别脚本小子系列是本公众号的一个集代码审计、安全研究和漏洞复现的专题,意在帮助大家更深入的理解漏洞原理和...

轻松学会威纶通触摸屏上传与反编译

说到上传,大家并不陌生,上传顾名思义:就是把实际触摸屏画面上传到电脑EasyBuilderPro软件上,上传的作用是什么呢?可以修改触摸屏上原有的画面,所以说在上传这两字在工控中是非常重要的,接下来进...

反编译入门

我们在写单片机裸机程序时,在主函数之前,会有一段启动代码,而启动代码是用汇编写的,有些朋友可能看到汇编头都大了,当时要想深入研究底层架构,这快硬骨头就必须去啃。汇编:汇编文件转换为目标文件(里面是机器...