Android面试速查手册:Java基础篇(1)

最后

毕竟工作也这么久了 ,除了途虎一轮,也七七八八面试了不少大厂,像阿里、饿了么、美团、滴滴这些面试过程就不一一写在这篇文章上了。我会整理一份详细的面试过程及大家想知道的一些问题细节

美团面试经验

美团面试
字节面试经验
字节面试
菜鸟面试经验
菜鸟面试
蚂蚁金服面试经验
蚂蚁金服
唯品会面试经验
唯品会

因篇幅有限,图文无法详细发出

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

  • 15. 阻塞队列、非阻塞队列

  • 16. Exception、Error

  • 17. 类加载顺序

  • 18. 传参、传引用

部分内容搜集整理自网络

1. 反射

================================================================

JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为Java语言的反射机制。

这里需要说到Java有两种对象,一个是Class对象,也就是类对象,还有一个是实例对象。实例对象就是通过Class对象创建出来的。

而反射就是针对Class对象进行的处理。

2. new、new instance

==============================================================================

new instance:需要保证这个类事先已经加载(如通过forName方法)。使用类加载机制创建对象实例,只能使用无参构造函数;

new:需要new的类可以没有事先加载。可以调用任何public构造函数。

3. 动态编译,静态编译

=======================================================================

静态编译:一次性编译。在编译的时候把你所有的模块都编译进去。

动态编译:按需编译。程序在运行的时候,用到那个模块就编译哪个模块。

4. 多态

================================================================

多态就是指一个引用变量倒底会指向哪个类的实例对象,该引用变量发出的方法调用到底是哪个类中实现的方法,必须在由程序运行期间才能决定。

5. 自定义类加载器、双亲委派模型

============================================================================

类加载器:启动类加载器、其他类加载器。

双亲委派模型工作过程是:如果一个类加载器收到类加载的请求,它首先不会自己去尝试加载这个类,而是把这个请求委派给父类加载器完成。每个类加载器都是如此,只有当父加载器在自己的搜索范围内找不到指定的类时(即ClassNotFoundException),子加载器才会尝试自己去加载。

6. equals()、==

=========================================================================

一个比较内容,一个比较引用

7. String str = new String(“abc”)

============================================================================================

String str = new String(“abc”)创建实例的过程

首先在堆中(不是常量池)创建一个指定的对象"abc",并让str引用指向该对象

在字符串常量池中查看,是否存在内容为"abc"字符串对象

若存在,则将new出来的字符串对象与字符串常量池中的对象联系起来

若不存在,则在字符串常量池中创建一个内容为"abc"的字符串对象,并将堆中的对象与之联系起来

8. 匿名内部类

===================================================================

匿名内部类:有名字的局部内部类

9. hashCode

======================================================================

hashCode方法的主要作用是为了配合基于散列的集合一起正常运行,这样的散列集合包括HashSet、HashMap以及HashTable。

为什么这么说呢?考虑一种情况,当向集合中插入对象时,如何判别在集合中是否已经存在该对象了?(注意:集合中不允许重复的元素存在)

10. Object

=====================================================================

在这里插入图片描述

11. final

====================================================================

被final修饰的变量其实就相当于定义了一个常量,无法被修改的变量,如果final修饰的是一个基本数据类型的变量,那么这个变量的值就定了,不能变了,而如果修饰的是一个引用变量,那么该变量存的是一个内存地址,该地址就不能变了,但是该内存地址所指向的那个对象还是可以变的,就像你记住了人家的门牌号,但你不能管人家家里人员数量,

12. static

=====================================================================

static可以用来修饰类的成员方法、类的成员变量,另外可以编写static代码块来优化程序性能。

13. 成员变量、局部变量

========================================================================

成员变量存在堆中,局部变量存在栈中的理解

14. 数组扩容

===================================================================

① int[] arr2=new int[arr1.length_2] //新数组长度

for(int i=0;i<arr1.length;i++){ //复制

arr2[i]=arr1[i];

}

② int[] arr2=java.util.Arrays.copyOf(原数组名,新数组长度);

③ int[] arr2=new int[arr1.length_2]

System.arraycopy(原数组名,起始下标,新数组名,起始下标,复制长度);

15. 阻塞队列、非阻塞队列

=========================================================================

非阻塞:add、remove、offer、pull、peek

阻塞:put、take、offer、poll

16. Exception、Error

==============================================================================

首先Exception和Error都是继承于Throwable 类,在 Java 中只有 Throwable 类型的实例才可以被抛出(throw)或者捕获(catch),它是异常处理机制的基本组成类型。

Exception和Error体现了JAVA这门语言对于异常处理的两种方式。

Exception是java程序运行中可预料的异常情况,咱们可以获取到这种异常,并且对这种异常进行业务外的处理。

Error是java程序运行中不可预料的异常情况,这种异常发生以后,会直接导致JVM不可处理或者不可恢复的情况。所以这种异常不可能抓取到,比如OutOfMemoryError、NoClassDefFoundError等。

17. 类加载顺序

====================================================================

父类的静态字段——>父类静态代码块——>子类静态字段——>子类静态代码块——>

父类成员变量(非静态字段)——>父类非静态代码块——>父类构造器——>子类成员变量——>子类非静态代码块——>子类构造器

18. 传参、传引用

=====================================================================

第一个例子:基本类型

总结

面试建议是,一定要自信,敢于表达,面试的时候我们对知识的掌握有时候很难面面俱到,把自己的思路说出来,而不是直接告诉面试官自己不懂,这也是可以加分的。

以上就是蚂蚁技术四面和HR面试题目,以下最新总结的最全,范围包含最全MySQL、Spring、Redis、JVM等最全面试题和答案,仅用于参考

一份还热乎的蚂蚁金服面经(已拿Offer)面试流程4轮技术面+1轮HR

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

的最全**,范围包含最全MySQL、Spring、Redis、JVM等最全面试题和答案,仅用于参考

[外链图片转存中…(img-C38jRmhd-1715809658668)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值