1.接口的意义
规范、扩展、回调
2.抽象类的意义
为其子类提供一个公共类型,封装自雷中重复内容,定义抽象方法
子类虽然有不同的实现但是定义是相同的
3.内部类
所谓内部类,顾名思义,是定义在类内部的类。
- 内部类可以用多个实例,每个实例都有自己的状态信息,并且与其他外围对象的信息相互独立。
- 在单个外围类中可以让多个内部类以不同方式实现同一接口或继承同一个类。
- 创建内部类对象的时刻并不依赖于外围类对象的创建。
- 内部类并没有令人迷惑的“IS-A”关系,他就是一个独立的实体。
- 内部类提供了更好的封装,除了该外围类,其他类都不能访问。
- 内部类拥有外部类所有元素的访问权。
- 外部类必须使用内部类的对象来访问内部类的成员。
- 由于内部类对外部类没有影响,而且可以访问外部类所有成员,所以我们可以用内部类来写测试用例。
- 编译出类两个class文件,outer.class,outer$inner.class这种形式的,后面的就是内部类的class文件。
不能
可以隐藏静态方法,既子类调用子类的静态方法,父类调用父类的静态方法。
只有非静态方法可以被重写,来满足多态。
5.举几个排序算法,并用java实现
插入排序(插入,希尔)
交换排序(冒泡,快速)
选择排序(选择,堆)
归并排序
分配排序(基数排序)
所需辅助空间最多:归并排序
所需辅助空间最少:堆排序
平均速度最快:快速排序
不稳定:快速排序,希尔排序,堆排序
6.举例java中的集合和继承关系
7.java虚拟机的特性
Java语言一个重要特性就是跨平台。而使用java虚拟机是实现这一特点的关键。
一般高级语言如果在不同平台上运行至少要编译成不同的目标代码。而引入java
虚拟机后,java语言在不同平台上运行时就不需要重新编译。java语言使用模式
java虚拟机屏蔽了与平台相关的信息。得java语言编译程序只需要生成在java
虚拟机上运行的目标代码即可在多种平台上不加修改的运行。java虚拟机在执行
字节码时,把字节码翻译成具体平台上的机器指令执行。
8.那些情况下对象会被垃圾回收机制处理掉
java垃圾回收机制最基本的做法是分代回收。内存中的区域被划分成不同世代,
对象根据其存货的时间被保存在对应的世代区域中。一般的实现是划分成3个世代:
年前、老年和永久。内存的分配是发生在年轻时代中。当一个对象存活时间够长的时候。
他就会被复制到老年时代中。对不同世代可以使用不同的垃圾回收算法。进行世代划分
的出发点是应用中对象存活时间进行研究之后得出的统计规律。一般来说一个应用的
大部分对象存活时间都很短。比如局部变量的存活时间就只在方法执行的过程中。
基于这一点,对年轻世代的垃圾回收算法就可以很有针对性。