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

菜鸟养成记--Java篇(一)类型转换

银行业务怎么表示?

不能够用浮点数表示,浮点数是一个约数,应当用专门的类去表示银行数据,要符合银行数据的特点,浮点数在计算机中是以二进制的形式存储和表示的,对于一些十进制小数,如 0.1,无法用有限的二进制位精确表示,会产生舍入误差。

Java中有BigDecimal,这些数据类型通常会有专门的算法和存储方式来确保高精度的计算和存储。

相同对象与常量池对象

public class StringComparisonExample {
    public static void main(String[] args) {
        // 使用 new 关键字创建字符串对象,会在堆内存中开辟新的空间
        String sa = new String("hello world");
        String sb = new String("hello world");

        // 使用 == 比较对象的内存地址,由于 sa 和 sb 是堆中不同位置的对象,所以输出 false
        System.out.println("使用 new 创建的 sa 和 sb 用 == 比较: " + (sa == sb));

        // 通过直接赋值的方式创建字符串对象,字符串会存放在字符串常量池中
        String sc = "hello world";
        String sd = "hello world";

        // 由于 sc 和 sd 指向常量池中的同一个字符串对象,所以输出 true
        System.out.println("直接赋值创建的 sc 和 sd 用 == 比较: " + (sc == sd));

        // 原代码中这里可能是误写,比较 sa 和 sd,由于一个在堆一个在常量池,输出 false
        System.out.println("使用 new 创建的 sa 和直接赋值创建的 sd 用 == 比较: " + (sa == sd));
    }
}

类型转换

Java是强类型语言,运算中,不同类型先转换成同一语言,再进行计算。。

类型转换的优先级

低        byte -> short -> char -> int -> long -> float -> double        高

强制类型转换与自动类型转换。

高优先级向低优先级转换时,为强制转换:

double doubleValue = 3.14;
int intValue = (int) doubleValue; 

自动类型转换:

//低精度类型可以自动转换为高精度类型
byte byteValue = 10;
int intValue = byteValue;

类型转换时发生的内存溢出

int i = 128;
byte b =(byte)i;
//>>>b=-1

b输出-1,因为byte最大是127,发生内存上溢,因此在操作比较大的数进行类型转换过程中,就要避免溢出的数。

注意事项

bool值不可以参与强制类型转换;

转换时会吃此案精度问题。


http://www.kler.cn/a/558966.html

相关文章:

  • Docker入门及基本概念
  • 基于ffmpeg+openGL ES实现的视频编辑工具-添加背景音乐(十一)
  • C1车证学习笔记
  • DeepSeek 助力 Vue 开发:打造丝滑的表单验证(Form Validation)
  • Spring Boot集成Redis + Lua脚本实现原子性操作:小白入门指南
  • 如何让大模型理解变量,扣子(coze)智能体中变量描述起着啥作用?程序员看了集体惊呆!扣子免费系列教程(19)
  • 梯度计算(MATLAB和pytorch实例)
  • Github 2025-02-21 Java开源项目日报Top7
  • Unity制作游戏——前期准备:Unity2023和VS2022下载和安装配置——附安装包
  • netty十八罗汉之——挖耳罗汉(Decoder)
  • 一文弄懂RSA算法中的TLS握手流程
  • 大白话“讲”哈希表
  • 数据结构与算法-搜索-双向搜索 和 A*算法(字串变换,八数码,第k短路)
  • 【Vue3+Tres 三维开发】03 - 基本操作
  • 习题解答 | 一维差分与等差数列差分
  • 如何通过 Docker 在没有域名的情况下快速上线客服系统
  • Unity for Python —— 强大的 Python 脚本支持提升 Unity 编辑器效率
  • C语言递归——青蛙跳台阶问题和汉诺塔问题
  • 辗转相除法(欧几里得算法)
  • transformer架构嵌入层位置编码之RoPE旋转位置编码及简单实现示例