当前位置: 首页 > news >正文

2024Android面试题与答案(1)

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

  • 请说一说HashMap,SparseArrary原理,SparseArrary相比HashMap的优点、ConcurrentHashMap如何实现线程安全?
  • 请说一说HashMap原理,存取过程,为什么用红黑树,红黑树与完全二叉树对比,HashTab、concurrentHashMap,concurrent包里有啥?
  • 请说一说hashmap put()底层原理,发生冲突时,如何去添加(顺着链表去遍历,挨个比较key值是否一致,如果一致,就覆盖替换,不一致遍历结束后,插入该位置) ?
  • 请说一说ArrayList 如何保证线程安全,除了加关键字的方式 ?
  • 请说一说ArrayList、HashMap、LinkedHashMap ?
  • 请说一说HashMap实现原理,扩容的条件,链表转红黑树的条件是什么 ?
  • 请说一说二叉树遍历步骤?
  • 采用递归和非递归对二叉树进行遍历?
  • 对称和非对称加密,MD5的原理?
  • 对称加密和分对称加密算法的区别

 Java核心基础面试题汇总

  • Java中提供了抽象类还有接口,开发中如何去选择呢?
  • 重载和重写是什么意思,区别是什么? 
  • 静态内部类是什么?和非静态内部类的区别是什么?
  • Java中在传参数时是将值进行传递,还是传递引用?
  • 使用equals和==进行比较的区别
  • String s = new String("xxx");创建了几个String对象?
  • finally中的代码一定会执行吗?try里有return,finally还执行么
  • Java异常机制中,异常Exception与错误Error区别
  • 序列Parcelable,Serializable的区别?
  • 为什么Intent传递对象为什么需要序列化?

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

  • 泛型是什么,泛型擦除呢?
  • Java的泛型中super 和 extends 有什么区别?
  • 注解是什么?有哪些使用场景?

     

  • Java并发编程面试题汇总

  • 假如只有一个cpu,单核,多线程还有用吗 ?
  • sychronied修饰普通方法和静态方法的区别?什么是可见性?(小米)
  • Synchronized在JDK1.6之后做了哪些优化 (京东)
  • CAS无锁编程的原理(字节跳动)
  • AQS原理 (小米 京东)
  • ReentrantLock的实现原理
  • Synchronized的原理以及与ReentrantLock的区别。(360)
  • volatile关键字干了什么?(什么叫指令重排) (字节跳动)
  • volatile 能否保证线程安全?在DCL上的作用是什么?
  • volatile和synchronize有什么区别?(B站 小米 京东)
  • 死锁的场景和解决方案 腾讯
  • 锁分哪几类?
  • ThreadLocal是什么?
  • Java多线程对同一个对象进行操作(字节跳动)
  • 线程生命周期,线程可以多次调用start吗? 会出现什么问题? 为什么不能多次调用start?
  • 什么是守护线程?你是如何退出一个线程的?
  • sleep 、wait、yield与join的区别,wait 的线程如何唤醒它?(字节跳动)
  • sleep是可中断的么?(小米)
  • 怎么保证线程按顺序执行?如何实现线程排队 ?(金山)
  • 非阻塞式生产者消费者如何实现(字节跳动)
  • 线程池管理线程原理
  • 线程池有几种实现方式,线程池的七大参数有哪些? (美团)
  • 如何开启一个线程,开启大量线程会有什么问题,如何优化?(美团)
  • pthread 了解吗?new 一个线程占用多少内存?(快手)
  • HandlerThread是什么?
  • AsyncTask的原理
  • AsyncTask中的任务是串行的还是并行的?
  • Android中操作多线程的方式有哪些?
  • Android开发中怎样判断当前线程是否是主线程 (字节跳动)
  • 线程间如何通信?

 Java虚拟机原理面试题汇总

  • 描述JVM类加载过程
  • 请描述new一个对象的流程
  • Java对象会不会分配到栈中?
  • GC的流程是怎么样的?介绍下GC回收机制与分代回收策略
  • Java中对象如何晋升到老年代?
  • 判断对象是否被回收,有哪些GC算法,虚拟机使用最多的是什么算法?(美团)
  • Class会不会回收?用不到的Class怎么回收?(东方头条)
  • Java中有几种引用关系,它们的区别是什么?
  • 描述JVM内存模型
  • StackOverFlow与OOM的区别?分别发生在什么时候,JVM栈中存储的是什么,堆存储的是什么?(美团)
  • StringBuffer与StringBuilder在进行字符串操作时的效率(字节跳动)
  • JVM DVM ART的区别

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

  • PathClassLoader与DexClassLoader的区别是什么?
  • 什么是双亲委托机制,为什么需要双亲委托机制?
  • Android中加载类的方法有哪些?有什么区别?
  • ClassNotFound的有可能的原因是什么?(阿里)
  • odex了解吗?解释型和编译型有什么区别?
  • 说说反射的应用场景,哪些框架?
  • 反射为什么慢?(滴滴)
  • 动态代理是什么?如何实现?
  • 动态代理的方法怎么初始化的?(字节跳动)
  • CGLIB动态代理(字节跳动)
  • 为什么IO是耗时操作?

网络编程面试题汇总

  • 请你描述TCP三次握手与四次挥手的过程与意义
  • 谈谈你对TCP与UDP的区别是什么的理解(腾讯)
  • 谈谈你对TCP 流量控制与拥塞控制的理解(oppo)
  • 谈谈你对Http与Https的关系理解
  • SSL握手的过程都经历过什么
  • 谈谈你对Http的post与get请求区别的理解
  • 输入一串URL到浏览器都经历过什么? (美团)
  • 断点续传原理(腾讯)
  • 如何保证下载文件的完整性(网易)

Kotlin 核心面试题汇总

  • Kotlin内置标准函数let的原理是什么?
  • Kotlin语言的run高阶函数的原理是什么?
  • Kotlin语言泛型的形变是什么?
  • Kotlin协程在工作中有用过吗?说说它的原理以及和线程相比的优缺点?

高级UI面试题汇总

  • View的绘制原理
  • View绘制流程与自定义View注意点
  • 自定义view与viewgroup的区别
  • View的绘制流程是从Activity的哪个生命周期方法开始执行的
  • Activity,Window,View三者的联系和区别
  • 在onResume中是否可以测量宽高
  • 如何更新UI,为什么子线程不能更新UI?
  • DecorView, ViewRootImpl,View之间的关系
  • 自定义View执行invalidate()方法,为什么有时候不会回调onDraw()
  • invalidate() 和 postInvalicate() 区别
  • Requestlayout,onlayout,onDraw,DrawChild区别与联系
  • View的滑动方式
  • 事件分发机制是什么过程?
  • 事件冲突怎么解决?
  • View分发反向制约的方法?
  • View中onTouch,onTouchEvent和onClick的执行顺序
  • 怎么拦截事件?如果 onTouchEvent返回false, onClick还会执行么?
  • 事件的分发机制,责任链模式的优缺点
  • ScrollView下嵌套一个RecycleView通常会出现什么问题
  • View.inflater过程与异步inflater

未完待续........


http://www.mrgr.cn/news/10443.html

相关文章:

  • Shader 中的渲染顺序
  • 数学基础 -- 线性代数之增广矩阵
  • 快速排序与其例题
  • stm32智能颜色送餐小车(红外光管避障)
  • python如何调用另一个文件中的函数
  • 使用kafka改造分布式事务
  • 一文搞定MybatisPlus
  • asio之task_io_service多线程
  • [Linux]如何在虚拟机安装Ubuntu?(小白向)
  • Java获取List实体交集差集
  • docker inspect输出内容详解,推测容器运行命令
  • 【案例59】WebSphere类加载跟踪开启方法
  • 吴恩达谈AI未来:Agentic Workflow、推理成本下降与开源的优势
  • 【Kotlin设计模式】Kotlin实现工厂模式
  • Python-断点续传的方式下载GPM降水数据
  • 企业高性能web服务器知识点合集
  • [指南]微软发布Windows-Linux双系统无法启动的完整修复方案
  • 可变参数模板(C++11)
  • 深度学习设计模式之策略模式
  • 【HTML】DOCTYPE作用