Java基础面试题拷打(3)

如何在 Java 中调用外部可执行程序或系统命令?

可以通过 Runtime.getRuntime().exec() 或 ProcessBuilder 来执行系统命令。ProcessBuilder 功能更强,支持环境变量和工作目录设置。

如果一个线程被两次调用 start() 会发生什么?

线程对象只能启动一次,如果再次调用 start() 会抛出 IllegalThreadStateException。

栈和队列有什么区别?

栈是后进先出(LIFO),队列是先进先出(FIFO)。栈常用于方法调用栈,队列常用于任务调度。

Java 的 Optional 类是什么?

Optional 是 Java8 引入的容器类,用来避免空指针异常(NullPointerException)。常用方法有 of()、ofNullable()、orElse() 等。

Java 中如何保证线程安全?

可以通过 synchronized、Lock、volatile、原子类(AtomicInteger)以及并发集合(ConcurrentHashMap)等方式保证线程安全。

Java IO 流有哪些?

Java IO 按方向分为输入流和输出流;按类型分为字节流和字符流。字节流:InputStream/OutputStream;字符流:Reader/Writer。

什么是 Java 网络编程?

Java 网络编程是通过 java.net 包进行网络通信,常用类有 Socket、ServerSocket、DatagramSocket 和 InetAddress。

Java 的基本数据类型有哪些?

Java 有 8 种基本数据类型:byte、short、int、long、float、double、char、boolean。

什么是自动装箱和拆箱?

自动装箱是将基本类型自动转换为包装类对象,例如 Integer i = 1;自动拆箱是将包装类转换为基本类型,例如 int x = i。

什么是 Iterator?

Iterator 是集合迭代器接口,用于遍历集合中的元素。常用方法有 hasNext()、next() 和 remove()。

运行时异常和编译时异常有什么区别?

编译时异常必须在代码中处理(try-catch 或 throws),运行时异常在运行过程中发生,不强制处理。

什么是 Java 的继承机制?

继承允许子类继承父类的属性和方法,通过 extends 实现。Java 只支持单继承。

什么是封装?

封装是将对象的属性隐藏起来,通过 public 的 getter/setter 方法访问,从而提高安全性和可维护性。

Java 中有哪些访问修饰符?

public、protected、default、private。它们控制类、方法和变量的访问范围。

静态方法和实例方法有什么区别?

静态方法属于类,可以通过类名调用;实例方法属于对象,需要创建对象后调用。

for 循环和 foreach 循环有什么区别?

for 循环可以使用索引并修改元素;foreach 主要用于遍历集合,不能直接获取索引。

什么是双亲委派模型?

类加载时先委托父类加载器加载,父类无法加载时才由当前加载器加载。这样可以保证类加载的安全性。

wait() 和 sleep() 有什么区别?

wait() 属于 Object 类,会释放锁;sleep() 属于 Thread 类,不会释放锁。

什么是 Java 字节码?

Java 源代码通过 javac 编译成 .class 文件,里面存储的就是字节码,JVM 会执行这些字节码。

什么是 BIO、NIO、AIO?

BIO 是同步阻塞 IO;NIO 是同步非阻塞 IO;AIO 是异步非阻塞 IO。

什么是 Channel?

Channel 是 Java NIO 中的数据传输通道,需要配合 Buffer 使用,可以进行双向读写。

什么是 Selector?

Selector 是 NIO 中实现 IO 多路复用的组件,可以让一个线程监听多个 Channel。

float 为什么会出现精度丢失?

float 使用二进制表示小数,一些十进制小数无法精确表示,因此会出现精度误差。

PO、VO、DTO、DAO、BO、POJO 有什么区别?

PO 对应数据库对象;VO 用于前端展示;DTO 用于数据传输;DAO 负责数据库操作;BO 负责业务逻辑;POJO 是普通 Java 对象。

== 和 equals() 有什么区别?

== 比较的是地址或基本类型值;equals() 比较对象内容。

ArrayList 和 LinkedList 有什么区别?

ArrayList 基于动态数组,查询快;LinkedList 基于链表,插入删除快。

什么是多态?

多态是指同一方法在不同对象上表现出不同的行为,通常通过方法重写实现。

HashMap 的底层结构是什么?

JDK8 中 HashMap 使用数组 + 链表 + 红黑树结构来提高查询效率。

相关推荐
guslegend5 天前
Java基础面试题拷打(2)
面试拷打