道客优

1234
2019Android面试题基础
2019-03-10 刀刻油 阅读:1116

基础

  • equals 跟 ==的区别

  • 你所知道的设计模式有哪些 ?

  • Java为何引入泛型、泛型边界 ?

  • String、StringBuffer和StringBuilder的区别 ?

  • 什么是反射,作用是什么 ?为什么耗性能 ?关于反射混淆、耗性能的解决方式 ?

  • 如何防止反射实例化单例对象 ?

  • 什么是内部类 ? 静态内部类和非静态内部类的区别 ?(栈、堆、方法区)

  • 重写和重载的区别 ?

  • 抽象类和接口的异同 ?

  • 实现多态的机制是什么 ?

  • 静态代理和动态代理的区别

  • 异常处理机制知道哪些 ? 日常开发遇到过哪些运行时异常 ?

集合

  • Java集合框架中有哪些类 ? 都有什么特点 ?

  • HashMap与HashTable实现原理 ?线程安全性

  • ConcurrentHashMap的原理 ?分的段数是多少 ?如何实现分段锁 ?

  • Hash冲突以及处理算法

  • ArrayList和LinkList的区别 ? Vector ?

  • 讲下为什么在Android下推荐使用Arraymap,相比HashMap、SparseArray它有什么优势 ?

  • equals()和hashCode()的区别是什么 ?平时有重写过它们么 ? 什么情况下会去重写

  • 集合、数组、泛型的关系,并比较

并发

  • Java的并发、多线程、线程模型

  • Synchronized原理 、volatile关键字的作用 ?与重入锁的区别 ?

  • ThreadLocal原理,实现及如何保证Local属性

  • 静态同步锁和普通同步锁的区别 ?

  • 不用锁如何保证int自增安全

  • sleep()和wait()的区别 ?

  • 同步和非同步、阻塞和非阻塞的区别 ?

  • 死锁的四个必要条件

Java进阶

  • Java的GC机制 、 分代回收策略

  • 常见的Java数据结构

  • Java的四种引用及使用场景

  • DCL单例模式 ?

  • Java&Android关于Classloader源码解析

  • 类加载的全过程是怎样的 ? 什么事双亲委托模型 ?

  • 工作内存和主内存、虚拟内存的关系 ?

  • 在Java内存模式有哪些可以保证并发过程的原子性、可见性和有序性的措施 ?

  • JVM内存分布 ? DVM以及ART是如何进行优化的 ? 具体步骤 ?

TCP

  • TCP的3次握手和四次挥手、TCP与UDP的区别

  • 拥塞控制和流量控制都是什么 ?两者的区别 ?

  • Http位于TCP/IP模型中的第几层 ? 为什么说Http是可靠的数据传输协议 ?

  • 播放视频用TCP还是UDP ?  为什么 ?

HTTP

  • 了解HTTP协议吗 ?HTTP报文结构

  • HTTP的状态码,常见的请求头,HTTP缓存协议

  • HTTP1.0与2.0的区别

  • HTTPS是如何保证安全的,证书如何校验,如何加密

  • HTTP与HTTPS区别 ?

  • HTTP与Socket的区别 ?

算法

  • 手写DCL单例模式

  • 常见的排序算法,手写二分查找,二分查找的复杂度分析

  • 手写快排,分析原理

  • 求1000以内的水仙花数以及40亿以内的水仙花数

  • 迭代和递归的特点。并比较优缺点

  • 什么是斐波那契数列 ?

  • 快速从一组无序数中找到第K大的数/前K个大的数

  • 了解二叉树的遍历么 ? 讲一讲他们

  • 反转链表

  • 多线程轮流打印问题

  • 用两个栈实现队列

版本控制工具

  • 使用那些版本控制工具

  • 讲讲SVN和Git的差别 ?Git的优势是什么

  • Git常用命令知道哪些 ?

来源:掘金

推荐阅读: