Java面试必备:基础题解析

需积分: 6 0 下载量 178 浏览量 更新于2024-07-18 收藏 351KB PDF 举报
"CoreJava_面试题" 这篇资料是一份针对Java初学者和面试者的面试题集,涵盖了Java基础知识,包括线程、异常处理、I/O流和集合等多个主题。以下将详细介绍其中的部分知识点: 1. **Java源文件与类的关系**:一个`.java`源文件可以包含多个类,但只能有一个公开的类(public class),其他类可以是非公开的(如private或默认访问级别)。 2. **goto关键字**:Java中没有`goto`关键字,它不支持像C/C++那样的跳转功能。 3. **& 和 && 的区别**:`&`是位运算符,也用于逻辑与操作;`&&`是短路逻辑与,只有当左侧表达式为真时才会评估右侧表达式。 4. **跳出多重循环**:使用`break`语句可以跳出当前的多重嵌套循环,而`continue`语句只会结束当前循环迭代。 5. **switch语句的适用范围**:switch可以作用于`byte`, `char`, `short`, `int`, `枚举类型`和`String`(JDK 1.7及以上版本)。 6. **short变量的加法**:直接使用`+=`操作符可以正确处理short类型的变量,如`short s1 = 1; s1 += 1;`,但`s1 = s1 + 1;`会涉及到类型提升,可能导致编译错误。 7. **char型变量与中文字符**:char类型可以存储一个Unicode字符,所以理论上可以存储中文汉字。 8. **效率计算2乘以8**:最有效率的方法是直接使用`*`运算符,即`2 * 8`。 9. **final关键字**:final修饰的变量,如果是基本类型,其值不能改变;如果是引用类型,引用不能改变,但引用的对象状态可以改变。 10. **"=="与equals的区别**:"=="比较的是对象的引用,而`equals()`方法比较的是对象的内容(除非重写)。 11. **静态变量与实例变量**:静态变量属于类,不依赖于实例,而实例变量属于类的每个实例。 12. **静态方法与非静态方法**:静态方法内不能直接调用非静态方法,因为非静态方法依赖于对象实例。 13. **Integer与int**:Integer是int的包装类,它们之间的转换涉及自动装箱和拆箱。Integer对象的比较使用`equals()`,int数值的比较使用"=="。 14. **Math.round()方法**:`Math.round(11.5)`等于12,`Math.round(-11.5)`等于-11。 15. **访问控制权限**:public表示所有类都可以访问,private只允许在同一个类内访问,protected允许同一包内和子类访问,无修饰符的表示同包内和子类可以访问。 16. **重载与覆盖**:重载(Overload)是方法名相同但参数列表不同,不改变返回类型;覆盖(Override)是子类重写父类的同名同参数的方法。 17. **构造器不能被覆盖**:构造器不能被重写(Override),但可以被重载。 18. **接口与继承**:接口可以继承接口,抽象类可以实现接口,抽象类可以继承具体类,抽象类中的main方法可以是静态的。 19. **clone方法**:在实现`clone()`方法时,通常会调用`super.clone()`来创建一个新的对象。 20. **面向对象特征**:封装、继承、多态。 21. **Java中的多态**:通过方法的重写和接口实现实现,使得子类对象可以调用父类引用或接口引用。 22. **abstract class与interface的区别**:抽象类可以包含方法实现,可以有构造器,可以有非抽象方法;接口则只能声明方法,不能有实现,也不能有构造器。 23. **abstract、static、native和synchronized的组合**:抽象方法不能是static或native,不能同时是synchronized。 24. **内部类**:内部类是定义在另一个类内部的类,分为静态嵌套类(Static Nested Class)和非静态嵌套类(Inner Class)。静态嵌套类可以独立于外部类创建,而内部类需要外部类实例才能创建。 25. **内部类的特性**:内部类可以直接访问外部类的所有成员,包括私有成员。静态嵌套类不能直接访问外部类的非静态成员。 这些面试题涵盖了Java语言的核心概念,对于准备面试或者学习Java基础知识的人来说非常有价值。通过解答这些问题,可以深入理解Java的语法特性和设计原则。