Java面试必备知识精讲

需积分: 33 10 下载量 44 浏览量 更新于2024-07-20 1 收藏 2.14MB PDF 举报
"Java面试宝典2014版" 这篇文档是一本专注于Java面试准备的指南,涵盖了从基础知识到高级概念的各种问题。以下是其中的部分知识点详解: 1. **Java基础部分** - **类与源文件**:一个`.java`源文件可以包含多个类,但只能有一个公共类(即public class),其他类可以是非公共类,如私有类或包级私有类。 - **goto语句**:Java语言中没有`goto`语句,它鼓励使用结构化编程,避免了无尽的跳转导致的代码混乱。 - **&和&&的区别**:`&`是逻辑与运算符,无论两边表达式是否为真都会进行计算;`&&`也是逻辑与,但只有当左边表达式为真时才会计算右边的表达式,这是短路运算。 - **跳出多重循环**:在Java中,可以使用`break`语句配合标签来跳出多重嵌套循环。 - **switch语句**:switch可以作用于`byte`, `char`, `short`, `int`以及枚举类型,但不能直接作用于`long`和`String`,Java 7以后可以使用字符串。 2. **数据类型与运算** - **short变量自增**:直接赋值`s1=s1+1`会导致数据溢出,因为结果是int类型,需要强制类型转换;而`s1+=1`会自动处理类型转换。 - **char类型存储中文**:char类型可以存储单个Unicode字符,因此可以存储中文汉字。 - **高效计算2的8次方**:可以用`(1 << 8)`的方式快速计算2的8次方,利用位移运算。 3. **变量与方法** - **final变量**:final修饰的变量,如果是基本类型,其值不能改变;如果是引用类型,引用本身不可变,但引用的对象可以改变。 - **==与equals**:`==`比较的是两个对象的引用是否相同,而`equals`默认比较内容,但可以重写。 - **静态与实例变量**:静态变量属于类,所有实例共享;实例变量属于对象,每个对象有自己的副本。 - **静态方法与非静态方法**:静态方法不能直接访问非静态成员,因为非静态成员依赖于特定的对象实例。 4. **类与接口** - **Integer与int**:Integer是int的包装类,对象形式存在,而int是基本类型,效率更高。 - **Math.round**:Math.round(x)会四舍五入,对于正数11.5,结果是12;对于负数-11.5,结果是-11。 - **构造器**:构造器不能被覆盖(override),但可以重载(overload)。 - **接口与继承**:接口可以继承接口,抽象类可以实现接口,但不能继承具体类;抽象类中可以有静态的main方法。 5. **面向对象特性** - **多态**:Java中的多态通过继承和接口实现,同一方法在不同子类中有不同的表现。 - **abstract类与接口**:abstract类可以有方法实现,可以有成员变量,而接口只能声明方法,不能有实现,且成员变量默认是静态和常量。 - **abstract method**:抽象方法不能是static、native或synchronized,因为这些修饰符与抽象方法的定义相冲突。 6. **内部类** - **内部类**:内部类可以是成员内部类、局部内部类、匿名内部类等,提供了一种创建紧密关联的类的方式。 - **StaticNestedClass与InnerClass**:StaticNestedClass是静态嵌套类,可以独立于外部类实例存在;InnerClass是内部类,必须依赖外部类实例。 - **内部类与外部类成员**:内部类可以直接访问外部类的所有成员,包括私有成员,但外部类不能直接访问内部类的私有成员。 这些知识点只是Java面试宝典2014版的一部分,全面复习并理解这些内容将有助于Java开发者在面试中表现出色。