Android面试题集合[通俗易懂]

Android面试题集合[通俗易懂]http://yuweiguocn.github.io/android-interview-list/Java基础简述题(一)&和&&的区别。Get和Post的区别httpresponsecodeudp连接和TCP的不同之处java中的softreference是个什么东西抽象类和接口的区别谈一下对java中的abstract的理解Overload和Override的区别St

大家好,又见面了,我是你们的朋友全栈君。

Java基础

简述题(一)

  • &和&&的区别。
  • Get和Post的区别
  • http response code
  • udp连接和TCP的不同之处
  • java中的soft reference是个什么东西
  • 抽象类和接口的区别
  • 谈一下对java中的abstract的理解
  • Overload和Override的区别
  • Static Nested Class 和 Inner Class的不同
  • 内部类机制

简述题(二)

  • 怎么用接口来连接两个层的
  • 接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concreteclass)?
  • private和default有什么区别
  • java里的常量是怎么定义的
  • 类前边加+final的用处?
  • finally final finalize的作用?
  • java中final定义的类有什么特点
  • try{ return} catch{} finally{}; return还是finally先执行。
  • 数组有没有length()这个方法? String有没有length()这个方法?
  • 是否可以继承String类?
  • swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?
  • 常量final string str=“ab”可不可以变成”abd”,为什么?
  • StringBuffer的作用?
  • String s=new String(“abc”); new了几个对象

简述题(三)

  • 启动一个线程是用run()还是start()?
  • 多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么?
  • 同步和异步的区别?
  • sleep和wait有什么区别? 一个是用来让线程休息,一个是用来挂起线程
  • abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized?
  • 当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法?

简述题(四)

  • Error与Exception的区别
  • Java中的异常处理机制的简单原理和应用。
  • Java内存回收机制,GC 垃圾回收机制,垃圾回收的优点和原理。并考虑2种回收机制。
  • 对象Object读写的是哪两个流
  • 反射,求字段的值和方法名
  • Socket编程的步骤
  • 什么是Java序列化

简述题(五)

  • 常见集合及区别
  • ArrayList和Vector区别,HashMap和HashTable区别
  • ArrayList和LinkedList的区别
  • List, Set, Map是否继承自Collection接口?
  • hashCode方法的作用
  • Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?
  • 当x.equals(y)等于true时,x.hashCode()与y.hashCode()可以不相等,这句话对不对?
  • JSON,fastjson和GSON的区别
  • XML,解析XML的几种方式的原理与特点:DOM、SAX、PULL
  • MD5加密原理,可否解密。
  • heap和stack有什么区别。
  • 用最有效率的方法算出2乘以8等於几? (2<< 3)

java集合类框架

http://blog.csdn.net/axi295309066/article/details/54089986

Android面试——Java相关

Android基础

Activity

  • 生命周期及横竖屏切换时生命周期
  • 启动模式
  • 内存不足时,怎么保持Activity的一些状态,在哪个方法里面做具体操作?
  • 介绍Activity、Service、Broadcast、BroadcastReceiver、Intent、IntentFilter
  • 怎么在启动一个activity时就启动一个service
  • 同一个程序不同的Activity如何放在不同的任务栈中?
  • 如何将一个Activity设置成窗口的样式
  • 如何退出Activity?如何安全退出已调用多个Activity的Application?
  • Activity中如何动态的添加Fragment?
  • activity的启动过程 参考
  • 不用Service,B页面为音乐播放,从A跳到B,再返回,如何使音乐继续播放?
  • windows和activity之间关系?
  • 一个activity打开另外一个activity,再打开一个activity?回去的时候发生了什么操作?
  • onActivityResult(int requestCode, int resultCode, Intent data)方法的用法;

Fragment

  • 生命周期
  • Fragment嵌套多个Fragment会出现bug吗?

BroadcastReceiver

  • 注册广播有哪几种方式,有什么区别
  • Android引入广播机制的用意?
  • 无序广播、有序广播 -1000——1000
  • 同优先级,清单文件中上面先收到
  • Broadcast、Content Provider 和 AIDL的区别和联系
  • Android基础——广播接收者BroadcastReceiver

Service

ContentProvider

  • 自定义一个contentProvider。
  • 请介绍下ContentProvider是如何实现数据共享的
  • 创建一个属于你自己的Content provider或者将你的数据添加到一个已经存在的Content provider中,前提是有相同数据类型并且有写入Content provider的权限。
  • contentProvider权限;

AsyncTask简介

  • Asynctask具体用法?
  • Asynctask的Do in background方法是怎么通知UI线程刷新进度条的?
  • Asynctask的Do in background方法默认是返回 true ,表示任务完成,如果想返回具体的数据呢,怎么做。如果Activity被销毁了,还会执行到postexcutd方法吗?
  • Android基础——AsyncTask

ListView

  • 手指快速拖动ListView时,如何处理惯性引起的加载问题;
  • 怎么实现ListView多种布局?
  • ListView与数据库绑定的实现
  • 怎么实现一个部分更新的 ListView?
  • ListView卡顿的原因与性能优化,大量数据时,说的越多越好

UI相关

  • 谈UI中,Padding和Margin有什么区别?
  • rawable-hdpi的dpi是什么意思?
  • 介绍下Android中常用的五种布局
  • ndroid中px,sp,dip,dp的区别与联系
  • 么处理屏幕适配的

简述题(一)

  • android开发中怎么去调试debug
  • 请解释下Android程序运行时权限与文件系统的权限的区别
  • JVM 和Dalvik虚拟机的区别
  • android dvm的进程和Linux的进程应用程序是否为同一个概念
  • sim卡的ef文件有何作用。
  • 你如何评价Android系统?优缺点
  • 谈下android系统的架构
  • 根据自己的理解描述下android数字签名

简述题(二)

  • 如何加载音乐信息,如何改善其效率。
  • Android程序与java程序的区别?
  • 什么是 MVC 模式?MVC 模式的好处是什么?
  • 在Android中MVC的具体体现
  • 简述Android应用程序的组成

简述题(三)

  • 如何让程序自动启动
  • 如何让程序不被系统自动销毁
  • 常见异常,5种运行时异常
  • 运行时异常与一般异常有何异同?
  • 什么情况会导致Force Close?如何避免?是否捕获导致其的异常
  • 什么是 ANR 问题?为什么会引起 ANR 问题?
  • 系统上安装了多种浏览器,能否指定某浏览器访问指定页面?请说明原由
  • ContentValues相关,key是不是任意类型,value是不是任意类型
  • URL和URI区别用法
  • 数据存储,数据持久化的方式有哪些
  • 进程优先级
  • intent-filter属性及其含义;
  • 如何打开res/raw 目录中的数据库文件?

简述题(四)

  • NotifactionManager使用原理
  • Asset与raw都能存放资源,他们有什么区别?
  • postInvalidate与invalidate有什么区别?
  • notifyDataSetChanged 和notifyDataSetInvalidated的区别
  • Serializable和Parcelable的区别
  • 子线程中更新UI的方法
  • Scrollview怎么判断是否滑倒底部
  • ViewPager 怎么做性能优化
  • 布局如何动态加载
  • 外存储器文件遍历输出文件名
  • Intent启动Activity有几种方式,请分别简述
  • AndroidManifest.xml文件中主要包含哪些信息
  • 列举常用的Android开源项目及应用场景
  • 文件和数据库哪个效率高

简述题(五)

  • 常见设计模式,并手动简单实现观察者模式
  • Handler机制
  • 热修复
  • 简述静默安装的原理,如何在无需Root权限的情况下实现静默安装
  • 什么是65535问题,如何防止或解决65535问题
  • 简述实现Android APK插件化的简单方法
  • 如何实现资源文件的混淆
  • 如何在不引用第三方工具的情况下防止应用二次打包?并对应用进行简单加固
  • 简述控制反转(Inversion of Control)的应用场景
  • 怎么考虑数据传输的安全性
  • xmpp openfire 基于xmpp openfire smack开发之Android客户端开发
  • 应用常驻后台,避免被第三方杀掉的方法,讲讲你用过的奇淫巧技?
  • 简述实现Android APK插件化的简单方法

JS交互

Android动画

  • Android中有哪些类型的动画,用属性动画实现控件的缩放
  • 不使用动画,怎么实现一个动态的 View?
  • Android中的动画有哪些,区别是什么

自定义View

JNI

  • JNI怎么使用
  • 简单描述你是如何进行JNI开发的
  • 在哪些情况下java代码中需要调用C代码

性能优化

数据库

  • 分页查询数据
  • 如何将SQLite数据库与apk文件一起发布?
  • 左连接与右连接的区别
  • 描述Sqlite数据库(类型、关系);
  • 你的项目中Sqlite数据库中存储的数据用SharePreference来处理也可以,为什么不用SharePreference呢;

网络编程

编程算法题

  • 冒泡排序
  • 求素数
  • 单例模式——写一个Singleton出来
  • 二叉树遍历
  • 最长不重复子串(最长重复子串)
  • 有一个一维整型数组int[]data保存的是一张宽为width,高为height的图片像素值信息。请写一个算法,将该图片所有的白色不透明(xffffffff)- 像素点的透明度调整为5%。
  • 写一个求递归程序 求54321
  • 请使用java或者C++实现反转单链表
  • 生产者、消费者
  • 死锁(同步嵌套同步且锁不同)
  • 写一个多线程实例代码;
  • 写一个方法,交换两个变量的值?
  • 给最外层的rootview,把这个根视图下的全部button背景设置成红色,手写代码,不许用递归
  • 给一串字符串比如abbbcccd,输出a1b3c3d1,手写代码(注意有个别字符可能会出现十次以上的情况)
  • 一个序列,它的形式是12349678,9是最高峰,经历了一个上升又下降的过程,找出里面的最大值的位置,要求效率尽可能高
  • 二叉查找树的删除操作,手写代码
  • 二分查找,手写代码
  • 有海量条 url,其中不重复的有300万条,现在希望挑选出重复出现次数最高的 url,要求效率尽可能的高
  • 一篇英语文章,去掉字符只留下k个,如何去掉才能使这k个字符字典序最小
  • 弗洛伊德算法和 Dijkstra算法的区别?复杂度是多少?讲讲 Dijkstra算法的具体过程
  • 反转字符串,要求手写代码,优化速度、优化空间
  • 给出两个无向图,找出这2个无向图中相同的环路。手写代码

Java实现单例模式的正确姿势

Android面试——编程算法题

部分答案可参考:CSDN:剑萧舞蝶

原文出处:于卫国,http://yuweiguocn.github.io/android-interview-list/

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/144050.html原文链接:https://javaforall.net

(0)
上一篇 2022年5月20日 上午11:20
下一篇 2022年5月20日 上午11:40


相关推荐

  • Java集合详解5:深入理解LinkedHashMap和LRU缓存

    Java集合详解5:深入理解LinkedHashMap和LRU缓存今天我们来深入探索一下 LinkedHashMa 的底层原理 并且使用 linkedhashma 来实现 LRU 缓存 具体代码在我的 GitHub 中可以找到 https github com h2pl MyTech 文章首发于我的个人博客 https h2pl github io 2018 05 11 collection5 更多关于 Java 后端学习的内容请到我的 CSDN 博客上查看

    2026年3月16日
    1
  • Django 模型_Z模型

    Django 模型_Z模型前言随着项目越来越大,采用写原生SQL的方式在代码中会出现大量的SQL语句,那么问题就出现了:1.SQL语句重复利用率不高,越复杂的SQL语句条件越多,代码越长。会出现很多相近的SQL语句。2.

    2022年7月31日
    9
  • 6G要启动了! 6G究竟有多快?你真的应该提前知道

    点击上方蓝色字体,关注我们 写在前面 6G概念研究在今年启动。按照过去通信发展的规律推测,6G的理论下载速度可以达到每秒1TB,预计2020年将正式开始6G研发,2030年投入商用…

    2021年6月21日
    113
  • tcp网络模型_TCP/IP协议模型

    tcp网络模型_TCP/IP协议模型以太网:CSMA/CD,总线型IEEE802.3标准以太是一种虚构的物质,是英文Ether或Aether的音译以太网的技术特征包括传输介质、传输协议和传输拓扑结构。以太网的传输协议标准是CSMA/CD(CarrierSenseMutipleAccessCollisiondetect),也就是“载波监听多路访问/冲突检测”(1)若媒体空闲,则传输,否则转(2)。(2)若媒体忙,一直监听直到信道空闲,然后立即传输。(3)若在传输中监听到干扰,则发干扰信号通知所有站点,然后等

    2025年12月13日
    5
  • 华为笔记本键盘锁住了(笔记本电脑键盘怎么亮起来)

    展开全部1、取消键:(退出e69da5e887aa62616964757a686964616f31333366306434键Esc)意思是逃脱、出口。主要作用是退出某个程序。如:在玩游戏时想退出来,按一下这个键即可。2、功能键:(F1——F12)在不同软件中,可起到不同的相应功用,也可以配合其它的键共同起作用。如:F1是帮助功能。3、切换键:(表格键Tab)意思是表格。主要是在文字处理软件里(如W…

    2022年4月14日
    301
  • Qwen知识库常见技术问题:如何高效更新与维护向量数据库?

    Qwen知识库常见技术问题:如何高效更新与维护向量数据库?

    2026年3月13日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号