腾讯面试时间及流程,【Java】JDK源码分析——Floa,android数据结构算法面试题


	public boolean isInfinite() {

		// 调用了重载方法

        return isInfinite(value);

	}



调用了重载的isInfinite方法。

判断float型的数是不是无穷大。

Float.java中的相关代码:


	public static boolean isInfinite(float v) {

		// 判断是否为正无穷或负无穷

        return (v == POSITIVE_INFINITY) || (v == NEGATIVE_INFINITY);

    }



7. isFinite方法


判断一个float型的数是否有限。

Float.java中的相关代码:


     public static boolean isFinite(float f) {

		// 对float数取绝对值,判断是否小于等于float能表示的最大值

        return Math.abs(f) <= FloatConsts.MAX_VALUE;

	}



8. floatToIntBits方法


将float型的数转换成满足IEEE 754浮点型表示法的int型的数。

**符号位MASK:0x80000000

指数位MASK:0x7f800000

有效位MASK:0x007fffff

正无穷:0x7f800000

负无穷:0xff800000

NaN:0x7fc00000**

Float.java中的相关代码:


	public static int floatToIntBits(float value) {

    	// 调用floatToRawIntBits转换成int型的数

		// 详解在1)处

        int result = floatToRawIntBits(value);

        // 根据指数位和非零有效位判断是不是NaN

        if ( ((result & FloatConsts.EXP_BIT_MASK) ==

              FloatConsts.EXP_BIT_MASK) &&

             (result & FloatConsts.SIGNIF_BIT_MASK) != 0)

            // 若是,则设置为NaN

            result = 0x7fc00000;

        // 返回

        return result;

	}



1)floatToRawIntBits方法

Float.java中的相关代码:


	public static native int floatToRawIntBits(float value);



该方法是一个native方法,该方法会将一个float型的数转换成满足IEEE 754浮点型表示法的int型的数,即使该数为NaN,也会进行转换。

9. intBitsToFloat方法


将int型的数按照IEEE 754浮点数标准转换为float型的数。

Float.java中的相关代码:


	public static native float intBitsToFloat(int bits);



该方法是一个native方法。

10. toString方法


将Float对象转换为String对象。

Float.java中的相关代码:


	public String toString() {

		// 调用了重载方法

        return Float.toString(value);

    }



调用了重载的toString方法。

Float.java中的相关代码:


	public static String toString(float f) {

		// 调用FloatingDecimal的toJavaFormatString方法

        return FloatingDecimal.toJavaFormatString(f);

	}



11. toHexString方法


将float型的数转换为十六进制的String对象。

Float.java中的相关代码:


	public static String toHexString(float f) {

    	// 对数值取绝对值,若小于正常的最小正数,同时不为0

        if (Math.abs(f) < FloatConsts.MIN_NORMAL

            &&  f != 0.0f ) {

            // 对数值进行类型转换,变为double型的数

            // 调用Math的scalb方法

            // DoubleConsts.MIN_EXPONENT-FloatConsts.MIN_EXPONENT = -896

			// 相当于数值f乘以2的-896次方

			// 最后调用Double的toHexString进行转换

            String s = Double.toHexString(Math.scalb((double)f,

                        DoubleConsts.MIN_EXPONENT-FloatConsts.MIN_EXPONENT));

            // 因为Double的指数为-1022,Float为-126,所以需要替换

            // 使用正则表达式,从后向前替换

            return s.replaceFirst("p-1022$", "p-126");

        }

        else // 若大于等于正常的最小整数,或等于0

            // 调用Double的toHexString进行处理

            return Double.toHexString(f);

	}



12. byteValue方法


获取当前数值对应的byte型数。

Float.java中的相关代码:


	public byte byteValue() {

    	// 进行类型转换,返回

        return (byte)value;

	}



13. shortValue方法


获取当前数值对应的short型数。

Float.java中的相关代码:


	public short shortValue() {

    	// 进行类型转换,返回

        return (short)value;

	}



14. intValue方法


获取当前数值对应的int型数。

Float.java中的相关代码:


    public int intValue() {

    	// 进行类型转换,返回

        return (int)value;

	}



15. longValue方法


获取当前数值对应的long型数。

Float.java中的相关代码:


	public long longValue() {

    	// 进行类型转换,返回

        return (long)value;

	}



16. floatValue方法


获取当前数值对应的float型数。

Float.java中的相关代码:


	public float floatValue() {

    	// 直接返回

        return value;

	}



17. doubleValue方法


获取当前数值对应的double型数。

Float.java中的相关代码:


	public double doubleValue() {

    	// 进行类型转换,返回

        return (double)value;

	}



18. hashCode方法


获取Float对象的哈希值。

Float.java中的相关代码:


    @Override

	public int hashCode() {



**自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。**

**深知大多数Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!**

**因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。**
![img](https://img-blog.csdnimg.cn/img_convert/4aed35cf0fa3e3454467e0048b14d185.png)
![img](https://img-blog.csdnimg.cn/img_convert/16596c5e0dbc949c065056575e051530.png)
![img](https://img-blog.csdnimg.cn/img_convert/8c536bdc0f500dfc5527365c41b7622f.png)
![img](https://img-blog.csdnimg.cn/img_convert/c11656804b7386ff41022d5c67495d4c.png)
![img](https://img-blog.csdnimg.cn/img_convert/06ff67e700a58fe47898aa99db0d26b5.png)
![img](https://img-blog.csdnimg.cn/img_convert/100cfbe62ca78eb6d9390f05bb9b2943.png)
![img](https://img-blog.csdnimg.cn/13f2cb2e05a14868a3f0fd6ac81d625c.png)

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!**

**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**

**如果你觉得这些内容对你有帮助,可以添加V获取:vip204888 (备注Android)**
![img](https://img-blog.csdnimg.cn/img_convert/13dc8ca7c8258205103786c9d5d0dc49.png)



### 总结

我最近从朋友那里收集到了**2020-2021BAT 面试真题解析**,内容很多也很系统,包含了很多内容:`Android 基础、Java 基础、Android 源码相关分析、常见的一些原理性问题`等等,可以很好地**帮助大家深刻理解Android相关知识点的原理以及面试相关知识**。

这份资料把大厂面试中**常被问到的技术点**整理成了PDF,包知识脉络 + 诸多细节;还有 高级架构技术进阶脑图 帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习。

这里也分享给广大面试同胞们,希望每位程序猿们都能面试成功~

**Android 基础知识点**

![](https://img-blog.csdnimg.cn/img_convert/e04ba8fae6d0a899cf7460f91c1f9fef.webp?x-oss-process=image/format,png)

**Java 基础知识点**

![](https://img-blog.csdnimg.cn/img_convert/65e775caf70c280968432c9f1463a5e0.webp?x-oss-process=image/format,png)

**Android 源码相关分析**

![](https://img-blog.csdnimg.cn/img_convert/1b5138761f6c86623b56c5199b7c46e5.webp?x-oss-process=image/format,png)

**常见的一些原理性问题**

![](https://img-blog.csdnimg.cn/img_convert/e14dbe8be5be7aa3e14616679c131977.webp?x-oss-process=image/format,png)

**腾讯、字节跳动、阿里、百度等BAT大厂 2019-2020面试真题解析**

![](https://img-blog.csdnimg.cn/img_convert/731ebcdb3abf32c2c0e674413b0b7a7d.webp?x-oss-process=image/format,png)


> **本文已被[CODING开源项目:《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》]( )收录**

[**一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!**](https://bbs.csdn.net/forums/4304bb5a486d4c3ab8389e65ecb71ac0)

**AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算**

题**

[外链图片转存中...(img-Pf3LdaLt-1712538222238)]

**腾讯、字节跳动、阿里、百度等BAT大厂 2019-2020面试真题解析**

[外链图片转存中...(img-dl7eOIio-1712538222239)]


> **本文已被[CODING开源项目:《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》]( )收录**

[**一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!**](https://bbs.csdn.net/forums/4304bb5a486d4c3ab8389e65ecb71ac0)

**AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算**

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值