华为Java面试试题解析
需积分: 9 163 浏览量
更新于2024-09-15
1
收藏 32KB DOC 举报
"华为java面试题,包含选择题和代码分析,涉及字符串、循环、方法重写与访问控制等Java核心概念。"
在华为的Java面试中,常常会考察候选人的基础知识掌握情况和问题解决能力。以下是对给定面试题的详细解析:
1. 题目1是一个关于字符串不变性的例子。在Java中,字符串是不可变对象,意味着一旦创建,其内容不能更改。`changeStr`方法尝试改变传递的`str`变量,但实际操作的是该字符串的引用,而不是对象本身。因此,`str='welcome';`这条语句并没有改变`main`方法中的`str`,它仍然是指向'1234'的引用。所以输出结果是:
```
1234
```
2. 题目2考察了循环控制和方法调用。这是一个嵌套的条件循环,`for`循环条件由三部分组成:`foo('A')`、`foo('B')`和`(i<2)`。`foo`方法返回`true`并打印字符。首先执行`foo('A')`,然后检查`foo('B')`和`i<2`,如果都为真,则进入循环体。循环体内的`i++`使`i`在第二次迭代时变为1,导致在第二次迭代时`(i<2)`不再为真,循环结束。因此,输出结果是:
```
ABCB
```
3. 题目3考察了Java的继承和方法重写时的访问权限。类A中有一个受保护的方法`method1`。在扩展类A的类中,哪些方法是有效的?
A. `public int method1(int a, int b){return 0;}` - 正确,可以覆盖父类的受保护方法,并提高访问级别。
B. `private int method1(int a, int b){return 0;}` - 错误,不能降低访问级别。
C. `private int method1(int a, long b){return 0;}` - 错误,虽然访问级别合适,但方法签名必须保持一致。
D. `public short method1(int a, int b){return 0;}` - 正确,可以改变返回类型,只要兼容原来的返回类型。
E. `static protected int method1(int a, int b){return 0;}` - 错误,静态方法不能覆盖非静态方法。
所以,正确答案是A和D。
4. 题目4涉及到内部类(Inner Class)和外部类(Outer Class)。题目描述不完整,但通常,内部类可以访问外部类的所有成员,包括私有成员。在Line3处,可能的问题是访问外部类的私有方法或变量,或者创建内部类的实例。正确答案取决于Line3的具体内容,但常见的可能是`new Inner()`来创建内部类实例,或者调用外部类的私有方法。
这些题目反映了Java编程的核心概念,包括字符串的不可变性、循环控制、方法重写以及访问控制。在面试中,理解这些基本概念的原理和应用是非常关键的。
2009-08-02 上传
433 浏览量
2012-05-16 上传
2012-11-29 上传
2011-04-26 上传
2011-11-09 上传
2011-07-26 上传
xdjm_yy
- 粉丝: 0
- 资源: 2
最新资源
- Android圆角进度条控件的设计与应用
- mui框架实现带侧边栏的响应式布局
- Android仿知乎横线直线进度条实现教程
- SSM选课系统实现:Spring+SpringMVC+MyBatis源码剖析
- 使用JavaScript开发的流星待办事项应用
- Google Code Jam 2015竞赛回顾与Java编程实践
- Angular 2与NW.js集成:通过Webpack和Gulp构建环境详解
- OneDayTripPlanner:数字化城市旅游活动规划助手
- TinySTM 轻量级原子操作库的详细介绍与安装指南
- 模拟PHP序列化:JavaScript实现序列化与反序列化技术
- ***进销存系统全面功能介绍与开发指南
- 掌握Clojure命名空间的正确重新加载技巧
- 免费获取VMD模态分解Matlab源代码与案例数据
- BuglyEasyToUnity最新更新优化:简化Unity开发者接入流程
- Android学生俱乐部项目任务2解析与实践
- 掌握Elixir语言构建高效分布式网络爬虫