java技术面试宝典2020版.doc
《Java技术面试宝典2020版》涵盖了Java编程语言的基础知识,面试常考问题以及最佳实践。以下是对部分知识点的详细解析: 1. **Java源文件与类的关系** -一个`.java`源文件可以包含多个类,但只能有一个公共类(public class),且公共类的名称必须与文件名相同。其他非公共类没有这个限制。 2. **goto关键字** - Java中不支持`goto`关键字。这是为了提高代码的可读性和可维护性,避免复杂的跳转导致逻辑混乱。 3. **&和&&的区别** - `&`是位运算符,用于进行按位与操作;在逻辑表达式中,`&`两边的操作数都会被计算,即使左边为假,右边仍会被执行。 - `&&`是逻辑与运算符,如果左边的操作数为假,右边的表达式将不会被计算,这种方式称为短路评估。 4. **switch语句的适用范围** - switch语句可以作用在`byte`, `short`, `char`, `int`以及枚举类型(enum)上,但不能直接作用于`long`和`String`。JDK 7以后,`String`被添加到switch的支持中。 5. **short变量的加法** - `short s1 = 1; s1 = s1 + 1;`这种情况下,加法操作会自动提升为`int`类型,因此需要显式转换回`short`,如:`s1 = (short) (s1 + 1);` - `short s1 = 1; s1 += 1;`这是合法的,因为Java会处理类型转换。 6. **char与中文字符** - `char`型变量可以存储一个中文汉字,因为UTF-16编码中,一个中文字符通常占两个字节,而`char`在Java中是16位的。 7. **最有效率的方式计算2乘以8** -使用位左移操作符`<<`,如:`2 << 3`,这相当于2乘以2的3次方,即2 * 8。 8. **final关键字的使用** -当`final`修饰变量时,如果变量是引用类型,意味着引用不能改变,但引用的对象内容可以改变。 -如果对象是不可变的(如`String`),那么对象本身也不能改变。 9. **"=="和equals方法的区别** - `"=="`操作符比较的是两个对象的引用是否指向同一块内存空间,对于基本类型,比较的是数值是否相等。 - `equals`方法默认行为与"=="相同,但对于对象,如`String`,`equals`会比较对象的内容是否相等。 10. **静态变量与实例变量** -静态变量属于类,由类名直接访问,所有实例共享同一个静态变量,不受实例化影响。 -实例变量属于对象,每个实例都有自己的副本,互不影响。 11. **静态方法与非静态方法** -静态方法不能直接访问非静态成员,因为非静态成员依赖于特定的对象实例。 -要从静态方法内部调用非静态方法,需要先创建对象实例,然后通过对象实例来调用。这些只是Java面试宝典中的一部分内容,实际面试中还可能涉及更多主题,如异常处理、多线程、集合框架、IO流、设计模式、数据库连接等。全面掌握这些知识点,有助于你在Java面试中取得优异成绩。
下载地址
用户评论