安卓面试题一:java基础

安卓面试题一:java基础

提出问题:

  • 简单描述什么是面向对象。
  • 什么是多态?多态的实现机制是什么
  • 接口(Interface)和抽象类(Abstract Class)的区别
  • 重写(Override)和重载(Overload)的区别
  • 什么是内部类?静态内部类、匿名内部类以及局部内部类的区别和作用
  • ==、equals()、hashCode的区别
  • 简述八大基本数据类型。简述Integer和int的区别
  • 简述对string的理解以及string为什么被设计为final的
  • final,finally,finalize的区别
  • static关键字的理解
  • 列举java中的集合以及集合间的继承关系
  • list、set、map的区别
  • ArrayList、LinkedList的区别
  • HashMap、HashTable、ConcurrentHashmap的区别
  • HashMap和HashSet怎么判断集合元素重复
  • 什么是序列化,怎样实现?有哪些方式
  • 简述对反射的理解
  • 简述对泛型的理解,泛型中extends和super的区别
  • 简述对注解和依赖注入的理解
  • 简述java的异常体系
  • GC的工作简述
  • JVM的基本构成
  • 类的加载,什么是双亲机制

解决问题

  • 面向对象是指将功能等通过对象的来实现。将功能、属性等封装在对象中,让对象去实现具体的细节。这种思想是将数据作为第一位的,而方法或者说算法作为其次,是一种对数据的优化,方便操作。
    面向对象的三大特征:封装性、继承性、多态性
    封装是指将对象的属性和实现的细节进行隐藏,仅对面提供公用的访问方式,隔离了具体的细节变化,提高了复用性和安全性
    继承是指两种事务之间存在一定的所属关系,那么继承的类可以从被继承的类中获取一些属性和方法,提高了程序的复用性。
    多态:继承是多态的前提,多态是指父类或者接口的引用指向了子类对象,提高了代码的扩展性。

  • java提供了编译时多态和运行时多态两种多态机制,前者通过方法的重载实现,后者通过方法的重写覆盖实现。子类可以覆盖父类的方法,因此相同方法会在子类和父类中有不同的表现。
    在java语言中,基类的引用变量不仅可以指向基类的实例对象,也可以指向子类的实例对象。同样,接口的引用变量也可以指向实现类的实例对象,而程序调用的方法在运行时才进行绑定,绑定的是引用变量所指向的具体实例对象的方法,而不是引用变量的类型中定义的方法,通过这种动态绑定实现多态机制。

  • 抽象类和接口的特性:
    抽象类是用来捕捉子类共同特性的,它不能被实例化,只能作为子类的超类。抽象类是被用来创建继承层级里子类的模板
    接口是抽象方法的集合,如果一个类实现了某个接口,那么它就继承了这个接口的抽象方法。这就像契约模式,如果实现了这个接口,那就必须确保使用这个接口中的方法,接口只是一种形式或者说规范,自身不做任何事。
    区别:
    抽象类和接口的区别

  • 重载(Overload)和重写(Override)是java多态的不同表现。重写是父子类之间多态的一种表现,重载可以理解为多态的具体表现形式
    (1)方法的重载是在一个类中定义多个方法名相同,参数的数量或者类型或者顺序不同,称为方法的重载
    (2)方法的重写是子类中存在方法和父类的方法名相同,参数,返回值也相同的方法,具体的实现细节依据子类个性进行实现,称为方法的重写
    (3)方法的重载是一个类的多态表现,重写是父子类的多态的表现
    注意细节:方法的重写中,子类的方法权限修饰符不能比父类的低,父类为public,子类也只能为public。final修饰的方法无法被子类重写,static修饰的也不能被重写,但可以再次声明。子类重写方法中,可以用super关键字去调用父类的这个方法。
    方法的重载中被重载的方法必须改变参数列表,可以改变访问修饰符。

  • java中静态方法和属性可以被继承,但是不会被重写而是被隐藏、
    静态属性和方法是属于类的,不需要继承也可以通过类名.方法名来调用。静态属性和方法都可以继承和隐藏而不能被重写,不可能实现父类引用静态方法指向子类的情况。子类在重新声明静态方法时不能用override来修饰,直接编译报错。只能是用谁的静态方法就用哪个类来引用,静态属性和方法属于类。

  • 3
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值