Java面试题(1-50题)持续更新

Java面试题(1-50题)持续更新,第1张

Java面试题(1-50题)持续更新

因为马上毕业就要去找工作的原因,所以就准备准备面试题,主要是java后端这一部分。

1、什么是面向对象

面向过程注重事情的每一个步骤及顺序,面向对象更注重事情有哪些参与者(对象)、以及各自需要做什么。
面向过程比较直接高效,而面向对象更易于复用、扩展和维护。
再谈谈面向对象的三大特性:封装,继承,多态

封装:在于明确标识出允许外部使用的所有成员函数和数据项
1、javabean的属性私有,提供getset对外访问,因为属性的赋值或者获取逻辑只能由javabean本身决定。
2、例如orm框架
*** 作数据库,我们不需要关心连接时如何建立的、sql是如何执行的,只需要引入mybatis,调用方法即可继承:继承基类的方法,并作出自己的改变或扩展多态:基于对象所属类的不同,外部对同一个方法的调用,实际执行逻辑不同。

父类类型 变量名=new 子类对象()
2、JDK、JRE、JVM三者区别和联系

jdk:java开发工具
jre:java运行时环境
jvm:java虚拟机
jdk包含jre和jvm

3、==和equals

==对比的是栈中的值,基本数据类型是变量值,引用类型是堆中内存对象的地址
equals:object中默认也是采用==比较,不过通常会重写
String.equals():比较两个字符串的内容

3、简述final作用

修饰类:类不可以被继承
修饰方法:表示方法不可被子类覆盖,但是可以重载
修饰变量:表示遍历一旦被复制就不可以更改它的值


4、为什么局部内部类和匿名内部类只能访问局部final变量?

5、String、StringBuffer、StringBuilder区别及使用场景

String是final修饰的,不可变,每次 *** 作都会产生新的String对象
StringBuffer和StringBuilder都是在原对象上 *** 作
StringBuilder线程不安全,StringBuffer是线程安全的(被synchronized修饰)
性能:StringBuilder>StringBuffer>String
如果需要经常改变字符串就用后两个,优先使用StringBuilder,如果多线程共享则使用StringBuffer

6、重载和重写的区别

7、接口和抽象类的区别

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5722577.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-18
下一篇 2022-12-18

发表评论

登录后才能评论

评论列表(0条)

保存