文档章节

国内一线互联网公司内部面试题库

abcijkxyz
 abcijkxyz
发布于 2016/07/30 17:22
字数 1604
阅读 8
收藏 0

刚刚看到了一篇比较全面的Android面试题总结,都是国内一线互联网公司的面试题目,很久没有见到这么良心的精品干货了,你。。。绝对值得拥有~

(转载自:CSDN: http://blog.csdn.net/rain_butterfly

面试题来自于百度、小米、乐视、美团、58、猎豹、360、新浪、搜狐内部题库

熟悉本文中列出的知识点会大大增加通过前两轮技术面试的几率。

以下是部分面试题,完整版在github,点击进入

一、java基础

1.接口的意义(百度)

规范、扩展、回调

2.抽象类的意义(乐视)

为其子类提供一个公共的类型 
封装子类中得重复内容 
定义抽象方法,子类虽然有不同的实现 但是定义是一致的

3.内部类的作用(百度,乐视)

  1. 内部类可以用多个实例,每个实例都有自己的状态信息,并且与其他外围对象的信息相互独立。
  2. 在单个外围类中,可以让多个内部类以不同的方式实现同一个接口,或者继承同一个类。
  3. 创建内部类对象的时刻并不依赖于外围类对象的创建。
  4. 内部类并没有令人迷惑的“is-a”关系,他就是一个独立的实体。
  5. 内部类提供了更好的封装,除了该外围类,其他类都不能访问

4.父类的静态方法能否被子类重写,为什么?(猎豹)

不能

子类继承父类后,用相同的静态方法和非静态方法,这时非静态方法覆盖父类中的方法(即方法重写),父类的该静态方法被隐藏(如果对象是父类则调用该隐藏的方法),另外子类可继承父类的静态与非静态方法,至于方法重载我觉得它其中一要素就是在同一类中,不能说父类中的什么方法与子类里的什么方法是方法重载的体现

5.举1-2个排序算法,并使用Java代码实现(美团)

http://blog.csdn.net/qy1387/article/details/7752973

6.java虚拟机的特性(百度、乐视)

Java语言的一个非常重要的特点就是与平台的无关性。而使用Java虚拟机是实现这一特点的关键。一般的高级语言如果要在不同的平台上运行,至少需要编译成不同的目标代码。而引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用模式Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。

二、android基础

1.数据库的操作类型有哪些,如何导入外部数据库?

把原数据库包括在项目源码的 res/raw

Android系统下数据库应该存放在 /data/data/com..(package name)/ 目录下,所以我们需要做的是把已有的数据库传入那个目录下.操作方法是用FileInputStream读取原数据库,再用FileOutputStream把读取到的东西写入到那个目录.

2.是否使用过本地广播,和全局广播有什么差别?

因广播数据在本应用范围内传播,不用担心隐私数据泄露的问题。 
不用担心别的应用伪造广播,造成安全隐患。 
相比在系统内发送全局广播,它更高效。

3.是否使用过intentServer,作用是什么,AIDL解决了什么问题?(小米)

生成一个默认的且与主线程互相独立的工作者线程来执行所有传送至 onStartCommand() 方法的Intetnt。

生成一个工作队列来传送Intent对象给你的onHandleIntent()方法,同一时刻只传送一个Intent对象,这样一来,你就不必担心多线程的问题。在所有的请求(Intent)都被执行完以后会自动停止服务,所以,你不需要自己去调用stopSelf()方法来停止。

该服务提供了一个onBind()方法的默认实现,它返回null。

提供了一个onStartCommand()方法的默认实现,它将Intent先传送至工作队列,然后从工作队列中每次取出一个传送至onHandleIntent()方法,在该方法中对Intent对相应的处理。

AIDL (Android Interface Definition Language) 是一种IDL 语言,用于生成可以在Android设备上两个进程之间进行进程间通信(interprocess communication, IPC)的代码。如果在一个进程中(例如Activity)要调用另一个进程中(例如Service)对象的操作,就可以使用AIDL生成可序列化的参数。 
AIDL IPC机制是面向接口的,像COM或Corba一样,但是更加轻量级。它是使用代理类在客户端和实现端传递数据。

4.Activity、Window、View三者的差别,fragment的特点?(360)

Activity像一个工匠(控制单元),Window像窗户(承载模型),View像窗花(显示视图) 
LayoutInflater像剪刀,Xml配置像窗花图纸。

  1. 在Activity中调用attach,创建了一个Window
  2. 创建的window是其子类PhoneWindow,在attach中创建PhoneWindow
  3. 在Activity中调用setContentView(R.layout.xxx)
  4. 其中实际上是调用的getWindow().setContentView()
  5. 调用PhoneWindow中的setContentView方法
  6. 创建ParentView:
作为ViewGroup的子类,实际是创建的DecorView(作为FramLayout的子类)
  7. 将指定的R.layout.xxx进行填充
通过布局填充器进行填充【其中的parent指的就是DecorView】
  8. 调用到ViewGroup
  9. 调用ViewGroup的removeAllView(),先将所有的view移除掉
  10. 添加新的view:addView()

fragment 特点

  • Fragment可以作为Activity界面的一部分组成出现;
  • 可以在一个Activity中同时出现多个Fragment,并且一个Fragment也可以在多个Activity中使用;
  • 在Activity运行过程中,可以添加、移除或者替换Fragment;
  • Fragment可以响应自己的输入事件,并且有自己的生命周期,它们的生命周期会受宿主Activity的生命周期影响。

本文转载自:http://blog.csdn.net/wdong_love_cl/article/details/51989028

共有 人打赏支持
abcijkxyz
粉丝 63
博文 6196
码字总数 1876
作品 0
深圳
项目经理
Github最值一读开源好书及BAT面试题库

  【IT168 评论】正版书籍太贵,盗版书看着不爽,英文原版看着费力,中文译本错误百出。对技术人员而言,进阶路上似乎一直找不到合适的书籍或者资源可供学习,即便找到了,似乎也没有合适的...

it168网站
2017/11/27
0
0
工作面试

2016 年末,腾讯,百度,华为,搜狗和滴滴面试题汇总 2016 年未,腾讯,百度,华为,搜狗和滴滴面试题汇总 杭州找Android工作的点点滴滴 写在前面的话 我从14年毕业到现在一直待一个三线城市...

掘金官方
01/04
0
0
独家 | 国内首个 AI 题库上线

对比当下的人工智能热潮,人才却十分匮乏。相当多的从业者是跨界入门,需要学习大量知识并不断摸索。不过,目前国内开设人工智能(AI)专业的高校不多,优质的学习资源也很分散。而且虽说是做...

t7sfokzord1jaymsfk4
2017/12/16
0
0
在appstore里面搜索android会出现哪些鬼?

  曾经一个朋友建议我去麦当劳买完套餐,然后去KFC吃,看看会有什么效果。我当时的一次反应是会不会被KFC的工作人员打呢?这是赤裸裸的砸场子唉,就好像07年我最早研究SEO的时候,在谷歌搜...

程序员客栈
2016/05/23
32
0
360公司2019秋招空中宣讲会开启,送海量面试直通卡!

360公司2019秋招空中宣讲会开启,送海量面试直通卡! 360公司 国内互联网络安全企业领军者 2018年2月28日,正式在上交所敲锣上市,成功回归国内A股。 目前360秋招网申正在火热进行中 关于360...

ZVAyIVqt0UFji
08/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

gson1.7.1线程并发导致空指针问题

java.lang.NullPointerExceptionat com.google.gson.FieldAttributes.getAnnotationFromArray(FieldAttributes.java:231)at com.google.gson.FieldAttributes.getAnnotation(FieldAttribut......

东风125
49分钟前
3
0
以太坊RPC接口使用

以太坊RPC接口文档: https://github.com/ethereum/wiki/wiki/JSON-RPC#web3_clientversion 使用方式: 比如我要调用某个合约的balanceOf(address _owner)方法。 因为没有改变合约的状态,所以...

王坤charlie
今天
2
0
C#下的一个好用的日历库(sxtwl_cpp),支持农历转公历,和公历转农历等功能

sxtwl_cpp是寿星天文历的C++版本实现。支持多种语言的绑定 代码首页 懒人包 懒人包使用方法 1、右链工程中的引用-》添加引用-》浏览-》选中dotnet目录下的sxtwl.net.dll 2、生成解决方案-》找...

元谷
今天
3
0
C++基础知识

链接:https://zhuanlan.zhihu.com/p/38399566 本文主要提一下以下三个区别: 引用必须初始化,而指针可以不初始化。 我们在定义一个引用的时候必须为其指定一个初始值,但是指针却不需要。 ...

悲催的古灵武士
今天
1
0
Oracle备份脚本,保留10天数据

@echo off echo 删除10天前的备分文件和日志forfiles /p "D:\oracleback\backfile" /m *.dmp /d -10 /c "cmd /c del @path" forfiles /p "D:\oracleback\backfile" /m *.log /d -10......

lyle_luo
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部