JAVA面试题总结(一)

1.面对对象的特征有哪些方面?
面对对象:面对对象是相对于面对过程而言,都是解决问题的思路,面对过程关注的就是解决问题的每一步,先干什么后干什么。面对对象解决问题就是找对象调方法,功能通过对象来实现,让对象去实现具体的细节,操作起来更加方便,简化了过程。我们的角色不再是执行者,而转变为调用者和指挥者。比如要吃饭,那我去饭店就可以了,告诉服务员要吃什么就可以,我不需要知道要备什么食材,放什么料,怎么做,我等着上菜吃完掏钱就行,在生活中面对对象更符合人们的思维习惯。
抽象:将一类对象的共同特征总结出来构造类的过程,只关注对象有哪些属性和行为,并不关注这些行为的细节。
封装:就是包装的意思,将抽象出来的数据,封装成一个类。隐藏了实现细节,只对外提供公共的访问方式。
继承:从已有类得到继承信息创建新类的过程,子类拥有父类所有的属性和行为,让类与类之间产生了关系,提高了代码的复用性。
多态:多态的前提是必须有继承或者实现,通常有覆盖。多态指父类的引用或者接口的引用指向子类的对象。提高了代码的扩展性,但是不能使用子类的特有方法。

2.jvm加载class文件的原理机制?
JVM中类的装载是由类加载器(ClassLoader)和他的子类来实现的,java中的类加载器是一个重要的java运行时系统组件,它负责在运行时查找和装入类文件中的类。
a.加载
把类的.class文件中的数据读入内存中,通常是创建一个字节数组读入.class文件,然后产生与所加载类对应的class对象。此时的对象还不稳重,类还不可以使用。
b.连接
当类被加载后就进入连接阶段,这一阶段包括验证、准备(为静态变量分配内存并设置默认的初始值)和解析(将符号引用替换为直接引用)三个步骤。
c.初始化
1)如果类存在直接的父类并且这个类还没有被初始化,那么就先初始化父类;
2)如果类中存在初始化语句,就依次执行这些初始化语句。

选择排序JAVA面试题总结(一)
冒泡排序
JAVA面试题总结(一)
二分查找
JAVA面试题总结(一)