Java面试必备知识点:基础篇

需积分: 10 0 下载量 200 浏览量 更新于2024-07-24 收藏 634KB DOC 举报
"Java面试葵花宝典2012版.doc" 是一份关于Java面试的文档,包含了多个Java基础知识和技术问题,旨在帮助求职者准备Java程序员的面试。 以下是这份文档中涉及的一些Java知识点的详细解释: 1. **Java源文件与类的关系**:一个`.java`源文件可以包含多个类,但只能有一个公开类(public class),其他的类可以是非公开类(如private或默认访问修饰符)。 2. **goto语句**:Java语言中没有`goto`语句,这与C/C++等其他语言不同。 3. **& 和 && 的区别**:`&`是逻辑与运算符,无论两边的表达式是否为真都会进行计算;而`&&`是短路与运算符,如果左边的表达式为假,右边的表达式不会执行。 4. **跳出多重嵌套循环**:使用`break`语句可以跳出当前层循环,但无法直接跳出多重嵌套循环;`return`语句不仅可以结束当前方法,也可以在循环中使用来跳出所有循环。 5. **switch语句的使用**:在Java 7之前,`switch`不能用于`byte`、`char`、`short`或`int`之外的类型,但在Java 7及以后版本中,支持`String`类型的`switch`语句。 6. **short变量与运算**:在Java中,直接使用`+`运算符可能造成数据溢出,因为`short s1 = 1; s1 = s1 + 1;`会先将`short`提升为`int`,再进行加法运算。而`s1 += 1;`是复合赋值操作,内部自动处理类型提升和溢出问题。 7. **char型变量与中文字符**:一个`char`变量可以存储一个Unicode编码的字符,因此它可以存储中文汉字。 8. **效率计算2乘以8**:最有效率的方法是直接写`2 * 8`,因为这是编译器优化后的基本运算。 9. **设计大整数计算器**:设计一个能处理大整数的计算器,需要使用`BigInteger`类或其他大数运算算法。 10. **final关键字**:final修饰的变量,其引用一旦初始化后不可改变,但如果是引用类型,其指向的对象内容是可以变的。 11. **"=="与equals的区别**:"=="比较的是两个对象的引用是否相同,而`equals`方法(默认情况下)比较的是对象的内容是否相等。 12. **静态变量与实例变量**:静态变量属于类,不依赖于类的实例,而实例变量属于类的每个实例。 13. **静态方法与非静态方法**:不能从静态方法内部直接调用非静态方法,因为静态方法不依赖于实例,无法访问实例变量。 14. **Integer与int**:`Integer`是`int`的封装类,它们在内存中的处理方式和性能上有差异,`Integer`对象使用了缓存机制,对于小数值的自动装箱拆箱更高效。 15. **Math.round方法**:`Math.round(11.5)`等于12,`Math.round(-11.5)`等于-11。 16. **代码不妥之处**:没有提供具体代码,无法分析。 17. **作用域的区别**:public表示全局可访问,private仅限本类访问,protected允许子类访问,无修饰符则在包内可见。 18. **Overload与Override**:Overload是重载,方法名相同但参数列表不同;Override是重写,子类方法覆盖父类方法,要求方法名、参数列表和返回值类型都相同。 19. **构造器不能被override**:构造器不能被重写,但可以被重载。 20. **接口与继承**:接口可以继承接口,抽象类可以实现接口,但不能继承具体类;具体类可以继承抽象类,也可以实现接口。 21. **clone方法**:在实现`clone()`方法时,通常会包含`super.clone()`调用以复制对象。 22. **面向对象特征**:包括封装、继承、多态。 23. **Java多态机制**:通过接口、抽象类和方法重写实现,允许不同类型的对象对同一消息作出响应。 24. **abstractclass与interface**:抽象类可以有构造器、字段和方法(包括非抽象方法),而接口只有常量和抽象方法。 25. **abstract、static、native、synchronized的组合**:抽象方法不能同时是static和native,也不能同时是synchronized。 26. **内部类**:内部类是定义在另一个类中的类,分为成员内部类(StaticNestedClass)和局部内部类(InnerClass),前者可以在类的任何地方使用,后者只能在其定义的作用域内使用。 27. **内部类与外部类的交互**:内部类可以直接访问外部类的所有成员,包括私有成员,但外部类不能直接访问内部类的私有成员。 28. **匿名内部类**:没有名字的内部类,通常用于快速创建一次性的、简洁的类实例。 以上就是文档中涉及的Java面试题目的解析,涵盖了Java的基础语法、类与对象、多态、接口、内部类等多个核心概念。这些题目可以帮助求职者全面了解和复习Java编程的基础知识。