Java软件工程师面试必备知识详解

4星 · 超过85%的资源 需积分: 7 24 下载量 45 浏览量 更新于2024-07-26 收藏 894KB DOC 举报
"最新葵花宝典 - Java软件工程师笔试面试必备" 这篇资料是针对Java软件工程师面试和笔试准备的一份指南,涵盖了多个Java基础知识和核心概念。以下是对这些知识点的详细解析: 1. Java源文件可以包含多个类,但只能有一个公开的(public)类,其他非公开类没有数量限制。 2. Java中没有goto语句,它鼓励使用结构化编程,避免无尽的跳转。 3. &是位运算符,&&是逻辑运算符。&在任何时候都会计算两边的操作数,而&&只有在左边操作数为真时才会计算右边。 4. 使用`break`语句可以从多重嵌套循环中跳出。 5. switch语句不能作用于byte、long或String。Java 7之前仅支持byte、short、char和int,Java 7开始支持枚举,Java 14及以后版本支持字符串(String)。 6. shorts1=1;s1=s1+1;这会导致编译错误,因为short加法的结果是int,需要强制转换。而s1+=1;会自动进行类型提升和赋值。 7. char型变量可以存储中文字符,因为一个中文字符在UTF-16编码下占两个字节。 8. 计算2乘以8可以用`System.out.println(2 << 3);`或者`System.out.println(2 * 8);`。 9. 设计一个大数计算器要考虑数值溢出问题,可以使用BigInteger类来处理。 10. final修饰变量时,引用不能改变,但引用的对象可以改变(如果是对象)。如果对象是不可变的(如String),则对象本身也不能改变。 11. "=="比较的是对象的引用,equals方法比较的是对象的内容。对于基本类型,"=="和equals效果相同。 12. 静态变量属于类,而实例变量属于对象。静态变量在内存中的位置固定,实例变量随对象创建。 13. 不可以从static方法内部直接调用非static方法,因为非static方法依赖于对象实例。 14. Integer是int的包装类,它们之间可以自动装箱拆箱。Integer对象的比较使用equals(),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通过方法重写和父类引用子类对象实现多态。 24. abstract class和interface都可以定义抽象方法,但abstract class可以有实现的方法,可以有实例变量,而interface只能定义常量和抽象方法。 25. abstract的method不能是static、native或synchronized。 26. 内部类是定义在另一个类内部的类,分为静态内部类(StaticNestedClass)和非静态内部类(InnerClass)。静态内部类不依赖于外部类的实例,而内