八股文 | Java 面试突击
3112
2022.03.22
2022.03.22
发布于 上海市

[toc]

Java 中参数的传递使用值传递还是引用传递?

Java 中只有值传递。值传递的含义是将实参的值传递给形参,当参数类型是基本数据类型时,传递的是实参的值,当参数类型是对象时,传递的是对象的引用,但是不能让实参引用新的对象。

面向对象和面向过程的区别有哪些?分别有什么优缺点?

面向过程将问题分解成步骤,按照步骤实现函数,并依次调用,数据和对数据的操作是分离的。面向对象将问题分解成对象,描述事物的行为,对象与属性和行为是关联的。
面向过程的优点是性能高,缺点是不容易维护、复用和扩展。面向对象的优点是具有封装、继承、多态的特性,因而容易维护、复用和扩展,缺点是性能低。

虚拟机栈可能出现哪两种异常,分别在什么情况下出现?

虚拟机栈可能出现的两种异常是 StackOverflowError 和 OutOfMemoryError。
如果虚拟机栈不可以动态扩展,当线程请求的栈深度大于虚拟机所允许的深度时,将抛出 StackOverflowError 异常;
如果虚拟机栈可以动态扩展,当无法申请到足够的内存时,将抛出 OutOfMemoryError 异常。

进程和线程的区别是什么?

进程和线程最大的区别是,各进程是独立的,而各线程则不一定独立,因为同一进程中的多个线程极有可能会相互影响。线程执行开销小,但不利于资源的管理和保护,进程则相反。

列举五种 Java 常见的异常类型

NullPointerException:空指针异常。
ArrayIndexOutOfBoundsException:数组下标越界异常。
ArithmeticException:算术运算异常。
NumberFormatException:数字格式异常。
IOException:输入输出异常。

本篇内容节选自《Java 面试突击》

评论 (0)