下面总结在秋招面试过程中被问到的一些常见问题,主要包括Java,Android,数据结构与算法,计算机网络和设计模式等内容。Java的话主要包括Java基础、Java集合、Java多线程和JVM等相关内容;Android的话主要包括Android四大组件相关、Android异步任务和消息机制、Android IPC、Android UI绘制相关、Android性能调优相关、Android数据存储和Android综合技术等内容;数据结构与算法的话在面试中更多的是以手撕代码的形式(个人觉得剑指Offer+面试必刷TOP101足以,如果有时间精力可以刷TOP202),但也问到了个别的可以口述的问题;计算机网络在Android面试中问的也比较多;设计模式的话在面试中更多的是问项目中用到了哪些设计模式,或者Android中或一些三方开源库中用到了哪些设计模式;操作系统和数据库在面试中偶尔会问到,这里就不做总结了;Kotlin在简历中如果有相关的,也会被问到一些,这里同样也不做总结了。JavaJava基础首次加载和创建一个类时,变量初始化的顺序是怎么样的?String、StringBuffer和StringBuilder三者的区别?抽象类与接口的区别?重载和重写的区别?Java的异常分类?(谈谈Error和Exception的区别?)Java的异常处理流程?try,catch,finally的return问题,流程是什么?Java有哪四种访问控制类型,它们有什么区别?(Java里的访问修饰符有哪些?)面向对象三大特性?分别讲讲final、static和synchronized可以修饰什么,以及修饰后的作用?“equals"与”==“、”hashCode“的区别和使用场景?Java中深拷贝与浅拷贝的区别?Java中IO流分为几种?它们之间有什么区别?BIO,NIO,AIO有什么区别?什么是反射机制?反射机制的应用场景有哪些?反射为什么性能低?说说你对Java注解的理解?注解的类型有哪些?注解的解析方法有哪几种?静态内部类与非静态内部类的区别及使用场景?内部类为什么可以访问外部类对象?Java集合ArrayList和Array(数组)的区别?谈谈ArrayList和LinkedList的区别?说一说ArrayList的扩容机制?HashMap的实现原理?谈谈对于ConcurrentHashMap的理解?Java多线程什么是进程和线程?(进程和线程的区别?)Java中使用多线程的方式有哪些?什么是线程池?它的优点是什么?如何创建一个线程池?线程池参数含义?有哪几种线程池?谈一谈线程sleep()和wait()方法的区别?如何实现多线程中的同步?如何保证线程安全?谈谈线程死锁,形成死锁的条件,如何有效的避免线程死锁? synchronized关键字原理?了解锁的升级过程吗?synchronized 修饰在static方法和非static方法的区别?生产者消费者模型? volatile关键字的作用是什么? 在new对象的过程是不是一个原子操作,不是的话有哪几步?为什么要用volatile关键字?说一下synchronized和volatile关键字的区别?synchronized和Lock有什么区别?谈谈ThreadLocal用法和原理?(ThreadLocal是如何存储的?)乐观锁如何实现?缺点有哪些?ReentrantLock是什么?synchronized和ReentrantLock的区别?请你说一下对于AQS原理的理解?JMM是什么?有什么作用?说说JMM对内存的划分?JVM介绍下JVM内存区域(运行时数据区)?说一下堆和栈的区别?Java对象的创建过程?一个对象在内存中包含几个部分?如何判断对象死亡?(如何判断一个对象是否可以回收?) 简单的介绍下强引用、软引用、弱引用、虚引用?垃圾收集有哪些算法?说一下类加载的执行过程?什么是双亲委派模型?为什么要使用双亲委派模型?AndroidAndroid四大组件相关Android四大组件作用及应用场景?说下Activity的生命周期?Activity A启动另一个Activity B会回调哪些方法?如果Activity B是完全透明呢?如果启动的是Dialog呢?优先级低的Activity在内存不足被回收后怎样做可以恢复到销毁前状态?Activity的启动模式及应用场景?谈一谈 startService 和 bindService 方法的区别?IntentService和普通的Service有什么区别?Service如何和Activity进行通信?Android广播机制?广播的两种注册形式?区别在哪?Android异步任务和消息机制 谈谈异步消息处理机制Hander?作用?有哪些要素?流程是怎样的?为什么系统不建议在子线程访问UI?一个Thread可以有几个Looper?几个Handler?如何将一个Thread线程变成Looper线程?Looper线程有哪些特点?可以在子线程直接new一个Handler吗?那该怎么做?Message可以如何创建?哪种效果更好,为什么?这里的ThreadLocal有什么作用?Handler的sendMessage和post的区别?延时消息的原理?Looper如何将消息队列中的消息分发给Handler?会把同一个消息给多个Handler吗?Handler引起的内存泄露原因及解决方案?Handler、Thread和HandlerThread的差别?主线程中的Looper死循环为何没有阻塞主线程?在发送 delay 10s 的消息, 假设消息队列中, 目前只有这一个消息; 那么为什么在这 10s 内, UI是可操作的, 或者列表页是可滑动的, 或者动画还是可以执行的?Android IPCAndroid进程间的通信方式?是否了解AIDL?Android UI绘制相关Android有哪些布局类型?你认为 LinearLayout、FrameLayout 和 RelativeLayout 哪个效率高, 为什么?谈一谈View的事件分发机制?如何解决View的滑动冲突?请介绍View的三大绘制流程?MeasureSpec是什么?有什么作用?说一下Android中UI的刷新机制?RecyclerView的缓存机制?Android 性能调优相关什么是ANR?什么情况会出现ANR?如何避免?什么是内存泄露?内存泄露的情况有哪些?有哪些检测方法?Android 数据存储Android中提供哪些数据持久存储的方法?SharedPreferences是线程安全的吗?SharedPreferences的apply和commit的区别?什么是序列化?Serializable接口和Parcelable接口的区别?Android综合技术请谈谈你对MVC、MVP、MVVM的理解?了解Android签名机制吗?JVM和Android虚拟机有什么区别?数据结构与算法基本有序的数组用什么排序算法最好?快速排序原理?时间复杂度是什么样的?什么情况下是最坏时间复杂度?什么是红黑树?与平衡二叉树有什么区别?为什么要用红黑树?计算机网络计算机网络七层模型和四层模型都有哪些?每一层的作用是什么?分别有哪些协议? 在地址栏输入URL会经过哪些过程?HTTP 常见的状态码有哪些?GET和POST有什么区别?HTTP 与 HTTPS 有哪些区别?HTTPS解决了HTTP的哪些问题?(HTTPS是如何保证安全的?)加密算法有哪些类型?HTTPS通信的过程?HTTP1.1和HTTP2.0的区别?Cookie是什么?TCP和UDP的区别?谈谈TCP为什么要三次握手?为什么要四次挥手?TCP 如何保证传输的可靠性?拥塞控制和流量控制都是什么,两者的区别?设计模式说说项目中用到的设计模式?说说Android中用到设计模式的例子?单例模式有哪些实现方法?谈谈了解的设计模式原则?静态代理和动态代理的区别,什么场景使用?
点赞 6
评论 0
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务