首页 > 编程语言 >Java基础之数据类型扩展

Java基础之数据类型扩展

时间:2024-07-16 17:42:28浏览次数:19  
标签:Java 数据类型 float 扩展 System double println public out

一、整数扩展

Java中四种进制的表示方式:二进制0b,八进制0,十进制默认,十六进制0x或0X

public class Demon02{
    public static void main(String[] args){
         //二进制
         int i = 0b10; 
         //八进制
         int i2 = 010; 
         //默认十进制
         int i3 = 10;
         //十六进制
        int i3 = 0x10;
        System.out.println(i);    //2
        System.out.println(i2);  //8
        System.out.println(i3);  //10
        System.out.println(i4);  //16
    }
}

二、浮点数扩展

1.当float和double进行数值比较时

public class Demon02 {
    public static void main(String[] args) {
        float a = 0.1f;
        double b = 0.1d;
        double c = a;
        System.out.println(a);             //0.1
        System.out.println(b);             //0.1
        System.out.println(c);             //0.10000000149011612
        System.out.println(a==b);         //false
        System.out.println(a==(float)b); //true
}
}

在数值相等的情况下,两个数值比较却返回false?
主要原因是double 和 float 两个数据类型的精度不同所引起的
我们将 float 类型的 a,转换成 double类型的 c,并输出后,我们可以看出float的0.1 与double 的 0.1是不同的
当我们进行数值比较的时候,尽量将两个数值转换成同一类型进行比较
2.浮点数值不适用于无法接受舍入误差的金融计算中
如果在数值计算中不允许有任何舍入误差,就应该用BigDecimal类

public class Demon02 {
    public static void main(String[] args) {
        //0.10000000000000009
        System.out.println((double)2.0-(double)1.9);
        //0.100000024
        System.out.println((float)2.0f-(float)1.9f);
    }
}

我们可以看出,这是有误差的。
而这种舍入误差的原因主要原因是浮点数值采用二进制系统表示,而在二进制系统中无法精确地表示分数1/10。
这就好像十进制无法精确地表示分数1/3一样。这也是在精确地数值计算中,使用BigDecimal类的原因

三、字符型扩展

char是字符型,在Java中规定为2个字节。
同样地,目前全球通用的字符集编码Unicode码,最常见的也是用2个字节表示字符。
其实,Java可以通过字符型和整型的相互强制类型转换,实现由字符得出其Unicode码,也可通过Unicode码得到对应的字符。

public class Demon02 {
    public static void main(String[] args) {
        char a= '\u0061';
        char b = 'a';
        System.out.println(a); //a
        //字符强制类型转为int,再转为16进制,即为Unicode码
        System.out.println(Integer.toHexString((int)b)); // 61
    }
}

由此可见,Java中char是值类型,将字符显示转换为数值会得到字符的Unicode编码值。

标签:Java,数据类型,float,扩展,System,double,println,public,out
From: https://www.cnblogs.com/walkWithJoy/p/18305765

相关文章

  • CSS 不用JavaScript实现动画 box-shadow 渐变实现内切角
    阴影实现的关键点在于使用伪元素绝对定位在容器的一角,元素本身透明,阴影扩散开形成内切圆角效果阴影实现缺点,单个标签最多只能是2个内切圆角径向渐变实现内切圆角可以是4边HTML:<divclass="shadow">使用阴影的扩散半径实现内切圆角</div><divclass="shadow2">阴影实现缺点......
  • java预料
    什么是计算机由硬件+软件组成能够按照程序运行计算机硬件CPU、内存、主板、IO设备等等冯.诺依曼结构计算机软件计算机软件可以使计算机按照事先预定好的顺序完成特定的功能计算机软件按照其功能划分为系统软件与应用软件Windows快捷方式Ctrl+C:复制Ctrl+V:粘贴Ctrl......
  • java陷阱之遍历数据源数据
    日常我们执行刷数更新避免使用分页偏移,如何涉及到条件变更会丢数据比如满足条件的数据12 34 567根据分页偏移查询当处理第一页12,12处理后不满足条件分页指针偏移到2,这个时候条件12已经不满足了就丢了34数据采用id偏移的方式针对要修改的db场景,还应该避免大事务......
  • 你不知道的JavaScript---强制类型转换
    你好,我是小白Coding日志,一个热爱技术的程序员。在这里,我分享自己在编程和技术世界中的学习心得和体会。希望我的文章能够给你带来一些灵感和帮助。欢迎来到我的博客,一起在技术的世界里探索前行吧!JavaScript是一种动态类型语言,这意味着变量可以在不同类型之间自由转换。在开发......
  • JavaScript字符串对象查找字符出现次数
      查找字符串中某个字符出现的次数思路:1.根据indexOf()方法的特性只会返回要查找的字符出现再字符串中的第一次的位置     2.而且想要继续往后查找则需要跳过前一个已经查询了的字符的位置,则可以在原先位置加       1后再查找     3.将......
  • Java中的日志管理与分析最佳实践
    Java中的日志管理与分析最佳实践大家好,我是微赚淘客系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!在大型软件系统中,良好的日志管理与分析是确保系统稳定性和性能的关键因素。本文将深入探讨Java中的日志管理最佳实践,以及如何通过有效的日志分析提升系统的运维效率和故障排......
  • Java中的网络编程与TCP/IP协议详解
    Java中的网络编程与TCP/IP协议详解大家好,我是微赚淘客系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!在现代软件开发中,理解和掌握网络编程以及TCP/IP协议是构建高性能网络应用的关键。本文将深入讨论Java中的网络编程技术和TCP/IP协议的工作原理与应用。一、网络编程基础......
  • 深入理解Java虚拟机(JVM)及其内部原理
    深入理解Java虚拟机(JVM)及其内部原理大家好,我是微赚淘客系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!在Java开发中,了解Java虚拟机(JVM)的工作原理是非常重要的。本文将深入探讨JVM的内部结构和运行机制,帮助读者更好地理解和优化Java应用程序的性能。一、JVM的基本概念和组成......
  • Java中的数据库连接池选择与优化策略
    Java中的数据库连接池选择与优化策略大家好,我是微赚淘客系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!在Java应用程序中,数据库连接池是提升性能和资源利用率的关键因素之一。本文将深入探讨如何选择和优化数据库连接池,以及在实际项目中的应用和注意事项。一、数据库连接池......
  • 使用Java和Redis构建高性能的缓存系统
    使用Java和Redis构建高性能的缓存系统大家好,我是微赚淘客系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!在现代应用程序中,高性能的缓存系统对于提升系统性能和响应速度至关重要。本文将详细介绍如何利用Java和Redis构建一个高效的缓存系统,以及实现过程中的关键技术和注意事......