Java工程师面试必备知识点全解析

5星 · 超过95%的资源 需积分: 5 12 下载量 46 浏览量 更新于2024-07-25 收藏 725KB DOC 举报
"Java软件工程师笔试面试必备" Java软件工程师在准备笔试和面试时,需要掌握一系列核心知识点。以下是一些重要的Java基础知识和概念: 1. 一个.java源文件可以包含多个类,但只能有一个公共类(public class),其他类可以是非公共的(如private或包级私有)。 2. Java中没有goto语句,它被设计为避免无尽的跳转导致的代码复杂性。 3. & 是位运算符,用于按位与操作;&& 是逻辑与运算符,只有当两边的表达式都为真时,结果才为真。在短路逻辑中,如果第一个表达式为假,&&后面的表达式不会执行。 4. 跳出多重嵌套循环,可以使用break语句配合标签(label)来指定要跳出的循环层级。 5. switch语句不能作用于byte、long和String类型。在Java 7及以后版本,switch可以支持字符串(String)。 6. shorts1=1;s1=s1+1; 错误在于s1+1的结果是int型,需要强制转换回short。而s1+=1是合法的,因为编译器会自动处理类型提升和转换。 7. char型变量可以存储单个Unicode字符,包括中文汉字。 8. 计算2乘以8最有效率的方法是直接使用`2 * 8`。 9. 设计一个能处理一百亿的计算器需要考虑大整数运算,可能需要使用BigInteger类。 10. 使用final修饰变量时,如果是引用类型,意味着引用不可变,但引用的对象可以变。如果是基本类型,值不可变。 11. "=="比较的是对象的引用,而equals()方法比较的是对象的内容。对于非null对象,如果两个引用指向同一个对象,equals()返回true。 12. 静态变量属于类,而实例变量属于对象。静态变量被所有实例共享,实例变量只属于特定对象。 13. 不可以从static方法内部直接调用非static方法,因为static方法没有绑定到特定的对象实例。 14. Integer是int的包装类,提供了一些额外的功能,如缓存、比较等。int是原始类型,效率更高。 15. Math.round(11.5)等于12,Math.round(-11.5)等于-11。 16. 代码不妥之处可能包括未声明变量、语法错误、逻辑错误等,需要具体代码分析。 17. public,private,protected以及默认(包级私有)访问修饰符分别代表全局、仅本类、仅子类和同一包内的访问权限。 18. Overload(重载)是方法名相同但参数列表不同的方法,返回值类型可以不同。Override(重写)是子类重新定义父类的方法,必须保持方法签名一致。 19. 构造器不能被override,但可以重载。 20. 接口可以继承接口。抽象类可以实现接口,但不能继承具体类。抽象类可以有静态的main方法,但不能运行,因为静态方法不涉及对象实例。 21. 在实现clone()方法时,通常会调用super.clone()以创建对象的浅复制。 22. 面向对象的特征包括封装、继承和多态。 23. Java通过方法的重写(Override)和接口实现(Implements)来实现多态。 24. abstract class和interface都可以定义抽象方法,但abstract class可以包含非抽象方法和实例变量,可以有构造器,可以实现接口。interface只能包含常量和抽象方法,且方法默认为public abstract。 25. abstract的method不能同时是static,不能同时是native,也不能同时是synchronized,因为它们的性质相互冲突。 26. 内部类是定义在另一个类内部的类,分为静态嵌套类(Static Nested Class)和非静态嵌套类(Inner Class)。静态嵌套类不持有外部类的引用,可以直接实例化,而Inner Class需要外部类实例才能创建。 27. 内部类可以引用包含类的成员,包括私有成员,但不能引用静态成员(除非是静态内部类)。 28. AnonymousInnerClass(匿名内部类)是在没有名称的情况下定义的类,通常用作快速实现接口或继承类的临时解决方案。 这些是Java面试中常见的问题,理解和掌握这些知识点将有助于提升Java软件工程师的面试表现。