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/

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐