首页 > 其他分享 >数据类型拓展与面试题解读

数据类型拓展与面试题解读

时间:2024-02-28 19:47:23浏览次数:25  
标签:字符 面试题 浮点数 打印 数据类型 解读 Unicode 使用 咱们

整数拓展

  • 进制:在平时咱们生活中经常见到的例如通用于电脑识别的二进制、咱们生活中常用的十进制工作中常见的八进制与十六进制
    • 二进制:通常会以0b开头
    • 十进制:咱们生活中的数字
    • 八进制:通常以0开头
    • 十六进制:通常以0x开头

图片

浮点数拓展 (float、double)

  • 试题举例

    • 银行业务中‘钱’的表示方式

      • 在银行处理业务时,钱肯定是不能给算错的,那么当我们在同时使用使用floatdouble时是存在问题的

        例如我们使用一下两种浮点数类型去做比较时

        图片

        我们来看它的比较结果

        图片

        咱们再次使用同类型浮点数进行对比

        图片

        我们再来看一下它们的对比结果

        图片

        这个时候是不是很多同学很奇怪,为什么上面的本该打印出true的却打印出false,而本该打印出false的却反而打印出true呢?

        • 其实呢,咱们float类型的浮点数它能表现的字长是限的,但是咱们知道,有些东西它们得出来可以是无限的。可是呢,他是有限的,也是离散的。它们是有这样一个区别的,浮点数都会存在一个舍入误差的东西,咱们都知道它会四舍五入但由于很多数字没办法精确的表示,结果只能是一个大约数。咱们小学都学过约等于它只是接近但是不等于所以它们在比较中是有问题的。由此,可以得出一个结论:最好完全避免使用浮点数进行比较
      • 那么回到咱们原本的问题:银行业务中‘钱’怎么表示呢?

        由上我们已经知道,我们不使用浮点数去比较,那么我们还可以使用一个类去比较。咱们先记住这个类,它的名字叫做BigDecimaL (数学工具类、大数类型)。咱们Java里面会有很多很多这样自定义好的类,咱们都可以拿来使用。咱们只需要知道,银行业务不能使用float来表示了,我们只需要使用BigDecimaL这个类来表示 (如果你需要计算且不能有误差,咱们就可以使用咱们Java写好的类BigDecimaL就可以了)

字符拓展

  • 咱们先来输入一段代码

    图片

    咱们可以看到图中c1c2的第二段打印代码前面都有一个'(int)',它是用来给咱们的字符强制转换为int类型 (并不是所有东西都可以强制转换的,但是这里是可以的),咱们先来看一下打印结果

    图片

    咱们可以看到,图中打印出的a和中都没有问题,但是97和20013这两串数字是什么东西呢?他就是咱们使用int强制转换得出的结果,所以我们可以得出一个结论:所有的字符本质还是数字

    • 关于Unicode

      • 由上我们通过单引号('a'或'中')来表示字符常量没有任何问题,但是这个char类型它会涉及到一个编码问题,它就是Unicode编码它的作用是处理各种语言的文字,在字节表示中占用了2个字节,在早些年的时候它最终可以表示0~65536个字符,现在的话可以表示的字符更多了。相信大家都知道Excel表格,它最长只有2的16次方,既是65536

      • 为什么说所有的字符本质还是数字呢?是这样的,字符的本身是数字通过char变成了各种字符,因为在Unicode中有一个编码表,在这个表中,有很多数字例如数字1等于某个字符,咱们上图打印中97等于a、20013等于中,在Unicode内正是这么表示的。如下图

        图片

        打印如下

        图片

        因此,在Unicode表中65代表大写A,无论是转换与否,它都会去查这样一张表,这个表内有非常多的东西包括我们的中文,因此字符本质上还是数字

    • Unicode转译

      • 由上得知,所有字符都会通过一个Unicode编码进行表示,而它们是怎么表示的?

        举例一个格式:U0000~UFFFF,这是它的区间范围。咱们来打印一个字符方便大家去理解,如下图

        图片

        打印如下

        图片

        • 这时候就会有人问了,a的转译表示为什么不是\u0097或者是\u97,而是出乎意料的\u0061呢?关于这个问题,咱们可以打开计算器计算一下97的十六进制编码是否就是0061,所以在Unicode中转译的进制编码为十六进制

        以上的底层原理大家了解一下就可以了,以防面试时被问到。实际使用中咱们只需要用到下图表示即可

        图片

常见转义字符

  • 制表符 (\t)

    图片

    图片

  • 换行符(\n)

    图片

    图片

  • ...(以上只是举例,更多转义字符可以在网络中查到)

标签:字符,面试题,浮点数,打印,数据类型,解读,Unicode,使用,咱们
From: https://www.cnblogs.com/ajunjava/p/18041576

相关文章

  • 面试题 02.07. 链表相交C
    利用链表的特性,如果相交的话,后面就不可能岔开!你可以想象把他们有同一个尾巴,然后从尾巴往前看。所以只要知道两个链表的长度,就可以在同一起跑线上一起比较了。/***Definitionforsingly-linkedlist.*structListNode{*intval;*structListNode*next;......
  • 前端面试题(四)—— 事件委托(Event Delegation)
    一、什么是事件委托事件委托(EventDelegation)是一种常用的技术。它利用事件冒泡的特性,在父元素上监听事件,而不是在子元素上直接添加事件监听器。通过在父元素上捕获事件,然后根据事件的目标(target)来执行相应的操作,从而实现对子元素的事件处理。二、实现方式通过给父元素添加事......
  • Java面试题笔记-多线程篇
    创建线程的几种方式继承Thread类,重写run方法实现Runnable接口,实现run方法实现Callable,实现call方法,配合FutureTask获取线程返回结果通过ThreadPoolExecuter线程池获取线程资源这几种方法的底层都是Runnable,Thread是Runnable接口的实现类,Callable配合FutureTask使用......
  • 面试题(三)—— 跨域
    一、什么是跨域1、跨域的产生在Web开发中,一个网页请求另一个域(域名、协议、端口号任一不同)的资源,就会发生跨域。2、跨域请求跨域请求是指在浏览器中执行的请求,其目标资源的域名、协议或端口与当前页面不同。3、跨域资源共享(CORS)跨域资源共享(CORS)是一种机制,它允许在一个源(域......
  • “倒春寒”的正确解读
    许多朋友都误认为立春节气过后的寒冷天气就是“倒春寒”,实际上对于湖北来说,立春之后通常还有很长一段时间处在气候冬季,此时说倒春寒还为时过早。“倒春寒”是一个气候学概念,指日平均气温稳定通过10℃进入气候春天后,出现的前期暖后期冷,且后期气温明显低于正常年份的现象。由于我省......
  • 面试题以及一些问题概述
    1数据库三大范式是什么数据库的三大范式是指关系数据库设计中的三个规范化级别,用于规范化数据库中的数据结构,提高数据的一致性和减少数据冗余。这三大范式分别是:1.第一范式(1NF):要求数据库表中的每个字段都是原子性的,不可再分。也就是说,每个字段中的数据不能包含多个值或多个属......
  • 面试题(一)—— CSS 盒模型
    一、什么是 CSS盒模型CSS盒模型是指在网页中,每个元素都被看作是一个矩形的盒子,这个盒子包含了元素的内容(content)、内边距(padding)、边框(border)和外边距(margin)。 二、标准盒模型与怪异盒模型1、box-sizing两个常用参数:content-box:默认值。标准盒模型border-box:怪异盒模......
  • seata面试题
    1、请介绍一下你对SEATA的理解以及你对分布式事务的看法SEATA是一个开源的分布式事务解决方案,它旨在解决分布式系统中的数据一致性问题。我理解的分布式事务是指涉及多个服务或数据库的操作,需要保证这些操作要么全部成功,要么全部失败,以确保数据的一致性。在传统的单体应用中,可......
  • 类:数据结构(模板)、数据类型(反射)、种类(amount)
    1.析构函数:在GC回收资源时,我们可以在析构函数中做事情; 2.也可以不用new关键字进行创建对象: 使用dynamic,可以直接调用name 3.静态构造器只能初始化静态成员 ......
  • 学java07数据类型
    基本类型数值类型整数类型:byte(1字节)-128到127;short(2字节)-32768到32767;int(4字节)-2147483648到2147483647;long(要在字数后面加L)(8字节)-9223372036854775808到9223372036854775807浮点类型:float(4字节)(要在字数后面加F);double(8字节)字符类型:char(2字节)单个符号或汉字字符串:string(不......