Android 面试和笔试题集

算法 1. 两个线程交替打印 0-100 2. 给定一个数,如何在一个有序列表找到两个数的和等于这个数? 3. 动态规划 4. 大数相乘 5. 两个栈实现队列,两个队列实现栈 6. 判断二叉树是否是镜像、二叉树深度、二叉树左右子树交换、最大路径、层次遍历、之字遍历

应用介绍

Java 部分(一)基础知识点

### 1. <span id="java_base_1">Java中 == 和 equals 和 hashCode 的区别</span>

Java中的数据类型可分为两类,基本数据类型和引用类型。基本数据类型:byte、short、char、int、long、float、double、boolean。他们之间的比较用双等号(==),比较的是**值**。引用类型:类、接口、数组。当他们用双等号(==)进行比较的时候,比较的是他们在**内存中的存放地址**。对象是放在堆中的,栈中存放的是对象的引用(地址)。由此可见,**双等号是对栈中的值进行比较的**。如果要比较堆中对象是否相同,那么就要重写equals方法了。

默认情况下(没有覆盖equals方法)下的equals方法都是调用Object类的equals方法,而Object的equals方法主要是用于判断**对象的内存地址引用是不是同一个地址**(是不是同一个对象)。下面是Object类中的equals方法:

```java

public boolean equals(Object obj) { 

    return (this == obj); 

}

```

定义的equals方法与==是等效的。

**但是**,要是类中覆盖了equals方法,那么就要根据具体代码来确定equals方法的作用了。**覆盖后的一般都是通过对象的内容是否相等来判断对象是否相等。**下面是String类对equals方法进行了重写:

```java

public boolean equals(Object anObject) { 

    if (this == anObject) { 

        return true; 

    } 

    if (anObject instanceof String) { 

        String anotherString = (String)anObject; 

        int n = count; 

        if (n == anotherString.count) { 

        char v1[] = value; 

        char v2[] = anotherString.value; 

        int i = offset; 

        int j = anotherString.offset; 

        while (n-- != 0) { 

            if (v1[i++] != v2[j++]) 

            return false; 

        } 

        return true; 

        } 

    } 

    return false; 

}

```

hashCode()方法返回的就是一个数值,从方法名上来看,其目的就是生成一个hash码,hash码的主要用途就是在**对对象进行散列的时候作为key输入**。

。。。。。。。了解详情请下载附件。

文件列表(部分)

名称 大小 修改日期
Android.md2.03 KB2020-09-08
Answer.md72.60 KB2020-09-08
JVM 面试题集.md0.35 KB2020-01-03
中断与系统调用.md0.78 KB2020-01-03
什么是死锁,死锁产生的条件以及处理方法.md2.52 KB2020-01-03
什么是虚拟内存.md2.70 KB2020-01-03
内存管理中分页和分段有什么区别?.md3.67 KB2020-01-03
缓冲区溢出.md0.48 KB2020-09-08
进程和线程的区别.md1.43 KB2020-09-08
进程有哪几种状态.md0.53 KB2020-09-08
进程调度策略.md2.24 KB2020-01-03
进程间通信的几种方式.md3.44 KB2020-01-03
Android0.00 KB2020-01-03
JVM0.00 KB2020-01-03
操作系统0.00 KB2020-09-08
Android_QA0.00 KB2020-09-08

立即下载

相关下载

[Android 面试和笔试题集] 算法 1. 两个线程交替打印 0-100 2. 给定一个数,如何在一个有序列表找到两个数的和等于这个数? 3. 动态规划 4. 大数相乘 5. 两个栈实现队列,两个队列实现栈 6. 判断二叉树是否是镜像、二叉树深度、二叉树左右子树交换、最大路径、层次遍历、之字遍历

评论列表 共有 0 条评论

暂无评论

微信捐赠

微信扫一扫体验

立即
上传
发表
评论
返回
顶部