当前位置: 首页 > news >正文

Java基本数据类型变量自动提升、强制类型转换、String基本类型使用

在这里插入图片描述

文章目录

  • 基本数据类型变量自动提升
    • 特殊情况
  • 强制类型转换
  • String基本类型使用

基本数据类型变量自动提升

规则:
将取值范围小(或容量小)的类型自动提升为取值范围大(或容量大)的类型 。

在这里插入图片描述

byte、short、char-->int-->long-->float-->double

当存储范围小的数据类型与存储范围大的数据类型变量一起混合运算时,会按照其中最大的类型运算。


public class hello {public static void main(String[] args) {int a = 10;int b = a; // 通过 int==>intlong c = a;  // 通过 int==>longfloat d = c;  // 通过 long==>floatdouble e = a;  // 通过 int==>doublechar f = a; // 错误 int==>charint g = c; // 错误 long==>int}
}

特殊情况

byte、short、char之间的运算结果为int类型

如: byte类型 + short类型   = int类型 、byte类型 + byte类型   = int类型  、short类型 + short类型   = int类型  short类型+char类型 = int类型

public class hello {public static void main(String[] args) {byte a = 10;short b = 20;short c = a + b;}
}

在这里插入图片描述

  • 整型常量,规定是 int 类型
  • 浮点型常量,规定是 double 类型

public class hello {public static void main(String[] args) {long a = 123l;long b = 123; // 自动类型提升 int==>longlong c = 123123123123; // int类型超出了范围 报错long d = 123123123123l; // 正确float e = 12.3f;float f = 12.3; // 报错double==>float byte a1 = 10;//byte a2 = a1 + 1; // 报错int a2 - a1 + 1;double a3 = 10 + 12.3;}
}

强制类型转换

规则:
将取值范围大(或容量大)的类型强制转换成取值范围小(或容量小)的类型。自动类型提升是 Java 自动执行的,而强制类型转换是自动类型提升的逆运算,需要我们自己手动执行。

转换格式:
数据类型 T 变量名 = (数据类型 T)被强转数据值

  • 当把存储范围大的值(常量值、变量的值、表达式计算的结果值)强制转换为存储范围小的变量时,可能会损失精度或溢出。
  int a = (int) 3.14 // 3double d = 1.2;int num = (int)d; // 1int i = 200;byte b = (byte) i;// 溢出
  • 当某个值想要提升数据类型时,也可以使用强制类型转换。这种情况的强
    制类型转换是没有风险的,通常省略。
	int a = 1;int b = 2;double bigger = (double)(a/b);

String基本类型使用

  • String 不是基本数据类型,属于引用数据类型,俗称字符串
  • 使用一对" "来表示一个字符串,内部可以包含 0 个、1 个或多个字符。
  • 声明方式与基本数据类型类似。例如:String str = “Hello”;
  • Sring与基本数据类型变量之间的只能做链接运算,使用“+”标识
  • 运算结果是String类型
   int num = 10;boolean flag = true;String a = "abc"; String b = a + num + flag; System.out.println(b);// abc10true
http://www.lryc.cn/news/32819.html

相关文章:

  • Redis锁与幂等性不得不说的故事
  • Spark 应用调优
  • synchronized 与 volatile 关键字
  • 【0成本搭建个人博客】——Hexo+Node.js+Gitee Pages
  • 【面试实战】认证授权流程及原理分析
  • TPM命令解析之tpm2_startauthsession
  • 第14章 局部波动率模型
  • 云原生周刊:开源“赢了”,但它可持续吗?
  • 读《企业IT架构转型之道》
  • Qt中的QTcpSocket、QWebSocket和QLocalSocket
  • 枚举学习贴
  • 【C++】30h速成C++从入门到精通(继承)
  • Java多线程还不会的进来吧,为你量身打造
  • 8 神经网络及Python实现
  • 使用QIS(Quantum Image Sensor)图像重建总结(1)
  • 【SpringCloud】SpringCloud教程之Nacos实战(二)
  • 利用Qemu工具仿真ARM64平台
  • 【Hello Linux】进程控制 (内含思维导图)
  • 嵌入式linux物联网毕业设计项目智能语音识别基于stm32mp157开发板
  • 【黄河流域公安院校网络空间安全技能挑战赛】部分wp
  • 五点CRM系统核心功能是什么
  • window.print() 前端实现网页打印详解
  • php程序员应具有的7种能力
  • quarkus 生产环境与k8s集成总结
  • 蓝桥杯训练day2
  • 为什么99%的程序员都做不好SQL优化?
  • Jenkins最新版安装调试
  • 简略说一下go的sync.RWMutex锁
  • 软考马上要报名了,出现这些问题怎么办?
  • 单链表(增删查改)