Java基础题详解:面向对象、异常处理与集合框架

需积分: 14 1 下载量 41 浏览量 更新于2024-09-20 收藏 498KB DOC 举报
"Java基础知识题库,涵盖面向对象特性、数据类型、异常处理、集合框架、多线程、关键字及语法等多个方面,适用于复习和考试准备。" 在Java编程语言中,掌握基础知识对于成为一名合格的程序员至关重要。以下是一些题目的详细解释: 1. 面向对象的特征包括封装、继承、多态。 2. String不是基本数据类型,而是对象,属于引用类型。 3. int是基本数据类型,Integer是int的包装类,它们在内存中的存储方式和使用上有区别,如int是栈中存储,Integer是堆中存储。 4. String是不可变的,而StringBuffer是可变的,因此在字符串频繁拼接时,StringBuffer更高效。 5. 运行时异常不需要显式捕获,一般异常需要;两者都是异常类的子类,但运行时异常表示程序设计错误,一般异常表示可恢复的异常情况。 6. ArrayList、Vector和LinkedList都是List接口的实现,ArrayList基于数组,快速随机访问,但插入删除慢;Vector线程安全,操作慢;LinkedList基于链表,插入删除快,但访问慢。 7. Collection是所有集合接口的父接口,Collections是针对集合类的一个帮助工具类,提供了一系列静态方法用于对集合进行操作。 8. &是按位与运算符,&&是逻辑与运算符,后者具有短路特性,只有在左侧表达式为真时才会计算右侧。 9. HashMap非同步,允许null键值对,Hashtable同步,不允许null键值对。 10. final用于声明常量或不可变对象,finally确保代码块始终执行,finalize是对象被垃圾回收前调用的方法。 11. sleep()使当前线程休眠,wait()使线程等待,需在同步块中调用,释放锁。 12. Overload是重载,方法名相同但参数列表不同;Override是重写,子类覆盖父类方法。重载不改变返回类型,重写则必须保持一致。 13. error通常指系统级错误,无法恢复;exception是程序运行时的异常,可以捕获并处理。 14. 同步保证同一时间只有一个线程执行,适合资源竞争情况;异步允许多个线程并发执行,提高效率。根据任务性质选择使用,如IO密集型适合异步,CPU密集型适合同步。 15. abstract class可以有实现的方法,接口(interface)只能声明方法,不能有实现。 16. 栈(stack)用于存储局部变量和方法调用,堆(heap)用于存储对象实例。 17. StaticNestedClass是静态嵌套类,与外部类的关系类似于普通类;InnerClass是内部类,与外部类有更强的关联,每个内部类对象都包含一个外部类对象的引用。 18. assert用于断言,用于调试阶段检查程序状态。 19. GC是垃圾收集器,负责自动回收不再使用的对象,以避免内存泄漏。 20. shorts1 = 1; s1 = s1 + 1; 错误,因为short与int相加结果是int,需要强制类型转换。s1 += 1; 自动转换,无错误。 21. Math.round(11.5)等于12,Math.round(-11.5)等于-11。 22. new String("xyz")创建了两个String对象,一个在常量池,一个在堆。 23. Java没有goto语句,它是一种流程控制关键字。 24. 启动线程应使用start(),run()直接执行线程体。 25.常见的运行时异常如NullPointerException、ArrayIndexOutOfBoundsException等。 26. 接口可以继承接口,抽象类可以实现接口,但不能继承实体类。 27. List、Set、Map都继承自Collection接口,但Set继承自Set接口,Map不继承Collection。 28. abstract方法不能是static、native、synchronized,因为这些修饰符与抽象方法的定义不符。 29. 数组没有length()方法,有length属性;String有length()方法。 30. Set里的元素通过equals()和hashCode()方法区分,避免重复。 以上就是Java基础题中涉及的关键知识点,理解并熟练掌握这些概念对于Java开发者来说至关重要。