Java面试必备:基础题集

需积分: 1 0 下载量 182 浏览量 更新于2024-09-11 收藏 62KB DOC 举报
"大公司的Java面试题集,包含了基础的Java知识,如final、finally、finalize的区别,匿名内部类的特性,静态嵌套类与内部类的差异,以及HashMap与Hashtable、Collection与Collections的区别等。" 在Java编程中,这些知识点是面试时常见的考察点,对于理解Java的核心机制至关重要: 1. **final, finally, finalize的区别**: - `final` 是一个关键字,用于声明变量、方法或类为不可变。一旦声明为final,就不能改变其值或重写。 - `finally` 用于异常处理,确保代码块在任何情况下都会被执行,无论是否抛出异常。 - `finalize` 是一个方法,属于Object类,用于在对象被垃圾收集器回收之前进行清理工作,但这不是保证执行的。 2. **AnonymousInnerClass(匿名内部类)**: - 匿名内部类可以直接继承一个类或实现一个或多个接口。它没有类名,通常用于简洁地定义回调函数或实现简单接口。 3. **StaticNestedClass和Inner Class**: - 静态嵌套类(Static Nested Class)是静态成员类,可以独立于外部类实例存在,可以访问外部类的静态成员,但不能直接访问非静态成员。 - 内部类(Inner Class)是与外部类实例紧密关联的类,需要外部类实例才能创建,可以访问外部类的所有成员。 4. **& 和 && 的区别**: - `&` 是位运算符,用于按位与操作,而在逻辑表达式中,它也会进行短路操作,但始终会计算两边的表达式。 - `&&` 是逻辑与运算符,它也进行短路操作,如果第一个表达式为假,就不会计算第二个表达式。 5. **HashMap和Hashtable的区别**: - HashMap是非同步的,性能更好,允许null键和null值。 - Hashtable是同步的,线程安全,不允许null键和null值。 6. **Collection和Collections的区别**: - Collection是一个接口,它是所有集合类的父接口,代表单个元素的集合。 - Collections是工具类,提供了对集合的各种操作方法,如排序、查找、填充等。 7. **assert的使用**: - `assert` 用于在开发阶段进行断言,检查程序状态,当条件为假时抛出AssertionError,便于调试。 8. **GC(Garbage Collector)**: - GC是Java的自动内存管理机制,负责回收不再使用的对象,防止内存泄漏。 9. **Strings=newString("xyz");创建了几个StringObject?**: - 这将创建两个对象,一个在常量池,一个在堆中。 10. **Math.round(11.5)和Math.round(-11.5)的结果**: - Math.round(11.5) 返回 12,Math.round(-11.5) 返回 -11。 11. **short s1=1; s1=s1+1; 和 s1+=1; 的区别**: - 第一行会导致编译错误,因为s1+1的结果是int类型,无法直接赋值给short类型的s1。 - 第二行是合法的,因为s1+=1是复合赋值操作,会自动转换类型并赋值。 12. **sleep()和wait()的区别**: - `sleep()` 是Thread类的方法,使当前线程暂停执行指定时间,不会释放锁。 - `wait()` 是Object类的方法,使线程等待,释放当前持有的锁,直到被notify()或notifyAll()唤醒。 13. **Java中的"..."(省略号)**: - 在Java中,省略号用于多种场景,如数组初始化、varargs参数、for-each循环等,具体含义取决于上下文。 以上只是部分Java面试中常见的知识点,实际上,面试可能还会涉及多线程、IO流、设计模式、JVM内存模型、异常处理、网络编程等多个领域。掌握这些基础并深入理解,将有助于在面试中脱颖而出。