Java--基本数据类型拓展 &转义字符

1. 基本数据类型拓展

在这里插入图片描述
在这里插入图片描述


1.1 整型拓展

在我们计算机中存在很多进制问题,十进制,八进制,十六进制等等的问题,他们怎么表示呢?

  • 十进制整数,如:99, -500, 0。
  • 八进制整数,要求以 0 开头,如:015。
  • 十六进制数,要求 0x 或 0X 开头,如:0x15 。

演示:

    public static void main(String[] args) {
        //整型
        int i = 10;// 10进制
        int i2 = 010; // 8进制
        int i3 = 0x10;//16进制
        System.out.println("10进制: " + i);// 10
        System.out.println("10进制: " + i2);// 8
        System.out.println("10进制: " + i3);// 16
    }

在这里插入图片描述


1.2 浮点型拓展

【金融面试问:银行金融业务用什么类型表示?】

浮点类型float,double的数据不适合在不容许舍入误差的金融计算领域。
如果需要进行不产生舍入误差的精确数字计算,需要使用BigDecimal类。

    public static void main(String[] args) {
        float f = 0.1f;
        double d = 1.0 / 10;
        System.out.println(f == d); //false
        float d1 = 2131231231f;
        float d2 = d1 + 1;
        if (d1 == d2) {
            System.out.println("d1==d2"); // 输入d1==d2
        } else {
            System.out.println("d1!=d2");
        }
    }

在这里插入图片描述

主要理由:

由于字长有限,浮点数能够精确表示的数是有限的,因而也是离散的。浮点数一般都存在舍入误差,很多数字无法精确表示,其结果只能是接近,但不等于;二进制浮点数不能精确的表示0.1,0.01,0.001这样10的负次幂。并不是所有的小数都能可以精确的用二进制浮点数表示。


1.2.1 最好完全避免使用浮点数比较

大数值:Java.math下面的两个有用的类:BigInteger和BigDecimal,这两个类可以处理任意长度的数值。BigInteger实现了任意精度的整数运算。BigDecimal实现了任意精度的浮点运算。

示例:

    public static void main(String[] args) {
        BigDecimal decimal1 = new BigDecimal("1.00000000000000000000000000001");
        BigDecimal decimal2 = new BigDecimal("1.00000000000000000000000000002");
        System.out.println(decimal1.equals(decimal2)); // flase

        double d1 = 1.00000000000000000000000000001;
        double d2 = 1.00000000000000000000000000002;
        System.out.println(d1 == d2);// true
    }

在这里插入图片描述


1.2.2 浮点数使用总结:

  1. 默认是double
  2. 浮点数存在舍入误差,很多数字不能精确表示。如果需要进行不产生舍入误差的精确数字计算,需要使用BigDecimal类。
  3. 避免比较中使用浮点数

1.3 字符型拓展

  • 单引号用来表示字符常量。例如‘A’是一个字符,它与“A”是不同的,“A”表示一个字符串。
  • char 类型用来表示在Unicode编码表中的字符。.
  • Unicode编码被设计用来处理各种语言的所有文字,它占2个字节,可允许有65536个字符;
  • 【科普:2字节=16位 2的16次方=65536,我们用的Excel原来就只有这么多行,并不是无限的】

【代码演示:字符转int看结果】

    public static void main(String[] args) {
        char c1 = 'a';
        char c2 = '中';
        System.out.println((int) c1); //97
        System.out.println((int) c2); //20013
    }

在这里插入图片描述

Unicode具有从0到65535之间的编码,他们通常用从’u0000’到’uFFFF’之间的十六进制值来表示(前缀为u表示Unicode)

示例:

    public static void main(String[] args) {
        char c3 = '\u0061';
        System.out.println(c3); //a
    }

在这里插入图片描述


1.3.1 转义字符

Java 语言中还允许使用转义字符 ‘’ 来将其后的字符转变为其它的含义,有如下常用转义字符:

转义字符含义Unicode编码
\b退格(Backspace)\u0008
\n换行\u000a
\r回车\u000d
\t制表符(tab)\u0009
\"双引号(")\u0022
\’单引号(')\u0027
\\反斜杠(\)\u005c

【String类,其实是字符序列(char sequence)。】
在这里插入图片描述


1.4 布尔型拓展

  • boolean类型(一位,不是一个字节),就是0|1
  • boolean类型有两个值,true和false,不可以 0 或非 0 的整数替代 true 和 false ,这点和C语言不同。
  • boolean 类型用来判断逻辑条件,一般用于程序流程控制。
    在这里插入图片描述

【编码规范】

在这里插入图片描述



  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
如果你使用Java生成XML文档,遇到了特殊字符需要进行转义,可以使用Java中的转义字符来实现。下面是一些常见的特殊字符及其转义字符: - "&" 转义为 "&" - "<" 转义为 "<" - ">" 转义为 ">" - "'" 转义为 "&apos;" - """ 转义为 """ 在Java中,你可以使用org.w3c.dom包中的Document和Element类来创建XML文档。在创建元素时,可以使用setAttribute方法来设置元素属性,使用appendChild方法来添加子元素。以下是一个示例代码: ``` DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document doc = builder.newDocument(); Element root = doc.createElement("root"); doc.appendChild(root); Element child = doc.createElement("child"); child.setAttribute("attr", "value"); root.appendChild(child); TransformerFactory transformerFactory = TransformerFactory.newInstance(); Transformer transformer = transformerFactory.newTransformer(); transformer.setOutputProperty(OutputKeys.INDENT, "yes"); transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2"); DOMSource source = new DOMSource(doc); StreamResult result = new StreamResult(new File("file.xml")); transformer.transform(source, result); ``` 在上面的代码中,我们创建了一个根元素"root",并添加了一个名为"child"的子元素,并设置了其属性"attr"的值为"value"。最后,我们使用Transformer将Document对象输出到文件中。 如果你需要将特殊字符转义后再添加到XML文档中,可以使用以下代码: ``` Element element = doc.createElement("element"); element.setTextContent("This & that"); child.appendChild(element); ``` 在上面的代码中,我们将文本"This & that"添加到了名为"element"的元素中,"&"被自动转义为"&"。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CodeJiao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值