写点什么

android 开发面试题,字节跳动 Android 三面凉凉,手慢无

发布于: 2021 年 04 月 12 日

前言

其实 Android 开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。我是 08 年入 Android 这行的,不说有多么厉害,工作经验应该算是比较丰富,流过洋去过三星工作....当然也有我自己的一个圈子,如果你也是从事 Android 行业,或者想在这行业发展,欢迎加入我的圈子,我拉你进群感受大牛环绕的感觉。人脉是什么,人脉就是圈子,更优秀的人在一起,才会变得更加优秀。接下来我就把我这些年“圈子里面”的一些资源分享出来,需要的看文末我分享给你。

Java 相关

1.重载函数的签名(区别是否是重载函数)


答:方法名+参数类型+参数顺序(返回值不是)


2.finalize 的工作原理


答:一旦垃圾收集器准备好释放对象占用的存储空间,它首先调用 finalize(),而且只有在下一次垃圾收集过程中,才会真正回收对象的内存.所以如果使用 finalize(),就可以在垃圾收集期间进行一些重要的清除或清扫工作。此外系统进行垃圾回收时并不保证一定会调用它,所以可以说它和对象被回收没有必然关系。


3.一个对象的创建过程


答:例如有一个 Dog 类:


1.即使没有 static,构造器其实也是静态方法,所以当首次创建 Dog 时或者 Dog 的静态域或者静态方法被访问的时候,Dog 的 class 对象会被加载。


2.在加载 Dog 的 class 的时候可能会发现其有基类,此时先暂停 Dog 的加载,转而去加载其基类。所以基类的 static 域比子类先初始化。


3.载入 class 文件之后,会创建一个该该类的 class 对象,所有关于静态初始化的动作会被执行,所以静态初始化只在 Class 对象首次加载时进行一次。


4.当使用 new 的时候,首先为 Dog 对象在堆上分配足够内存空间。这块内存控件会被清零,所有实例都被初始化成了默认值,包括基类。


5.执行所有字段定义处的初始化,从基类开始。


6.执行构造器。(在第一行会执行基类的构造器)


4.对象的销毁是按照创建的逆序来进行的。


5.final 的方法和类都不允许覆盖和继承。private 默认实现了 final。


6.简述内部类的特点


7.形式参数可被视为 local variable,也就是说形式参数相当于在方法中定义了一个局部变量 a,当传入 c 时,只是将 c 指向的对象给 a


8.finally 语句块是在 try 或者 catch 中的 return 语句之前执行的


9.简述 jvm 中默认的 classLoader 与功能


10.switch 语句后的控制表达式只能是 short、char、int、long 整数类型和枚举类型,不能是 float,double 和 boolean 类型。String 类型是 java7 开始支持


11.重写的特性


12.!=和==,当用于基本类型时候,是比较值是否相同;当用于引用类型的时候,是比较对象是否相同,比较内存地址


13.null 可以被强制类型转换成任意类型的对象,于是通过它来执行静态方法


14.如何终止一个线程


15.静态属性和静态方法是否可以被继承


16.列出各种 List,Set,Map,Queue 并说出他们的同与不同。


17.列出几种线程池


18.解释一下 java 内存模型


19.解释一下 java 代码的原子性


20.解释一下 volatile 字段


21.解释一下 synchronized 字段


22.Lock 的使用


23.wait()和 sleep()区别


24.死锁产生的条件

最后

本文在开源项目GitHub中已收录,里面包含不同方向的自学编程路线、面试题集合/面经、及系列技术文章等,资源持续更新中...


目前已经更新的部分资料,需要的自己取:





用户头像

VX公众号:编程进阶路 2020.11.28 加入

还未添加个人简介

评论

发布
暂无评论
android开发面试题,字节跳动Android三面凉凉,手慢无