android 初中级面试问题(未整理)

版权声明:本文为博主原创文章,转载希望能注明出处,感谢。 https://blog.csdn.net/u010126792/article/details/81328155

java访问权限(默认,public ,private,protected),访问权限配合继承说明

继承,能否继承,能否重写,什么是隐藏,配合static,final,private,字段是否能重写,函数是否能重写,隐藏,构造函数是不能被继承的,如果父类是有参构造函数,子类的构造函数第一句必须调用父类的构造函数,然后才能写自己的逻辑。

多态概念,多态和访问权限,多态和static,字段,函数,对象在编码时无法确定指向,运行时会动态设置指向的位置。

final关键字特性 类 函数 变量

接口和抽象类区别:

static 关键字 :内存中只有一份

泛型特点,限定符 extends super 读写,前者修饰指定了父类,可以读取,但是不能修改,后者指定了子类

深拷贝&浅拷贝

内部类说明,分类,为什么能够访问外部类,static为什么不能够访问

java异常处理机制 ,异常,错误,运行时异常,非运行时异常,区别

线程如何关闭 关闭的方式直接stop

扫描二维码关注公众号,回复: 2960335 查看本文章

StringBuilder StringBuffer 如何清空 设置长度,或者clear函数

网络请求超时之后后台做了什么,链接是否还存在

TCP 三次握手,四次挥手,滑动窗口机制

手机尺寸的适配

布局的优化 Viewstub merge include 层次

ui的优化

内存优化 ,内存泄漏

一个长度很大的单链表,如何判断中间是否有环:两个不同步调的变量,重合

死锁的条件,如何避免死锁

同步方式,同步工具类,lock原理,sync原理,加锁,class字节码中的锁 锁的优化,自旋锁,定时

进程间通信,线程间通信

android事件传递机制,二叉树的概念

hashmap实现原理,扩容,Arraylist实现原理,扩容,hashTab hashSet 访问方式

linkhashmap 实现原理,priorityQueue实现原理 堆

链表倒数第二个数 快速排序 选择 冒泡 堆 二叉查找树 归并 等时间复杂度,空间复杂度,是否是稳定的算法

树找到最大深度

并发集合 分段锁机制(ConCurrentHashMap,jdk1.8以后利用CAS+synchronized 实现了),优先级队列如何实现

对锁优化,锁自旋,琐粒度增大,分段锁,定时,无锁

aidl单线程还是多线程,Messager单线程还是多线程,messager原理,如何选择

本地广播,android8.0之后广播的修改,本地socket、 全屏模式下键盘弹起的问题

Camera SurfaceView 如何保证图片不变形,预览图片和保存的图片最终一样的

rxjava原理 如何实现,如何实现操作符
retrofit原理,如何实现 glide原理如何实现 jsbridge 实现原理

为什么fragment不推荐利用set设置数据,可能还没有建立好初始化完全 ,或者已经销毁

sparryArray对hashmap的改进

java中集合架构 ,常用集合说明

String,StringBuffer,StringBuild差别,如何清空 ,长度设为0,或者clear java中文件流的处理

反射用法,作用,原理,

可以不写java文件生成所用Class吗,动态代理

android Activity生命周期,特点,启动模式,TaskAffinity,reParenting 如何换栈,作用

自定义下载,如何限速

leakCarrney原理:

H5 原生的优缺点,Activity是否可以启动在其他的进程

finilized调用的时机,如何关闭线程,调用之后一定会发生gc吗 java四种引用类型,特点 如何确保真的被GC回收,Retrofit如何动态改变BaseURl Retrofit是编译时注解还是运行时注解,特点,如何使用 自定义Viewinject

搜索一篇文章中的出现最多的词

定义局部变量放在了那里,是否申请了堆空间类似 String a; Person 还没有生成对象,放在栈中,new 之后才会生成对象,放在堆中

for 和增强的For操作集合哪个会发生Exception,什么运行时错误,为什么

拍照过程中处理图片,拍照速度大于出来了速度怎么办,如何进行图片处理

contentValues 和hashTable的不同: 基本类型,

assets & Raw文件夹的区别 不被压缩,R.资源文件中

fragment返回键处理,EglSurfaceView持有说明 SurfaceView和View区别说明

Activity 设置了SingleTask 再次启动,多次启动 ,newIntent 如何保存数据,

https对谁加密,加密的方式,过程 怎么加密,加密算法,CA证书概念,如何保证安全,传输用的Tcp还是UDP

hash算法,如何解决冲突,开放定址法,链地址法

服务service启动模式,重复启动,如何传值

设计模式的使用: 创建型,行为型,结构性,能说多少说多少

Androidmanifest.xml加载的时机,何时加载开机时就加载,否则其他应用如何发广播,或者启动其他应用的Activity

View体系,绘制过程详述

bundle传值的优势,序列化方式,区别,使用场景效率

卡顿原因,消息循环机制说明,主线程为什么卡顿,是否有阻塞,为什么不会造成卡顿

单词翻转,字符串翻转
anr遇到过吗,如何解决,会生成Trace文件,所在目录,如何导出

dp,sp,px区别,为什么推荐使用dp,sp,不同屏幕大小是否一样

sp特点,dp计算方式

char字节数,int位数,是否可以定义中文,如何计算文本中字符串长度

h5,js相互回调 jni和底层的交互,

静态变量的继承 ,不能覆盖或者重写,被隐藏了,还可以调用得到

继承之后子类的执行顺序,成员变量的执行方式,静态代码块,构造代码块,静态函数的继承,父类静态,子类静态,父类成员变量,父类构造代码块,构造函数,子类

如何实现线程的sleep、

android图片压缩的方式,种类大小,编码格式

发布apk之前如何减小apk的大小,进行资源的压缩,代码混淆,无用代码检查

android 5.0 6.0 7.0 8.0 的新特性

轮播图如何实现,如何实现循环,动画

application加载的时机,多进程方式,多进程applicatioin调用次数 contentProvider 加载时机

fragment Viewpager懒加载 如何保证页面不太多,不造成oom,add,Replace的区别,fragment白屏 ,fragment嵌套

RecycleView复用机制,

图片的压缩RecycleView

8.0广播的特点

已经有了Integer为什么还需要int ,类似两者之间的区别

Arraylist的动态扩容 hashMap呢,底层扩容使用函数

ImageView缩放的方式matrix

动画方式,如何实现动画数字变动,如何实现水波纹扩散

为什么要同时重写equals hashCode

长连接实现方式,纹理,opengles

gc运行时界面会有卡顿吗,rxlifeCylce实现原理 被压 Context说明,UI相关操作 事件冲突的解决
动画的实现原理
Service底层实现,能够运行长耗时的操作吗 控制反转依赖注入,切面编程 实现原理 Class字节码文件

动态代理使用场景,java事件方式

同步工具类,并发集合,阻塞队列 ,实现线程同步的方式 同步lock,可重入概念,线程可见性 ,原子操作

CountDownLaunch CycleBarry seampher Exchanger RetreenLock

Volatile 原理实现方式,内存屏障 ,如何关闭线程

线程池的架构,种类,特点 ,TimeTask

GC相关: JMM结构,内存结构, 如何判断对象能否被回收,回收算法 分代回收的说明

android文件的混淆,哪些不能混淆

jni实现方式,mk,cmake文件

自定义View,解决了什么问题,难点

遇到的OOM SOF知道吗,哪里会发生

nio了解吗,主要用到哪里

gradle配置,写过Task吗,如何定义变量

RelativeLayout 绘制的三个过程哪个比较费时间,如果不设置特有的属性和什么布局类似。

linearlayou 设置layoutgravity失效问题,

Activity生命周期,各个生命周期的特点,启动A-B之后home键,之后回来,之后back键,旋转屏幕生命周期的执行过程

简单叙述android的binder原理

MVP架构,如何保证MVP架构的内存泄漏,原理,和RXjava结合

java虚拟机和dalievik虚拟机区别,和art区别

sleep wait区别

如何保证服务器传过来的时间,到各个手机上都能切换成不同的时间 枚举android中为什么不推荐使用,内部原理,可以定义函数吗

String 为什么定义成final ,常量池,int 定义会生成新的对象吗-128 127

泛型的限定通配符和非限定通配符(读写,extends super 第一个指定了基类,不能加入只能读取),extend,接收super,父类,extend作为参数只能是子类, super的区别,泛型的类型擦除,都会擦除掉吗,类,函数上的不会被擦除

本地广播全局广播的区别,本地只能本应用收到

SharedPreferences是线程安全的吗? 去源码看看有没有同步锁就知道了,答案是线程安全的。

Handler机制和底层实现:

AsyncTask 原理,不足,如何取消
为什么不能在主线程执行耗时操作,如果耗时操作,超过了16ms,会造成卡顿,刷新频率,Vsync信号

LRUCache 原理,实现方式 linkHashMap Lru算法

App整体异常的捕获和上报,UnCaughtExceptionhandler

Activity如何存储数据,哪个生命周期里比较适合onPause 中存储数据比较合理

Activity状态存储,OnsaveInstance ,oncreate,onrestoreInstance 都可以

Linearlayout Relativelayout 布局的区别,耗时,哪个过程更耗时: onmeasure 耗时,一次如果设置了weight会测量两次,否则测量一次 Relative会测量两次,横向,纵向,所以同等级别使用Linearlayout

android夜间模式实现方式

gradle task

发布apk之前,资源压缩,代码优化,ant,resource sharking proguard 精简资源,无用代码,内存泄漏

AndroidManifest.xml执行时机,作用,加载时机。

多线程 线程同步 应用 举例

MVC设计模式概述,如何防止内存泄漏,网络请求如何中断。

java7,8,9新特性,lambda表达式原理

全面屏适配问题,底部导航栏的适配。

链表反转

判断一个无穷大的链表是否存在环

如何实现优先级队列

造成死锁的原因,如何避免死锁。

判断一个对象是否活着,GC回收对象的过程方式,finilized函数了解吗,调用了fininlized函数的对象一定会被回收吗。

rxjava 操作符实现原理,如何实现

字节码文件格式,jvm对象的对象头,设计锁

jdk对锁的优化,分几种,每种如何实现

lruCache linkedhashmap 原理,实现方式

类加载过程介绍,什么操作导致类加载,如何判断类是否已经加载,对象在何时初始化,变量何时初始化。

wait notify notifyall 使用方式,为什么必须和synchronized 一起使用

synchronized volatile 实现原理,monitor对象,编译器优化,指令优化,内存屏障

dexClassLoader 了解吗,热修复,插件化原理

描述binder机制,

https 加密交互过程,CA是什么

ScrollView 嵌套RecycleView 出现的问题

小程序 快应用 reac app flutter week

Camera1 开启过程,如何保证预览不变形,方向正确,如何保证保存的图片不变形,前置摄像头拍摄图片镜面翻转问题,

Camera2 了解吗,如何设置显示特定大小的预览图。

一系列原理:

glide 原理

lrucache :原理

LeakCanary 原理

jsbridge原理

rxjava原理

retrofit原理

asyncTask原理

linkHashMap原理实现

断点续传原理

android 消息机制原理

volatile 原理

synchronized原理

lock原理

activityThread 了解

dexclassloader,pathclassloader,如何不注册启动activity

bufferknife 原理

dagger2 原理

生产者消费者 wait notify notifyall实现

模块化,模块之间通信 ARouter,原理实现

RxLifecycle原理

全面屏适配,遇到的问题

算法:

翻转字符串

堆排序,快速排序,插入排序,希尔排序,基数排序等排序算法,时间复杂度,控件复杂度,是否稳定

链表反转,链表是否存在环,单向链表快速找到倒数第二个

二叉树深度广度遍历,找到二叉树层次,

红黑树了解多少,

String 转int

两个数组找到重复元素,剔除重复元素,

合并多个链表

猜你喜欢

转载自blog.csdn.net/u010126792/article/details/81328155