2024最全Android面试题及答案整理2【持续更新】

前言

抓住金三银四的尾巴,继上一篇2024最全Android面试题及答案整理1【持续更新】之后,今天给大家分享2024最全Android面试题及答案整理2【持续更新】,有需要的朋友可以收藏了。
在这里插入图片描述

Java核心基础面试题汇总

2.1 Java中提供了抽象类还有接口,开发中如何去选择呢?

  • 这道题想考察什么?
    Java是面向对象编程的,抽象是它的一大特征,而体现这个特征的就是抽象类与接口。抽象类与接口某
    些情况下都能够互相替代,但是如果真的都能够互相替代,那Java为何会设计出抽象与接口的概念?这
    就需要面试者能够掌握两者的区别。
  • 考察的知识点
    OOP(面向对象)编程思想,抽象与接口的区别与应用场景;
  • 考生应该如何回答
    抽象类的设计目的,是代码复用;接口的设计目的,是对类的行为进行约束。
    当需要表示is-a的关系,并且需要代码复用时用抽象类
    当需要表示has-a的关系,可以使用接口

2.2 重载和重写是什么意思,区别是什么? (京东)

  • 这道题考察什么?
    Java基础
  • 考察的知识点
    面向对象多态的基础概念
  • 考生应该如何回答
    重写(Override)
    重写就是重新写的意思,当父类中的方法对于子类来说不适用或者需要扩展增强时,子类可以对从父类
    中继承来的方法进行重写。
    比如Activity是Android开发中四大组件之一。在Activity中存在各种声明周期方法:onCreate、onStart
    …等等。而我们应用中需要使用Activity来展示UI,那么我们会需要编写自己的类继承自Activity。

2.3 静态内部类是什么?和非静态内部类的区别是什么?

  • 这道题想考察什么?
    掌握static的作用与注意事项
  • 考察的知识点
    Java中关键字static
  • 考生应该如何回答
    在定义内部类时,如果内部类被static声明,则该内部类为静态内部类。
    当内部类被static声明,那么在内部类中就无法直接使用外部类的属性。比如编写普通内部类:
public class MainActivity extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
public View inflate(@LayoutRes int resource, @Nullable ViewGroup root) {
return inflate(resource, root, root != null);
}
public View inflate(@LayoutRes int resource, @Nullable ViewGroup root, boolean
attachToRoot) {
//......
}
public class OuterClass{
static class InnerClass{
}
}
public class OuterClass{
int i;
public class InnerClass{
public InnerClass(){
i = 10;
}
}
}

此时对OuterClass.java 进行编译,会生成:OuterClass.class 与 OuterClass$InnerClass.class 两个文
件。对后者反编译我们将看到:

public class OuterClass$InnerClass {
public OuterClass$InnerClass(OuterClass var1) {
this.this$0 = var1;
var1.i = 10;
}
}

2.4 Java中在传参数时是将值进行传递,还是传递引用?

  • 这道题想考察什么?
    是否了解什么是值传递和引用传递与真实场景使用,是否熟悉什么是值传递和引用传递在工作中的表现
    是什么?
  • 考察的知识点
    什么是值传递和引用传递的概念,两者对开发中编写的代码的影响
  • 考生应该如何回答
    值传递:在方法调用时,传递的参数是这个参数指向值的拷贝;
    引用传递:在方法调用时,传递引用的地址

2.5 使用equals和==进行比较的区别

  • 这道题想考察什么?
    在开发中当需要对引用类型和基本数据类型比较时应该怎么做,为什么有区别。
  • 考察的知识点
    equals 的实现以及栈和堆的内存管理

2.6 String s = new String(“xxx”);创建了几个String对象?

  • 特殊情况
    在正常情况下,finally中的代码一定会得到执行,但是如果我们将执行try-catch-finally 代码块的线程设
    置为守护线程,或者在fianlly之前调用 System.exit 结束当前虚拟机,那么finally则不会得到执行

2.7 finally中的代码一定会执行吗?try里有return,finally还执行么

  • 这道题想考察什么?
    对Java语言的深层次理解,避免在开发时写出"问题"代码
  • 考察的知识点
    JVM执行流程
  • 考生应该如何回答
    在Java官方文档中对finally的描述如下:
    大致意思是:finally代码块中的内容一定会得到执行。
    JVM规范里面同样也有明确说明
    意思是如果在try中存在return的情况下,会把try中return的值存到栈帧的局部变量表中,然后去执行
    finally语句块,最后再从局部变量表中取回return的值返回。另外,当try和finally里都有return时,会
    忽略try的return,而使用finally的return。

2.8 Java异常机制中,异常Exception与错误Error区别

  • 这道题想考察什么?
    在开发时需要时候需要自定义异常时,应该选择定义Excption还是Error?编写的代码触发Excption或者
    Error分别代表什么?
  • 考察的知识点
    Java异常机制
  • 考生应该如何回答
    在Java中存在一个 Throwable 可抛出类, Throwable 有两个重要的子类,一个是Error,另一个则是
    Exception。

2.9 序列Parcelable,Serializable的区别?(阿里)

  • 这道题想考察什么?
    掌握序列化接口实现原理,针对不同场景在工作中合理运用
  • 考察的知识点
    Parcelable原理
    Serializable原理
  • 考生应该如何回答
    序列化 是将对象的状态信息转换为可以存储或传输的形式的过程。在序列化期间,对象将其当前状态写
    入到临时或持久性存储区。以后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象。
    Serializable是Java提供的序列化机制,而 Parcelable则是Android提供的适合于内存中进行传输的序列
    化方式。

2.10 为什么Intent传递对象为什么需要序列化?(阿里)

  • 这道题想考察什么?
    掌握序列化的意义与Android数据传输的原理
  • 考察的知识点
    序列化
    Binder
  • 考生应该如何回答
    在Android中使用Intent传输数据除了基本数据类型之外,对于其他类型对象需要此类型实现了
    Serializable或者Parcelable序列化接口才能进行传输。

写在最后

每一章节都是站在企业考察思维出发,作为招聘者角度回答。从考察问题延展到考察知识点,再到如何优雅回答一面俱全,可以说是求职面试的必备宝典,每一部分都有上百页内容,接下来具体展示,完整版可直接下方扫码领取。

第一章 算法和数据结构面试题汇总

在这里插入图片描述

第二章 Java核心基础面试题汇总

在这里插入图片描述

第三章 Java深入泛型与注解面试题汇总

在这里插入图片描述

第四章 Java并发编程面试题汇总

在这里插入图片描述

第五章 Java虚拟机原理面试题汇总

在这里插入图片描述

第六章 Java反射类加载与动态代理面试题汇总

在这里插入图片描述

第七章 网络编程面试题汇总

在这里插入图片描述

第九章 高级UI面试题汇总

在这里插入图片描述

第十章 Framework内核解析面试题汇总

在这里插入图片描述

第十一章 Android组件内核面试题汇总

在这里插入图片描述

第十二章 程序性能优化与数据持久化面试题汇总

在这里插入图片描述

第十三章 开源框架面试题汇总

在这里插入图片描述

  • 36
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值