工欲善其事必先利其器,程序员想在面试中取得好成绩,就需要在面试前做足准备,本文为大家整理了国内很多一线互联网公司的面试题,面试题来自于百度、小米、乐视、美团、58、猎豹、、新浪、搜狐内部题库,熟悉本文中列出的知识点会大大增加通过前两轮技术面试的几率。
一、java基础1.接口的意义(百度)
规范、扩展、回调
2.抽象类的意义(乐视)
为其子类提供一个公共的类型
封装子类中得重复内容
定义抽象方法,子类虽然有不同的实现但是定义是一致的
3.内部类的作用(百度,乐视)
内部类可以用多个实例,每个实例都有自己的状态信息,并且与其他外围对象的信息相互独立。
在单个外围类中,可以让多个内部类以不同的方式实现同一个接口,或者继承同一个类。
创建内部类对象的时刻并不依赖于外围类对象的创建。
内部类并没有令人迷惑的“is-a”关系,他就是一个独立的实体。
内部类提供了更好的封装,除了该外围类,其他类都不能访问
4.父类的静态方法能否被子类重写,为什么?(猎豹)
不能
子类继承父类后,用相同的静态方法和非静态方法,这时非静态方法覆盖父类中的方法(即方法重写),父类的该静态方法被隐藏(如果对象是父类则调用该隐藏的方法),另外子类可继承父类的静态与非静态方法,至于方法重载我觉得它其中一要素就是在同一类中,不能说父类中的什么方法与子类里的什么方法是方法重载的体现
5.举1-2个排序算法,并使用java代码实现(美团)
6.java虚拟机的特性(百度、乐视)
Java语言的一个非常重要的特点就是与平台的无关性。而使用Java虚拟机是实现这一特点的关键。一般的高级语言如果要在不同的平台上运行,至少需要编译成不同的目标代码。而引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用模式Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。
二、android基础1.数据库的操作类型有哪些,如何导入外部数据库?
把原数据库包括在项目源码的res/raw
android系统下数据库应该存放在/data/data/白癜风发病治白癜风呼和浩特哪家医院好