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

Java学习笔记15——类型转换(基本数据类型)

Java语言,要求严格声明变量的类型。数据类型的转换是在所赋值的数据的数值类型和被变量的数据类型不一致时发生的,它需要从一种数据类型转换成另一种数据类型。

在Java中,对于除了boolean类型以外的7种基本类型,在把某个类型的值直接赋给另外一种类型的变量时,这种方式成为基本类型的转换。

一般情况下,基本数据类型转化为自动类型转换(隐式转换)和强制类型转换(显示转换)两种。

1、自动类型转换

自动类型转化必须是在两个兼容的数据类型之间进行,并且必须是由低精度类型向高精度类型转换。整数类型、浮点型和字符型数据可以进行混合运算。在运算过程中,不同类型的数据会自动转换为同一类型,然后进行运算。

自动类型转换的规则:

(1)数值型之间的转换:byte-->short-->int-->long-->float-->double

(2)字符型转换为整形:char-->int

以上类型从左到右依次转换,最终转换为同一数据类型。

public class TestType {public static void main(String[] args) {int i = 20;float f = 12.5f;char c = 'A';System.out.println("i + f = " + (i + f));System.out.println("i + c = " + (i + c));Object type1 = i + f;Object type2 = i + c;System.out.println("(i + f)运算后的类型是: " + type1.getClass()); // 输出对象的类型System.out.println("(i + c)运算后的类型是: " + type2.getClass()); // 输出对象的类型}
}

上面代码中,声明了int类型i,float类型变量f,char类型变量a,并对它们初始化。对变量i和f进行加法运算,Java首先将int类型的变量i转化为float型,然后相加运算,把运算结果赋给变量type1;对变量i和c进行相加运算,将字符型先转换为整型,然后对i和c的值进行加法运算。

上面代码运算结果如下:

知识点:

Java中,char型即字符型,使用char关键字声明,它占用16位(2个字节)的内存空间,用来存储单个字符。char类型的范围是0~65536,没有负值。

在为char型的变量赋值时,可以使用单引号或者数字。char型使用两个字节的Unicode编码表示,Unicode定义了一个完全国际化的字符集,能够表示全部人类语言中的所有字符。

定义char型变量:

char c = 'A';

char c = 65;

上面两行代码是一样的,都是定义一个char型变量,并赋值。

在Java中,char常被当作整型类型,这意味着char和int、short、long以及byte属于同一分类。但是,由于char类型的主要用途是表示Unicode字符,因此,通常作为一个单独的分类。若想得到0~65536之间的数所代表的Unicode表中的相应位置上的字符,必须使用char型进行显式转换。

相关文章:

  • 手把手教您如何在国内免费使用GPT4接口的Bing,亲测有效!
  • 收下这份实操案例,还怕不会用Jmeter接口测试工具
  • 深入理解位运算符及其在JavaScript中的应用
  • html5cssjs代码 004 2035年倒计时
  • 揭秘2024美团春招:最全MySQL面试题大全,必看必收藏!
  • web中实现一个账号同一时间只能由一个人使用
  • 【MySQL篇】 MySQL基础学习
  • Objective-C blocks 概要
  • golang中fallthrough简介及用法
  • Java学习笔记18——SQLite3数据库安装与使用
  • Java中 常见的开源树库介绍
  • 如何选择好用的ai写作软件?
  • 实体门店运营方案:揭秘行业分类与拓展优质客户之道
  • 华为机考:HJ2 计算某字符出现次数
  • 147.乐理基础-七和弦是什么、七和弦的名字
  • 《Javascript高级程序设计 (第三版)》第五章 引用类型
  • Idea+maven+scala构建包并在spark on yarn 运行
  • JavaWeb(学习笔记二)
  • js学习笔记
  • Making An Indicator With Pure CSS
  • MobX
  • mysql中InnoDB引擎中页的概念
  • Spring思维导图,让Spring不再难懂(mvc篇)
  • 阿里云爬虫风险管理产品商业化,为云端流量保驾护航
  • 阿里云前端周刊 - 第 26 期
  • 初识 webpack
  • 从零到一:用Phaser.js写意地开发小游戏(Chapter 3 - 加载游戏资源)
  • 动手做个聊天室,前端工程师百无聊赖的人生
  • 回流、重绘及其优化
  • 前言-如何学习区块链
  • 如何胜任知名企业的商业数据分析师?
  • 数据结构java版之冒泡排序及优化
  • 格斗健身潮牌24KiCK获近千万Pre-A轮融资,用户留存高达9个月 ...
  • 如何在招聘中考核.NET架构师
  • 通过调用文摘列表API获取文摘
  • 资深实践篇 | 基于Kubernetes 1.61的Kubernetes Scheduler 调度详解 ...
  • ​LeetCode解法汇总1410. HTML 实体解析器
  • !!Dom4j 学习笔记
  • #LLM入门|Prompt#2.3_对查询任务进行分类|意图分析_Classification
  • (1)虚拟机的安装与使用,linux系统安装
  • (7)STL算法之交换赋值
  • (C语言)strcpy与strcpy详解,与模拟实现
  • (C语言)编写程序将一个4×4的数组进行顺时针旋转90度后输出。
  • (多级缓存)缓存同步
  • (附源码)springboot教学评价 毕业设计 641310
  • (简单有案例)前端实现主题切换、动态换肤的两种简单方式
  • (十五)devops持续集成开发——jenkins流水线构建策略配置及触发器的使用
  • (译) 理解 Elixir 中的宏 Macro, 第四部分:深入化
  • (转)C#调用WebService 基础
  • (转)ObjectiveC 深浅拷贝学习
  • (轉貼) 資訊相關科系畢業的學生,未來會是什麼樣子?(Misc)
  • . Flume面试题
  • .[hudsonL@cock.li].mkp勒索病毒数据怎么处理|数据解密恢复
  • .equal()和==的区别 怎样判断字符串为空问题: Illegal invoke-super to void nio.file.AccessDeniedException
  • .helper勒索病毒的最新威胁:如何恢复您的数据?