Java面试必备知识点:基础到高级详解

5星 · 超过95%的资源 需积分: 7 11 下载量 150 浏览量 更新于2024-07-24 收藏 4.83MB PDF 举报
"java面试宝典最新版" Java面试宝典是为准备Java职位面试而编写的指南,包含了各种核心概念和技术问题。以下是其中的一些重点知识点: 1. **Java源文件与类的关系**:一个`.java`源文件可以包含多个类,但只能有一个公共类(public class),且该公共类的名称必须与文件名相同。 2. **goto关键字**:Java中没有`goto`关键字,这与C/C++不同,它鼓励使用结构化的编程控制流。 3. **&和&&的区别**:`&`是位运算符,用于按位与操作;`&&`是逻辑与运算符,只有当两边的表达式都为真时,结果才为真。在短路逻辑中,如果左边的表达式为假,右边的表达式将不会执行。 4. **跳出多重嵌套循环**:在Java中,可以使用`break label;`配合标签(label)来跳出多重嵌套循环,标签标识了循环的开始,`break`则跳到该标签后的代码。 5. **switch语句的使用**:switch不能直接作用于`byte`,但可以通过强制类型转换;在Java 7及以上版本,switch可以作用于`String`。 6. **short变量的赋值**:`short s1 = 1; s1 = s1 + 1;`会引发编译错误,因为加法操作的结果是int型,需要显式转换为short。而`s1 += 1;`会自动处理类型转换。 7. **char存储中文**:char类型可以存储单个Unicode字符,包括中文汉字。 8. **效率计算2乘以8**:最有效率的方法是直接赋值`int result = 2 << 3;`,利用位移运算。 9. **设计大数计算器**:设计一个能处理大数的计算器,需要考虑如何存储和操作大数,可能需要使用StringBuilder或自定义大数类。 10. **final修饰变量**:final修饰的变量其引用不可变,意味着不能重新赋值,但如果是对象引用,对象的内容可以改变。 11. **"=="与equals的区别**:"=="比较的是对象的引用,而equals比较的是对象的内容(默认行为,可重写)。 12. **静态与实例变量**:静态变量属于类,而实例变量属于对象,静态变量可以被类的所有实例共享,实例变量只在特定实例中存在。 13. **静态方法与非静态方法**:静态方法不能直接访问非静态成员,因为非静态成员与特定对象关联。 14. **Integer与int**:Integer是int的包装类,用于支持对象操作,如比较、缓存等;int是原始数据类型,直接存储数值。 15. **Math.round**:Math.round(x)会四舍五入为最接近的整数,正数向右靠拢,负数向左靠拢。 16. **代码不妥之处**:这个问题没有提供具体的代码,通常检查点包括未初始化的变量、空指针异常、数组越界等。 17. **作用域区别**:public作用域可被所有类访问,private仅限本类,protected允许子类访问,不写则为包级私有(同包内的类可访问)。 18. **Overload与Override**:Overload是方法重载,发生在同一类中,通过参数列表区分不同的方法;Override是方法覆盖,发生在子类中,重写父类的同名方法,不能改变返回类型和访问修饰符。 19. **构造器不可override**:构造器不能被覆盖,但可以被重载。 20. **接口与抽象类**:接口可继承接口,抽象类可实现接口,但不能继承具体类;抽象类可以有静态的main方法,但无法实例化。 21. **clone方法**:在实现Cloneable接口的类中,通常需要重写`protected Object clone() throws CloneNotSupportedException`,并调用`super.clone()`。 22. **面向对象特征**:封装、继承、多态。 23. **Java多态机制**:多态是通过方法的重写(Override)和向上转型(Upcasting)实现的,允许使用父类引用指向子类对象。 24. **abstractclass与interface**:抽象类可以有方法实现,接口只能声明方法(Java 8后可有默认方法和静态方法);抽象类可以有构造器,接口不能。 25. **abstract、static、native和synchronized的组合**:一个方法不能同时是abstract、static、native,也不能同时是abstract、synchronized,但可以是static、native或synchronized。 26. **内部类**:内部类是定义在另一个类中的类,分为静态内部类(StaticNestedClass)和非静态内部类(InnerClass)。静态内部类与外部类没有实例关联,非静态内部类需要外部类实例。 27. **内联类与匿名类**:内联类(Inner Class)是具有名称的内部类,匿名类是不声明名称的类,通常用于实现接口或继承父类,并在创建时立即实例化。 以上内容涵盖了Java面试宝典的部分重点,这些知识点都是Java程序员需要掌握的基础和进阶技能。
2019-05-07 上传
Java 基础部分..................................................................................................................... 7 1、一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? ...... 7 2、Java 有没有 goto? ....................................................................................................... 8 3、说说&和&&的区别。 ............................................................................................... 8 4、在 JAVA 中如何跳出当前的多重嵌套循环? .......................................................... 8 5、switch 语句能否作用在 byte 上,能否作用在 long 上,能否作用在 String 上? .. 9 6、short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错? ....................... 9 7、char 型变量中能不能存贮一个中文汉字?为什么? .................................................. 9 8、用最有效率的方法算出 2 乘以 8 等於几? ............................................................... 9 9、请设计一个一百亿的计算器 ..................................................................................... 9 10、使用 final 关键字修饰一个变量时,是引用不能变,还是引用的对象不能变? ......................................................................................................................................... 11 11、"=="和 equals 方法究竟有什么区别? ......................