1、简述你对面向对象的理解
什么是类 什么是对象 类是模子 对象是模子产生的实例
万物皆对象 类是一组具有相同特征和相似行为的对象的集合
类和对象的关系
现实中 先有对象 后抽离产生类
程序中 先设计类 后实例化对象
封装
隐藏具体的实现 提供一个对外的用户接口给用户调用
安全 复用
继承
一个类继承自另一个类 从而获取被继承类所有属性 及 除构造方法外所有方法的过程 称为继承
多态
多个子类继承自同一个父类 对于父类声明的同名方法采用不同的实现手段 称为多态
2、一个类被final修饰 ,代表这个类怎么样了
Final修饰的类 被成为终态类 该类无法被其他类继承 类中不能包含抽象方法
3、String s="hello"和String b=new String("hello")的区别?
使用new关键字代表在内存中强制开辟内存空间用于存储数据
4、接口与抽象类的区别
接口是一个特殊的类
接口中 只有未实现的方法 没有属性 方法也不需要abstract修饰 抽象类中 可以包含属性 实现的方法 和抽象方法
一个类 只能继承一个抽象类 但 可以实现多个接口
5、Math.round(11.5)等於多少? Math.round(-11.5)等於多少?
12 -11
6、java中迭代器的作用方式?
遍历集合元素
7、作用域public,private,protected,以及不写时的区别
Public 公共的 代表 所有其他类均可访问
Private 私有的 代表只能在本类中访问
Protected 受保护的 代表只能在本类 和本类的子类中访问
默认 在同一包中可以访问 default
8、方法重载和重写的区别?
Overload
针对一个类 方法名称相同 参数不同 多个重载方法可以共存
Override
针对形成继承的父子类 方法名和参数都相同 父子类重写的方法 子类覆盖父类
9、String 和StringBuffer和StringBuilder的区别?
String 是系统提供的一个基础数据类型
StringBuffer和StringBuilder都是字符串的操作类
StringBuffer线程安全 但存取效率较低
StringBuilder线程不安全 但存取效率高
10、说出ArrayList,Vector, LinkedList的存储性能和特性?
存储机制来看:
ArrayList和Vector是相同 LinkedList 是链表结构
特点来看
ArrayList适合做全查询 扩容50%
Vector相较于ArrayList 线程安全 效率较低 扩容率 成倍扩容
LinkedList 适合频繁插入和删除的操作
11、HashMap和Hashtable的区别?
a) HashMap实现Map接口 HashTable继承自Dictionary类
b) 线程不安全 但效率高 线程安全 效率低
c) 键和值 可以为NULL 键值都不能为Null
12、你什么时候使用抽象类,什么时候使用接口?
13、super和this的区别?
Super访问该类的父类成员 super()访问父类构造
This访问本类成员