尚学堂Java面试题精华及答案汇总

需积分: 0 0 下载量 156 浏览量 更新于2024-07-01 收藏 6.79MB PDF 举报
本资源是一份关于Java面试题的汇总,包含了一些常见的面试问题及其答案。首先,我们来看第一个问题: **问题1:字符串比较** 题目要求判断两个字符串`str1`和`str2`是否相等,其中`str1`是直接赋值为"hello",而`str2`是通过`newString`创建的新对象。根据Java内存模型,由于`str1`没有使用`new`关键字,它实际上指向了字符串常量池中的相同值,而`str2`则是创建了一个新的对象实例。因此,`str1==str2`的结果是`false`,因为它们比较的是引用而非内容,答案是B。 **问题2:构造函数的理解** 问题探讨了构造函数的相关知识。A选项错误,类中的构造函数可以省略;B选项错误,构造函数可以与类同名,只要方法名符合命名规范即可;C选项正确,构造函数在创建对象时自动执行,用于初始化新对象的状态;D选项错误,一个类可以定义多个构造函数,这是构造方法的多态性体现。 **问题3:线程启动与顺序执行** 该问题涉及线程和方法调用的顺序。程序创建了一个新线程`t`,但是直接调用`t.run()`而不是`t.start()`,这意味着`run()`方法会被当作普通方法执行,而不是作为线程的入口点。因此,`pong()`方法先被执行,输出"pong",然后才是主线程执行`System.out.println("ping")`,答案是B。 **问题4:流类的选择** 题目询问面向字符的输入流,其中`BufferedWriter`是输出流,`FileInputStream`或`FileReader`等才属于输入流。因此,正确答案是D,没有明确给出,可能是`FileReader`或者类似的类。 这些问题涵盖了Java编程的基础概念,包括字符串操作、构造函数、线程管理和I/O流等,对于准备Java面试的人来说,这些题目可以帮助测试和巩固他们的知识。同时,解答也提供了深入理解这些概念的分析,有助于面试者理解背后的原理。