Java面试
Posted r016
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java面试相关的知识,希望对你有一定的参考价值。
抽象:抽象是将一类对象的 共同特征总结出来构造类的过程。
继承:继承是从已有类得到继承信息创建新类的过程。提供继承信息的类被称为父类(超类、基类);得到继承信息的类被称为子类(派生类)。
封装:通常认为封装是把数据和操作数据的方法绑定起来,对数据的访问只能通过已定义的接口。
多态:同一个行为 具有的不同表现形式或形态的能力。多态分为编译时的多态性和运行时的多态性。方法重载实现的是编译时的多态性,而方法重写实现的是运行时的多态性。
多态的实现途径有三种:重写、重载、接口实现。
接口:是一种无法被实例化,但可以被实现的抽象类型,是抽象方法的集合。
方法的重载和重写有什么区别?
重写是指子类继承父类,重写父类的方法(子类方法的参数列表和返回值类型,必须与父类的方法一致);
重载是指在一个类中,可以有多个重名的方法,方法名形同,但是形参列表不同(返回值可以形同,也可以不同)
抽象类和接口有什么区别?
抽象类当中可以有普通方法,必须有抽象方法,可以有成员变量,不可以被实例化;
接口当中只能有抽象方法,不能有普通方法,可以有静态变量,不能被实例化;
一个类可以实现多个接口,但只能实现一个抽象类。
JDK:Java开发者工具包
JRE:jJava运行环境
JVM:Java虚拟机 一种能够运行Java字节码的虚拟机
面向对象(oop):面向对象是对面向过程的封装,封装类的属性和方法
public:公有的,任何类都可以访问
protected:受保护的,同一个包的类可以访问,不同包的子类可以访问
友好的:同一个包的类可以访问
private:私有的,在同一个类中才能访问
数组和链表有什么区别?
数组会在内存当中开辟一块连续的存储单元,需要指定长度
数组当中的每一个元素都有索引,查询的话,查询的话通过索引可以直接定位到某一个元素,效率很高,但是进行删除的话,数组会进行移动,所以效率很低
链表不需要连续的存储单元,链表中的上一个元素通过指针指向下一个元素,所以链表结构进行查询的话,头部尾部比较快,中间元素查找速度比较慢,但是删除的话,只需要删除前后指针,重新建立指针就可以了,所以删除的性能很高。
以上是关于Java面试的主要内容,如果未能解决你的问题,请参考以下文章