JAVA面试常见问题解析:访问修饰符、匿名内部类与更多
需积分: 3 166 浏览量
更新于2024-09-15
收藏 73KB TXT 举报
"JAVA面试题149例包含了一系列关于Java编程语言的关键知识点,包括访问修饰符的作用域、匿名内部类的特性、静态与非静态嵌套类的区别、逻辑运算符的使用、集合框架中的Collection和Collections的区别、断言的使用、字符串的创建、数学函数的运用、数据类型转换、跳转语句的缺失以及方法的重载和覆盖等。"
1. 访问修饰符的区别:
Java中的访问修饰符有public、private、protected和friendly(默认)。public成员在任何地方都可访问;protected成员在同包和子类中可访问;friendly(默认)仅在同包内可访问;private成员仅在当前类中可访问。
2. 匿名内部类:
匿名内部类没有名字,它可以实现接口,但不能继承其他类。这种特性使得它常用于简洁地实现回调或事件监听器。
3. 静态与非静态嵌套类:
静态嵌套类(Static Nested Class)类似于普通类,可以直接通过类名访问,而无需外部类的实例。非静态嵌套类(Inner Class)与外部类有紧密的关联,需要外部类的实例才能创建。
4. 逻辑运算符:
"&"表示按位与,用于处理二进制位;"&&"表示逻辑与,只有当两边的操作数都为真时,结果才为真。
5. Collection与Collections:
Collection是Java集合框架的顶层接口,代表一组对象的集合,而Collections是针对集合操作的工具类,提供了各种实用方法,如排序、查找、填充等。
6. 断言(Assertion):
断言主要用于测试,通过`assert`关键字来检查程序状态。在默认情况下,断言是关闭的,需要通过启动参数开启。如果断言语句的条件为假,程序将抛出AssertionError。
7. 字符串创建:
`new String("xyz")`会创建一个新的字符串对象,即使传入的字符序列已经在常量池中存在。而字符串字面量 `"xyz"` 是共享的,多次引用不会创建新对象。
8. Math.round方法:
Math.round方法将浮点数四舍五入为最接近的整数。对于正数,Math.round(11.5)返回12,负数则返回其下界,即Math.round(-11.5)返回-11。
9. 数据类型的自动提升:
在进行短整型(short)变量加法时,`s1=s1+1`会导致中间结果转换为int类型,因此需要显式转换回short,即`s1=(short)(s1+1)`。而`s1+=1`则会自动处理类型提升。
10. Java中没有goto语句:
Java设计时摒弃了goto,以支持更清晰、更安全的控制流。
11. length属性:
数组有length属性,字符串有length()方法。数组的length是属性,可以直接访问;字符串的length()是方法,需要调用。
12. 方法的重载(Overloading)与覆盖(Overriding):
方法重载发生在同一类中,通过不同的参数列表定义多个同名方法。方法覆盖发生在子类中,子类方法与父类方法具有相同的名称、返回类型和参数列表,且访问权限不低于父类。
这些面试题涵盖了Java编程的核心概念和技术,对于准备Java面试或深化对Java理解非常有帮助。
163 浏览量
2012-04-17 上传
2022-06-11 上传
2022-06-11 上传
2022-06-11 上传
2010-05-27 上传
279 浏览量
2023-04-21 上传
2016-05-31 上传
hjy296
- 粉丝: 0
- 资源: 1
最新资源
- 构建基于Django和Stripe的SaaS应用教程
- Symfony2框架打造的RESTful问答系统icare-server
- 蓝桥杯Python试题解析与答案题库
- Go语言实现NWA到WAV文件格式转换工具
- 基于Django的医患管理系统应用
- Jenkins工作流插件开发指南:支持Workflow Python模块
- Java红酒网站项目源码解析与系统开源介绍
- Underworld Exporter资产定义文件详解
- Java版Crash Bandicoot资源库:逆向工程与源码分享
- Spring Boot Starter 自动IP计数功能实现指南
- 我的世界牛顿物理学模组深入解析
- STM32单片机工程创建详解与模板应用
- GDG堪萨斯城代码实验室:离子与火力基地示例应用
- Android Capstone项目:实现Potlatch服务器与OAuth2.0认证
- Cbit类:简化计算封装与异步任务处理
- Java8兼容的FullContact API Java客户端库介绍