Android每天10道面试题05
发布日期:2021-05-10 20:45:09 浏览次数:16 分类:精选文章

本文共 1220 字,大约阅读时间需要 4 分钟。

Android每天10道面试题05

1. equals与==的区别

在Object类中,equals()==在某些情况下是完全相同的,它们都用于比较两个对象的内存地址。然而,equals()在大多数情况下被String类等用户定义的类重写,用于比较对象的属性值。这一点非常重要,因为在进行对象比较时,使用equals()方法才是正确的选择。

2. 静态变量与实例变量的区别

  • 静态变量:属于类,而不是单个实例。它们一旦类被加载就会被初始化,静态变量可以在没有创建任何实例对象的情况下使用。
  • 实例变量:属于特定实例的属性,必须创建实例后才能使用它们。

3. 静态方法是否可以重写?

在Java中,静态方法可以被继承,但不能被重写。静态方法与实例方法的主要区别在于,不需要拥有类实例就可以被调用。

4. switch能否使用String作为匹配符?

在Java JDK 1.7及以上版本,switch语句支持使用String作为匹配符。然而,实际执行时,并不会像int类型那样直接比较字符串的字面值,而是会用StringhashCode()方法将字符串转换为整数进行比较。

5. 多态的应用场景与优势

多态(Polymorphism)指的是在一个方法可以接收多种形式的输入的情况。它的主要优势在于:

  • 提高了代码的可维护性(继承保证)
  • 提高了代码的扩展性(多态保证)

6. Service如何保活

service保活的方法如下:

  • 使用startCommand intent返回START_STICKY
  • AndroidManifest.xml中为intent设置优先级_parameterandroid:priority
  • 使用startForeground()将service设置为前台进程
  • onDestroy()方法中重新启动service 5.监听系统广播并捕获service状态
  • 7. 两个Service如何互相激活

    为了实现两个Service的互相激活,可以将每个Service设为前台进程,并通过监听彼此的生命周期来启动对方。这样,当有一个进程被关闭时,另一个进程会自动重新启动。

    8. Service中如何进行耗时操作

    Service中进行耗时操作的方法有两种:

  • Service中启动子线程
  • 使用IntentService,它已经内置了一个工作线程
  • 9. HTTP基于什么协议?

    HTTP协议是基于TCP/IP协议实现的。它通过传输HTTP请求和响应来实现数据交换,与TCP/IP协议紧密结合。

    10. 排序算法都有哪些?

    排序算法可以分为以下几类:

    • 冒泡排序:最简单但效率不高
    • 选择排序:简单但效率低
    • 插入排序:简单且效率较高
    • 希尔排序:优化版的插入排序
    • ** merge排序**:基于递归的高效排序
    • ** quick排序**:基于随机选择的分治排序

    这些排序算法根据不同的策略,适用于不同的情况,有助于满足不同的性能需求。

    上一篇:linux入门实验1
    下一篇:MyBatis实现条件查询

    发表评论

    最新留言

    初次前来,多多关照!
    [***.217.46.12]2025年04月18日 12时49分00秒