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

前言

深入讨论Java的泛型与注解在面试中,有助于展示面试者对Java高级特性的掌握程度和应用能力。通过具体例子和实际应用场景来展示这些特性的优势和应用方式,将有助于提升面试者在面试中的竞争力。继上一篇2024最全Android面试题及答案整理2【持续更新】之后,今天给大家分享2024最全Android面试题及答案整理3【持续更新】,有需要的朋友可以收藏了。
在这里插入图片描述

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

3.1 泛型是什么,泛型擦除呢?

  • 这道题想考察什么?
    泛型
  • 考察的知识点
    泛型的特点和优缺点以及泛型擦除
  • 考生应该如何回答
    泛型就是一种就是一种不确定的数据类型。在Java中有着重要的地位,在面向对象编程及各种设计模式
    中都有非常广泛的应用。
    泛型的优点
    我们为什么需要使用泛型:
  1. 适用于多种数据类型执行相同的代码,例如两个数据相加:
    不同的类型,我们就需要增加不同的方法,但是使用泛型那我们的代表将变为:
  2. 编译检查,例如下面代码
    因为我们指定了List泛型类型为String,因此在代码1处编译时会报错。而在代码2处,不再需要做类型强
    转。
    泛型的缺点
  3. 静态域或者方法里不能引用泛型变量,因为泛型是在new对象的时候才知道,而类的构造方法是在
    静态变量之后执行。
  4. 不能捕获泛型类对象
    泛型擦除
    Jdk中实现的泛型实际上是伪泛型,例如泛型类 Fruit ,编译时 T 会被擦除,成为 Object。但是泛型
    擦除会带来一个复杂的问题:
public int addInt(int x,int y){
return x+y;
}
public float addFloat(float x,float y){
return x+y;
}
public <T> T addInt(T x,T y){
return x+y;
}
List<String> list = new ArrayList();
list.add(10);//①
list.add("享学");
String name = list.get(2);//②

Parent类是一个泛型类,在经过编译时泛型擦除后其中 setSrc(T) 将会变为 setSrc(Object) ;而
Child类继承与Parent并且指定了泛型类型为String。那么经过编译后这两个类应该变为:
父类存在 setSrc(Object) ,而子类则是 setSrc(String) 。这明显是两个不同的方法,按照Java的重
写规则,子类并没有重写父类的方法,而是重载。

3.2 List能否转为List

  • 这道题想考察什么?
    掌握PECS原则,灵活运用泛型
  • 考察的知识点
    泛型上下边界
  • 考生应该如何回答
    在Java的泛型语法中,可以使用super和extends关键字指定泛型的上下边界。
    extends
    ? extends T 为上界通配符,也就是说限制类型只能是T 或者 T 的派生类,比如我们存在代表水果的
    Fruit类,代表苹果的Apple类以及代表香蕉的Banana类。苹果与香蕉都是水果,因此:
    那么下面我们使用List集合作为盘子来装水果:
    但是当我们希望往plates中放入苹果或者香蕉时会发现,plates中无法放入任何元素,只能从plates中取
    出元素。

3.3 Java的泛型中super 和 extends 有什么区别?

List<? super Fruit> plates = new ArrayList<>();
Fruit fruit = plates.get(0);//Error
Apple apple = plates.get(0);//Error
Object object = plates.get(0);
plates.add(new Apple());
plates.add(new Banana());

下界<? super T>不影响往里存,但往外取只能放在Object对象里。因为List<? super Fruit> 代表该容器
元素是Fruit或者Fruit的超类。向容器中存储数据,只需要数据类型是Fruit的派生类即可,因为苹果是水
果Fruit,香蕉也是水果Fruit。但是取数据时,无法得知取出来的数据到底时什么类型,所以只能使用
Object来表示。
PECS原则
PECS原则即Producer Extends Consumer Super ,生产使用extends,消费使用super。结合上下界的
特点可知:
经常读取数据,使用Extends;
经常加入数据,使用Super;

3.4 注解是什么?有哪些使用场景?(滴滴)

  • 这道题想考察什么?
    Java基础,高级语言特性
  • 考察的知识点
    注解与其应用场景
  • 考生如何回答
    Java 注解(Annotation)又称 Java 标注,是 JDK5.0 引入的一种注释机制。 注解是元数据的一种形式,
    提供有关于程序但不属于程序本身的数据。注解本身没有特殊意义,对它们注解的代码的操作没有直接
    影响。
    按照@Retention 元注解定义的注解保留级,注解可以一般常见于以下场景使用:
    SOURCE
    RetentionPolicy.SOURCE ,作用于源码级别的注解,在类中使用 SOURCE 级别的注解,其编译之后的
    class中会被丢弃。可提供给Lint 检查、APT等场景使用。

写在最后

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

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

第九章 高级UI面试题汇总

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

  • 10
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
很抱歉,我无法提供完整的2024年的Java面试题答案,因为我无法预测未来的情况。但是,我可以给你提供一些常见的Java面试题答案,帮助你准备面试。 1. Java中的基本数据类型有哪些? 答案:Java中的基本数据类型包括byte、short、int、long、float、double、boolean和char。 2. Java中的包装类是什么? 答案:包装类是一种将基本数据类型封装成对象的类。例如,Integer是封装int类型的包装类。 3. Java中的String类是可变的吗? 答案:String类是不可变的,一旦创建就不能被修改。如果需要修改字符串,可以使用StringBuilder或StringBuffer类。 4. Java中的继承和接口有什么区别? 答案:继承是指一个类从另一个类获取属性和方法的过程,通过extends关键字实现。接口是一种规范,定义了一组方法的集合,通过implements关键字实现。 5. Java中的异常处理机制是什么? 答案:Java中的异常处理机制通过try-catch-finally语句块来实现。try块中包含可能抛出异常的代码,catch块用于捕获并处理异常,finally块用于执行无论是否发生异常都需要执行的代码。 6. Java中的多线程是如何实现的? 答案:Java中的多线程可以通过继承Thread类或实现Runnable接口来实现。另外,还可以使用线程池来管理和调度线程。 7. Java中的反射是什么? 答案:反射是指在运行时动态获取和操作类的信息。通过反射,可以获取类的属性、方法和构造函数等信息,并且可以在运行时调用这些方法。 8. Java中的泛型是什么? 答案:泛型是一种参数化类型的机制,可以在编译时检查类型的安全性。通过使用泛型,可以使代码更加灵活和可重用。 9. Java中的集合框架有哪些? 答案:Java中的集合框架包括List、Set、Map等接口和它们的实现类。这些集合类提供了一组用于存储和操作对象的方法。 10. Java中的内存管理是如何工作的? 答案:Java中的内存管理由Java虚拟机(JVM)负责。JVM使用垃圾回收机制来自动管理内存,当对象不再被引用时,垃圾回收器会自动回收该对象所占用的内存空间。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值