JavaSE简答题总结

本文详细总结了JavaSE中的重要概念,包括重载与重写、异常处理、线程安全、多线程、并发与并行的区别、对象生命周期、集合框架、Map特性和反射。还探讨了面向对象编程的三大特性、线程池的优势以及解决线程安全问题的策略,最后讲解了Java内存区域和对象创建的过程。
摘要由CSDN通过智能技术生成

重载和重写的区别?
重载:两同一异,同类同名不同参(参数顺序、个数、类型等不同),有重载构造器
重写:两异一同,子父类同名同参,重写方法门槛要低于父类方法(权限修饰符范围大,返回值为引用类型时 相同或是其子类,异常范围同上),构造器不可重写

除了空指针、数组越界等异常,还有哪些常见错误和异常?
Error:如OOM、StackOverflowError等
Exception:包装类.parseXxx()转换类型错误时:NumberFormatException
valueOf(name)返回指定name名称的枚举类对象,当name不存在时:IllegalArgumentException非法参数错误
线程安全问题或是在迭代器/foreach循环中增删元素:ConcurrentModificationException并发修改错误
向下转型异常:ClassCastException
编译异常通常是意外情况,如找不到文件,需要提供try-catch等方法做备用;运行异常通常是因为逻辑不够健壮,修改后能够避免

什么时候会空指针异常?
1.调用一个为null的对象的成员方法或成员属性
2.null的拆箱操作(也是第一条的情况)

final、finally、finalize三者的区别?
final:修饰变量、方法、类,变量是常量,方法不能被重写,类不能被继承
finally:try-catch结构中必须执行的部分,不论异常是否捕获成功都执行,并且在其他return前执行
finalize:Object类的方法,手动计划回收资源,可能存在回收失败问题

抽象类和接口区别:
抽象类不一定都是抽象方法,接口一定是;
一个类只能继承一个抽象类,一个类可以实现多个接口

如何理解面向对象三大特征(如何理解面向对象编程思想)?
封装性:属性、方法、类用不同的权限修饰符包装成一个整体,增强安全性和简洁性,也就是可见性的大小
继承性:减少冗余、方便扩展,多态的前提
多态性:增强接口方法的灵活性,类的多态。如果没有多态性,抽象类和接口的声明就没意义了

如何理解Java万事万物皆对象?
数据库的一行数据、文件File、前端页面的各种数据等,在Java中都可以被看做一个对象

并行和并发的区别?
并行:多个CPU同时执行
并发:一个CPU交替执行

进程和线程的区别

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值