0
点赞
收藏
分享

微信扫一扫

面试:面经

最后的执着 2022-02-25 阅读 58
java

一、java基础

1、什么是面向对象

1)与面向过程相比,是两种不同处理问题的角度。

面向过程更注重每一步的步骤及顺序;而面向对象更注重有哪些参与者、需要做哪些事。

如:洗衣机洗衣服

面向过程:人拿衣服,放进洗衣机,放入洗衣粉,洗衣机洗衣服,洗衣机烘干衣服,人晒衣服

面向对象:人:拿衣服,放衣服,放洗衣粉,晒衣服

洗衣机:洗衣服,烘干衣服。

面向过程更加高效,一步到位;面向对象易于复用、扩展与维护。

2)面向对象有三大特性:封装、继承、多态

封装:标识出允许外部使用的所有函数以及数据项;内部细节对外透明,外部无需修改和关心内部实现。

如:javabean的属性私有,只提供对外的get,set方法。因为属性的赋值和获取只能由javabean本身来决定,不能由外部胡乱修改。

orm框架,在操作数据库时,不需要在意sql时如何执行的,只需要导入mybatis,调用mybatis已经封装好的方法即可。

继承:extends 继承基类的方法,并作出自己的改变或拓展。

子类中共性的方法和属性直接调用父类中的,子类只需拓展自己的个性

多态:基于对象所属类的不同,外部对同一方法的调用,实际执行的业务逻辑不同

条件:继承,重写父类方法,父类引用指向子类对象

缺点:无法调用子类特有的功能

2、jvm、jre、jdk三者之间的区别与联系

jdk是开发工具,jre是java运行环境,jvm是java虚拟机

jdk=jre+java工具(java、javac)

jre=jvm(bin目录)+核心类库(lib目录)

源码的执行:.java文件(源码文件)通过java工具javac编译成.class文件,jvm在得到.class文件后,会根据java类库去解释.class文件,翻译成机器码再映射到操作系统上,在调用操作系统让程序跑起来。

3、==和equals

==:比较的栈中的值;若是基本数据类型比较,则比较的是变量值;若是引用类型比较,则比较的是堆中的地址;

equals:再object类中,equals方法也是采用的==来进行比较的,通常情况下是会进行重写

如:String类中的equals方法

判断两个字符串是否相等,equals方法做出了如下处理;先判断比较的对象是否是同一个对象,在判断是否是String类型,在判断长度是否相等,最后在判断每个字符是否相等,都相等才相等。

举报

相关推荐

0 条评论