以下是20道初级Java开发工程师常见面试题及其简要答案,涵盖基础语法、面向对象、常用API、集合、异常、I/O、多线程等知识点:
答案:byte、short、int、long、float、double、char、boolean。
答案:int 是基本数据类型,存储在栈中;Integer 是 int 的包装类,是对象,存储在堆中,能为 null,包含方法。
答案:封装、继承、多态。
答案:String 不可变,线程安全;StringBuffer 可变,线程安全;StringBuilder 可变,非线程安全,效率高。
答案:== 比较的是引用(地址);equals() 比较的是内容(可被重写)。
答案:
构造方法用于创建对象时初始化对象。
特点:方法名与类名相同,无返回值,不写返回类型。
答案:
重载:同类中方法名相同,参数列表不同。
重写:子类重新定义父类的方法,方法签名相同。
答案:
修饰类:类不能被继承;
修饰方法:方法不能被重写;
修饰变量:变量值不可更改(常量)。
答案:
List:有序、可重复元素,如 ArrayList;
Set:无序、元素唯一,如 HashSet;
Map:键值对,键唯一,如 HashMap。
答案:
ArrayList 底层数组,查询快、增删慢;
LinkedList 底层链表,查询慢、增删快。
答案:
HashMap 线程不安全,允许 null 键值,效率高;
Hashtable 线程安全,不允许 null 键值,效率低。
答案:
Throwable
├── Error(严重错误)
└── Exception
├── RuntimeException(运行时异常)
└── 非运行时异常(如 IOException)
答案:
throw 用于抛出异常对象;
throws 用于声明方法可能抛出的异常类型。
答案:
同一方法调用在不同对象上有不同表现。
实现方式:继承+方法重写+父类引用指向子类对象。
答案:
接口只定义方法签名,无实现;
抽象类可有抽象方法和具体方法。
区别:接口不能有构造方法,支持多实现;抽象类可有构造方法,单继承。
答案:
Java 虚拟机(JVM)是 Java 程序运行的虚拟环境,负责字节码加载、解释、执行、内存管理、垃圾回收等。
答案:
包是类的命名空间,用于组织类、避免命名冲突、便于管理。
答案:
按流向分:输入流、输出流;
按处理单位分:字节流(InputStream、OutputStream)、字符流(Reader、Writer)。
答案:
两种:继承 Thread 类、实现 Runnable 接口(实际开发多用 Runnable)。
答案:
用于实现线程同步,防止多线程同时访问共享资源导致数据不一致。
未经 qmjianli.com 同意,不得转载或采集本站的文章。