基本数据类型转换

devtools/2024/11/15 4:46:35/

一 自动类型转换

java程序在进行赋值或者运算时,精度小的类型自动转换为精度大的数据类型 这个就是自动类型转换

数据类型按精度(容量)大小排序

  1. char -> int -> long -> float -> double
  2. byte -> short -> int -> long -> float -> double

二 自动类型转换注意和细节

  1. 有多种类型的数据混合运算时,系统首先自动将所有数据转换成容量最大的那种数据类型,然后再进行计算。
  2. 当我们把精度(容量)大 的数据类型赋值给精度(容量)小 的数据类型时就会报错,反之就会进行自动类型转换。
  3. (byte, short)和 char之间不会相互自动转换,
  4. byte,short,char 他们三者可以计算,在计算时首先转换为int类型,
  5. boolean 不参与转换
  6. 自动提升原则: 表达式结果的类型自动提升为 操作数中最大的类型
java">public static void main(String[] args) {//细节 1: 有多种类型的数据混合运算时,//系统首先自动将所有数据转换成容量最大的那种数据类型, 然后再进行计算int n1 = 10; //ok//float d1 = n1 + 1.1;//错误 n1 + 1.1 => 结果类型是 double//double d1 = n1 + 1.1;//对 n1 + 1.1 => 结果类型是 doublefloat d1 = n1 + 1.1F;//对 n1 + 1.1 => 结果类型是 float//细节 2: 当我们把精度(容量)大 的数据类型赋值给精度(容量)小 的数据类型时,//就会报错, 反之就会进行自动类型转换。//int n2 = 1.1;//错误 double -> int//细节 3: (byte, short) 和 char 之间不会相互自动转换//当把具体数赋给 byte 时, (1)先判断该数是否在 byte 范围内, 如果是就可以byte b1 = 10; //对 , -128-127// int n2 = 1; //n2 是 int// byte b2 = n2; //错误, 原因: 如果是变量赋值, 判断类型// char c1 = b1; //错误, 原因 byte 不能自动转成 char//细节 4: byte, short, char 他们三者可以计算, 在计算时首先转换为 int 类型byte b2 = 1;byte b3 = 2;short s1 = 1;//short s2 = b2 + s1;//错, b2 + s1 => intint s2 = b2 + s1;//对, b2 + s1 => int//byte b4 = b2 + b3; //错误: b2 + b3 => int//boolean 不参与转换boolean pass = true;//int num100 = pass;// boolean 不参与类型的自动转换//自动提升原则: 表达式结果的类型自动提升为 操作数中最大的类型//看一道题byte b4 = 1;short s3 = 100;int num200 = 1;float num300 = 1.1F;double num500 = b4 + s3 + num200 + num300; //float -> double
}

三 强制类型转换

自动类型转换的逆过程, 将容量大的数据类型转换为容量小的数据类型。 使用时要加上强制转换符 ( ), 但可能造成
精度降低或溢出,格外要注意。

四 强制类型转换细节说明

  1. 当进行数据的从大到小转换,就需要使用强制转换
  2. 强转符号只针对于最近的操作有效,往往使用小括号提升优先级
  3. char 类型可以保存 int 的常量值,但不能保存 int 的变量值,需要强转
  4. byte 和 short char 类型在进行运算时,当做int类型处理
java">public static void main(String[] args) {// 1.强制类型转换// int x = (int) 10*3.5+6*1.5;int x = (int) (10*3.5+6*1.5);System.out.println("x="+x);short s = 12; // ok// s = s - 9; // 错误byte b = 10; // ok//b = b + 11; // 错误b = (byte) (b + 11); // okchar c = 'a'; // okint i = 16; // okfloat f = .314f; // okdouble result = c + i + f; //okbyte b1 = 3;short s1 = 14;// short t = s1 + b1; //错误}

五 基本数据类型和 String 类型的转换

字符串转换为基本数据类型

语法:通过基本类型的包装类调用:parseXXX(String s)方法

基本数据类转换为型字符串

语法:将基本数据类型的值+“” 即可得到字符串类型

java">public static  void main(String[] args ){// 1.字符串转换为基本数据类型// 语法:通过基本类型的包装类调用:parseXXX(String s)方法// 1.1.字符串转换为整数String str1 = "123";int num1 = Integer.parseInt(str1);System.out.println(num1);// 1.2.字符串转换为浮点数String str2 = "3.14";double num2 = Double.parseDouble(str2);System.out.println(num2);// 1.3.字符串转换为布尔类型String str3 = "true";boolean b = Boolean.parseBoolean(str3);System.out.println(b);// 1.4.字符串转换为字符 charString str4 = "a";char c = str4.charAt(0);System.out.println(c);// 2.基本数据类型转换为字符串// 语法:将基本数据类型的值+"" 即可得到字符串类型int num3 = 100;float num3f = 100.0f;double num3d = 100.0;boolean num3b = true;String str3i = num3 + "";String str3f = num3f + "";String str3d = num3d + "";String str3b = num3b + "";System.out.println(str3i + " " + str3f + " " + str3d + " " + str3b);// 2.1.整数转换为字符串String str8 = String.valueOf(num3);System.out.println(str4);// 2.2.浮点数转换为字符串double num4 = 3.14;String str5 = String.valueOf(num4);System.out.println(str5);// 2.3.布尔类型转换为字符串boolean b1 = true;String str6 = String.valueOf(b1);System.out.println(str6);}

http://www.ppmy.cn/devtools/11001.html

相关文章

spring.factories中配置ApplicationContextInitializer实现类却不起作用

自定义了一个ApplicationContextInitializer的实现类如下 public class MyApplicationContextInitializer implements ApplicationContextInitializer<ConfigurableApplicationContext> {Overridepublic void initialize(ConfigurableApplicationContext applicationCon…

走出“至暗时刻”,托举三只松鼠的力量是什么?

品牌是时代的产物&#xff0c;也随时代而变化。能存在超过十年&#xff0c;依旧欣欣向荣的品牌&#xff0c;身上或多或少都承载了关于穿越周期的哲学。 最近的例子是零食行业的三只松鼠&#xff0c;三只松鼠的创业史&#xff0c;内涵非常丰富&#xff0c;有电商和实体的纠缠&a…

基于Springboot的心灵治愈交流平台

基于SpringbootVue的心灵治愈交流平台的设计与实现 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringbootMybatis工具&#xff1a;IDEA、Maven、Navicat 系统展示 用户登录 首页展示 系统公告 心理咨询师 心灵专栏 压力测试 小纸条 后台登录界面 后…

linux18:进程等待

进程等待的必要性 1&#xff1a;子进程创建的目的是要完成父进程指派的某个任务&#xff0c;当子进程运行完毕退出时&#xff0c;父进程需要通过进程等待的方式&#xff0c;回收子进程资源&#xff0c;获取子进程退出信息&#xff08;子进程有无异常&#xff1f;没有异常结果是…

​Gu‘reum 工作室在The Sandbox推出 2024 年农历新年活动!

通过区块链游戏分享韩国文化并建立社区&#xff01; 去年 12 月&#xff0c;Gurenum 工作室 在The Sandbox 元宇宙上发起了 2023 年年末 Lan Party 直播活动。 https://sandboxgame.medium.com/gureum-studio-hosts-a-year-end-lan-party-in-the-sandbox-metaverse-b9a3fc6e7b9…

数据类型判断的方法

一、typeof 使用方法如下&#xff1a; typeof operand typeof(operand)operand表示要返回类型的对象或基本类型的表达式 &#xff0c;typeof运算符返回一个字符串&#xff0c;表示操作数的类型。 typeof 666 // number typeof 666 // string typeof undefined // undefined …

什么是Redis?

Redis 是一个开源的高性能键值存储数据库&#xff0c;它以内存中的数据结构服务器的形式存储数据&#xff0c;允许对这些数据进行读取和写入。Redis 是一个多用途的工具&#xff0c;被广泛用作缓存、消息队列、计数器、实时排行榜、会话存储和分布式锁等。 以下是 Redis 的一些…

广州大学《软件工程》实验报告三软件设计

广州大学学生实验报告&#xff08;三&#xff09; 开课学院及实验室&#xff1a; 学院 年级/专业/班 姓名 学号 实验课程名称 软件工程导论实验 成绩 实验项目名称 软件设计 指导老师 一、实验目的 掌握软件设计建模技术&#xff0c;能够撰写软件设计文…