1、SE基础高频面试题

1、JDK和JRE的区别是什么
JDK是Java开发工具包,JRE是Java运行时环境,二者的区别在于

JRE是Java程序运行所必须的,它包含jvm和一些Java的基础类库

JDK是Java程序开发所必须的,它包含JRE和一些开发工具

总结一下就是:JDK包含JRE,如果仅仅是运行Java程序,只要有JRE即可;如果是要开发Java程序,则必须要有JDK

2、&和&&的区别是什么
&和&&都是逻辑运算符,都可以实现取并的效果,即符号两边的表达式都为true,结果才是true

不一样的是&&有短路的功能,即当符号前面的表达式为false时,后面的表达式将不再执行,而&没有这个功能

另外,&还可以用作位运算符,当&操作符两边的表达式不是boolean类型时,&表示按位与操作

3、final finally finalize区别是什么
这是Java提供的三个关键字,虽然长的差不多,但是其实没什么联系,使用场景也完全不同

​ final可以修饰类、变量、方法,修饰类表示该类不能被继承、修饰方法表示该方法不能被重写、 修饰变量表示该变量是一个常量不能被重新赋值。

​ finally一般作用在try-catch代码块中,在处理异常的时候,无论程序是否出现异常,写在finally中的代码都会被执行,一般用来释放一些资源

​ finalize是Object类的一个方法,它会在一个对象被垃圾回收的时候自动被垃圾回收器来调用

4、String、StringBuffer、 StringBuilder 的区别

这几个都是关于字符串的类,他们的区别点有下面几个

可变性:String是不可变对象,其它的都是可变对象
线程安全:String和StringBuffer是线程安全的,StringBuilder是线程不安全的
效率:StringBuilder最高,StringBuffer居中,String效率最低
使用场景:少量字符串的操作使用String,大量字符串的频繁操作在多线程下使用StringBuffer,单线程下可以使用StringBuilder


5、有哪些创建对象的方式
  1、new  2、反射  3、克隆  4、json反序列化

6、重写和重载的区别是什么
重载和重写都是用于描述方法间的关系的,但是他们的含义和场景确大不相同

重写是存在于子父类之间的,一般用在父类的方法无法满足子类需求时,子类重写方法来自定义方法功能

​ 它要求子类定义的方法与父类中的方法具有相同的方法名字,相同的参数表和相同的返回类型

重载是存在于同一个类中的,一般用在功能相似的方法需要接收不同的参数时,

它要求多个方法具有相同的名字,但方法具有不同的参数列表

7、this和super的应用场景是什么
this代表的是当前对象,一般用于在一个方法中调用本对象的成员变量或其它方法

supper代表是父类对象,一般在本对象和父对象出现成员名称冲突时,强行调用父对象的成员,也经常用于调用父类的构造方法

8、throw和throws的区别是什么
throws:用在方法的声明上,声明当前方法可能抛出的异常

throw:写在方法里,真正的抛出一个异常,抛出自定义异常。创建对象自定义抛出异常

9、应该使用什么数据类型来计算价格
1、如果不是特别关心内存和性能的话,使用 BigDecimal

2、否则使用预定义精度的 double 类型

3、用int也可以,在表中存储的单位是分(元角分的分),比如一个删除两块五,在表中存250

10、== 与 equals 的区别
==是一个运算符,equals 是 Object 类的方法
用于基本类型的变量比较时: ==比较的是值是否相等,equals不能直接用于基本数据类型的比较,需要转换为其对应的包装类型。
用于引用类型的比较时。==和 equals 都是比较栈内存中的地址是否相等。但是通常会重写 equals 方法去实现对象内容的比较。


11、接口和抽象类的区别
它们的共同点是:都不能实例化对象

它们的不同点是:

1. 抽象类一般用于抽取子类中的共同方法和属性,接口一般用于指定实现类的规范
2. 抽象类可以有构造方法,作用是用给抽象父类中中的属性赋值;接口中不能有构造方法
3. 接口中不能含有静态代码块,而抽象类可以有静态代码块
4. 一个类只能继承一个抽象类,而一个类却可以实现多个接口。
 

12、说出几个常见的异常
Java中的异常分为运行时异常和编译时异常两大类:

运行时异常都是 RuntimeException 类及其子类异常,这类异常的特点是不强行要求程序员进行处理,常见的有

NullPointerException 空指针异常,调用了未经初始化的对象或者是不存在的对象

IndexOutOfBoundsException 数组角标越界异常,常见于操作数组对象时发生

ClassCastException 数据类型转换异常

NoSuchMethodException 方法不存在异常

非运行时异常,也叫编译异常,是 Exception 的子类但不是 RuntimeException的子类,类型上都属于及其子类

它要求程序员在编写代码的过程中提供异常处理方案,否则编译不通过,常见的有:IOException和SQLException等

13、Java 反射有了解吗
反射是指在运行状态中,对于任意一个类都能够知道这个类所有的属性和方法,并且可以调用它的任意一个方法

它主要应用于大量的框架底层,比如 Spring/Spring Boot、MyBatis 等等

14、浅拷贝和深拷贝区别

前提:比如如下类,注意有一个特殊的属性tearch是一个对象属性

public class Student{

 private int id;

 private String name;

 private Teacher teacher;

}


浅拷贝:只复制基础类型的数据,对象属性值复制地址,不复制值

深拷贝:要复制的对象所引用的对象都复制了一遍,也就是说把teacher中的属性和值也会一一复制


                        
原文链接:https://blog.csdn.net/qq_17462303/article/details/134383820

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java基础高频面试题包括以下内容: 1. 你是怎么理解面向对象的? 2. String、StringBuilder、StringBuffer的区别是什么? 3. ==与equals的区别是什么? 4. 什么是反射? 5. Java支持多继承吗? 6. 进程和线程的区别是什么? 7. 不考虑数据库的隔离性会发生什么? 8. 数据库的隔离级别有哪些? 9. 面向对象的三个基本特征是什么? 10. 访问修饰符public、private、protected以及不写时的区别是什么? 11. 给出一些代码块,判断是否能正常编译和执行。 12. 给出一些代码块,预测输出结果。 13. 如何用最有效率的方法计算2乘以8? 14. &和&&的区别是什么? 15. String是Java基本数据类型吗? 16. String类可以继承吗? 以上是一些Java基础高频面试题的例子,希望对你有帮助。 #### 引用[.reference_title] - *1* [Java基础高频面试题](https://blog.csdn.net/qsw1364941774/article/details/124499655)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Java高频面试题及答案整理(会持续更新)](https://blog.csdn.net/qq_44867340/article/details/112879620)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [【吐血整理】2022年Java 基础高频面试题及答案(收藏)](https://blog.csdn.net/m0_67698950/article/details/126549157)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值