java程序员面试题及解答.pdf,这是一份不错的文件
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
【知识点详解】 1. final, finally, finalize 的区别: - final:final 用于修饰类、方法或变量,表示不可改变。对于类,final 使类不可被继承;对于方法,final 阻止方法被重写;对于变量,final 使变量成为常量,一旦赋值就不能修改。 - finally:finally 用于异常处理,无论是否发生异常,finally 代码块中的内容总会被执行,确保关键的清理操作得以完成。 - finalize:是 Object 类的一个方法,用于在垃圾回收前进行清理工作,但其使用并不推荐,因为其行为不可预测,且效率低。 2. Anonymous Inner Class:匿名内部类可以直接继承一个类或实现一个接口。它可以用来简化代码,通常用于回调函数或事件监听器等场景。 3. Static Nested Class 和 Inner Class:静态嵌套类(Static Nested Class)可以用 static 关键字修饰,可以独立于外部类存在,不持有外部类的引用。而普通内部类(Inner Class)与外部类有紧密关联,每个内部类实例都包含一个外部类实例的引用。 4. & 和 &&:& 是按位与运算符,&& 是逻辑与运算符。在布尔表达式中,&& 只会计算左侧表达式,如果左侧为 false,则不会计算右侧。 5. HashMap 和 Hashtable:HashMap 不是线程安全的,允许空键和空值,而 Hashtable 是线程安全的,不允许空键和空值。 6. Collection 和 Collections:Collection 是集合框架的顶层接口,代表单列集合。Collections 是工具类,提供了许多静态方法,用于对集合进行操作,如排序、查找、填充等。 7. assert:在测试阶段使用,用于断言某个条件是否为真。如果条件不满足,程序会停止执行并抛出 AssertionError。 8. GC (Garbage Collector):Java 中的垃圾回收机制,自动管理内存,回收不再使用的对象所占用的内存空间,防止内存泄漏。 9. String 对象创建:`String s = new String("xyz");` 创建了两个 String 对象,一个在常量池,一个在堆。而 `String s = "xyz";` 只创建了一个对象。 10. Math.round:`Math.round(11.5)` 等于 12,`Math.round(-11.5)` 等于 -11。Math.round 返回最接近的整数,向正无穷方向取整。 11. short s1 相加问题:`s1 = s1 + 1;` 错误,因为基本类型的自动装箱会导致类型不匹配。而 `s1 += 1;` 正确,编译器会自动处理。 12. sleep() 和 wait():sleep() 是 Thread 类的方法,使当前线程暂停指定时间,不会释放锁;wait() 是 Object 类的方法,使线程等待,会释放锁,需在同步环境中使用。 13. Java 没有 goto 关键字。 14. 数组的 length() 方法:数组有 length 属性,不是方法。String 有 length() 方法,返回字符串的字符数量。 15. Overload 和 Override:重载(Overload)是同一个类中方法名称相同但参数列表不同的方法,返回类型可以不同。重写(Override)是子类对父类方法名称、参数列表完全相同,返回类型和权限不能低于父类。 16. Set 中的比较:Set 中的元素通过 equals() 方法判断是否重复,而不是 ==,因为 == 比较的是对象引用,equals() 比较的是对象内容。 17. 常见的运行时异常:NullPointerException、ArrayIndexOutOfBoundsException、IOException 等。 18. error 和 exception:Error 表示系统级错误,无法恢复,如 OutOfMemoryError;Exception 是程序可以处理的异常,可以通过 try-catch 进行捕获。 19. List, Set, Map 与 Collection:List 和 Set 继承自 Collection,Map 不是。 20. abstract class 和 interface:抽象类可以有构造器、字段和方法(包括非抽象方法),可以有初始化块。接口只有方法声明,不能有方法实现,不能有字段(只能是常量),不能有初始化块。 21. abstract, static, native, synchronized 结合:abstract 方法不能是 static 或 native,因为它们是声明方法的实现方式。abstract 也不能是 synchronized,因为抽象方法没有具体实现。 22. 接口继承接口,抽象类实现接口,抽象类继承实体类:Java 中接口可以继承接口,抽象类可以实现接口,抽象类也可以继承实体类。 23. 启动线程:用 start() 方法启动线程,run() 方法是线程执行体。 24. 构造器不能被 override,因为构造器的访问级别总是与类相同,不能更改为 public 或 protected。 25. 不能继承 String 类,因为 String 类被声明为 final。 26. 当一个线程进入 synchronized 方法后,其他线程无法进入该对象的其他 synchronized 方法,除非获取到锁。 27. try-finally 语句:finally 代码块总会执行,无论是否遇到 return。return 语句先执行,finally 代码块后执行。 28. 计算 2 乘以 8:直接返回 2 * 8 即可,因为这是静态计算。 29. 相同对象的 hash code:可能不同。两个对象相等(equals() 返回 true),但 hash code 不一定相同,违反 equals 的约定,可能导致哈希表问题。 30. 参数传递:Java 中所有参数传递都是值传递,但对象参数传递的是引用的副本,所以对象的属性可以被改变。 31. switch 用法:switch 可以作用在 byte, short, char, int,枚举类型,以及从 Java 7 开始的 String 类型上。 32. 单例模式:保证一个类只有一个实例,常见的实现方式有饿汉式、懒汉式、双重检查锁定等。 以上是 Java 程序员面试中常见的知识点,涵盖了基础语法、集合框架、多线程、异常处理等多个方面,是面试中常见的考察点。























- 粉丝: 70
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 杭州市权力阳光电子政务系统安全技术规范.doc
- 移动网北向接口技术规范基于技术的大数据量配置管理接口设计.doc
- 多绳摩擦式提升机恒减速制动系统安全调试.doc
- 电气专业考试改革方案及课程纲要工业电气自动化.doc
- 一张图5种photoshop扣图方法(实例教程).docx
- 银行防范治理电信网络新型违法犯罪典型案例.pdf
- 基于Android的手机应用开发连连看游戏的开发与实现毕业论文.doc
- 项目管理自测作业答案样本.doc
- 算法与程序框图汇总(20211130142852).pdf
- 人教版:《21.3广播、电视和移动通信》.ppt
- 高温气冷实验堆项目管理系统的框架设计.doc
- 人脸识别:一种简单的特征提取算法.ppt
- 竞争性谈判采购洛阳职业技术学院解剖软件系统.doc
- 网络营销策划工作总结及工作计划建议.docx
- 多媒体计算机教室建设方案培训资料.doc
- 推行节能环保施工提高群体项目管理水平.doc


