【Java核心面试宝典】Day4、基本数据结构常见面试题汇总

举报
灰小猿 发表于 2021/07/31 12:01:47 2021/07/31
1.8k+ 0 0
【摘要】 Hello,你好呀,我是灰小猿!一个超会写bug的程序猿!用坚持缔造技术、用指尖敲动未来!和很多小伙伴们一样,我也是一名奔波在Java道路上的“创造者”。也想靠技术来改变未来,改变世界!因为我们坚信每一次敲动键盘都能让生活变得更智能、世界变得更有趣!在此专栏《Java核心面试宝典》记录我们备战梦想的【day 4】!今天来和大家分享在Java中有关基本数据结构相关的面试题,这一类问题因为比较基...

Hello,你好呀,我是灰小猿!一个超会写bug的程序猿

用坚持缔造技术、用指尖敲动未来!

和很多小伙伴们一样,我也是一名奔波在Java道路上的“创造者”。也想靠技术来改变未来,改变世界!因为我们坚信每一次敲动键盘都能让生活变得更智能、世界变得更有趣!

在此专栏《Java核心面试宝典》记录我们备战梦想的【day 4】

今天来和大家分享在Java中有关基本数据结构相关的面试题,这一类问题因为比较基础,其实有时候就很容易被我们忽视掉,但是这也不妨碍面试官对我们的考察呀!

一、Java的数据类型有哪些?

很多人都会在这个看似简单的问题中入坑,一说到数据类型,很多人第一时间想到的就是int、char等类型,但是我们仔细看题就会发现,题中所问的问题是数据类型,而不是基本数据类型。

数据类型有两种,分别是“基本数据类型”“引用数据类型”

基本数据类型包括的内容如下表:

QQ截图20210731103649.jpg

而引用数据类型包括的是三种:类、接口、数组

那么在Java中为什么会有“基本数据类型”和“引用数据类型”?

原因是因为 引用类型在堆里,基本类型在栈里,栈空间小且连续,往往会被放在缓存。引用类型的高速缓存率高且要多一次解引用。
而且对象还要再多储存一个对象头,对基本数据类型来说空间浪费率太高。

二、什么是数据类型直接量?

直接量是在程序中直接出现的常量值。

将整数类型的直接量赋值给整数类型的变量时,只要直接量没有超出变量的取值范围,即可直接赋值,如果直接量超出了变量的取值范围,则会导致编译错误。

整数类型的直接量默认是 int 类型,如果直接量超出了 int 类型的取值范围,则必须在其后面加上字母 L 或 l,将直接量显性声明为 long 类型,否则会导致编译错误。

浮点类型的直接量默认是 double 类型,如果要将直接量表示成 float 类型,则必须在其后面加上字母 F 或 f。将 double 类型的直接量赋值给 float 类型的变量是不允许的,会导致编译错误。

图片.png

三、基本数据类型之间是如何转换的?

因为我们在开发有时需要把不同类型的值混合运算,因此需要对数据类型进行转换。

对于数字类型转换.
不同的数字类型对应不同的范围,按照范围从小到大的顺序依次是:byte、short、int、long、float、double。

将小范围类型的变量转换为大范围类型称为拓宽类型,不需要显性声明类型转换。

将大范围类型的变量转换为小范围类型称为缩窄类型,必须显性声明类型转换,否则会导致编译错误。

而对于字符类型与数字类型之间的转换。
将数字类型转换成字符类型时,只使用整数的低 16 位(浮点数类型将整数部分转换成字符类型)。

将字符类型转换成数字类型时,字符的统一码转换成指定的数值类型。如果字符的统一码超出了转换成的数值类型的取值范围,则必须显性声明类型转换。

同时注意:布尔类型不能转换成其他基本数据类型,其他基本数据类型也不能转换成布尔类型。

关于基本数据类型之间的转换我之前写过一篇总结,小伙伴们可以看这里:
Java数值型和字符串互转锦集【收藏备用】

每日总结

今天关于基本数据结构相关的面试中,我们需要知道数据类型是分为“引用数据类型”和“基本数据类型”的,要记住这两种类型的内容和分类原则。知道是不同类型之间是如何转换的。

关于基本数据结构的内容就总结这些,如果小伙伴们有遇到其他相关的面试题,欢迎在评论区留言提出,我会把大家提出的总结到文章内,欢迎小伙伴们一起评论区打卡学习!小伙伴们可也在左方加我好友一起探讨学习

我是灰小猿,我们下期见!

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

作者其他文章

评论(0

抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。