这份PDF文档包含了针对Android开发者的Java编程语言笔试题目及其参考答案,适合用于备考和自我检测。
这份“androidjava笔试题(带大部分答案).pdf”包含了多个关于Android和Java编程的基础题目,主要涉及字符串操作、循环控制、继承与权限修饰符、内部类的实例化、方法参数传递以及接口继承等方面的知识点。
1. 题目1:
```java
public class Test1 {
public static void changeStr(String str) {
str = welcome;
}
public static void main(String[] args) {
String str = 1234;
changeStr(str);
System.out.println(str);
}
}
```
输出结果:“1234”。此题考察的是Java中字符串的不可变性。`changeStr`方法尝试改变str的值,但实际并未改变原字符串对象,因为String是不可变的,所以`str = welcome`只是创建了一个新的字符串对象,并未影响到main方法中的str。
2. 题目2:
```java
public class Test2 {
static boolean foo(char c) {
System.out.print(c);
return true;
}
public static void main(String[] argv) {
int i = 0;
for (foo(A); foo(B) && (i < 2); foo(C)) {
i++;
foo(D);
}
}
}
```
输出结果:“ABDCBDCB”。此题考察的是Java的循环控制。在for循环中,条件判断部分的`foo(B) && (i < 2)`会在每次循环开始前检查,`foo(B)`会先输出B,如果返回true则继续执行循环,因此会有两次B的输出。
3. 题目3:
在A的扩展类中,哪些方法是正确的?(选择两个)
A. `public int method1(int a, int b) { return 0; }`
D. `public short method1(int a, int b) { return 0; }`
选项A是正确的,因为它保持了与父类`A`的`method1`相同的方法签名。选项D也是正确的,虽然返回类型由int变为short,但这在Java中是兼容的,因为short可以隐式转换为int。
4. 题目4:
```java
public class Outer {
public void someOuterMethod() { Line 3 }
public class Inner {}
public static void main(String[] args) {
Outer o = new Outer(); Line 8
}
}
```
下列哪个对`Inner`类实例化的描述是正确的?
D. `new Outer.Inner(); At line 8`
在Java中,内部类的实例化需要通过其外部类来完成,因此正确的方式是在Line 8处使用`new Outer().new Inner()`。选项D是简写形式,等同于这个表达式。
5. 题目5:
```java
public class Something {
public static void main(String[] args) {
Other o = new Other();
new Something().addOne(o);
}
public void addOne(final Other o) {
o.i++;
}
}
class Other {
public int i;
}
```
这个程序是正确的。`addOne`方法中的`o`被声明为`final`,意味着在方法内不能重新赋值,但仍然可以修改`o`的属性`i`。
6. 题目6:
```java
interface Playable { void play(); }
interface Bounceable { void play(); }
interface Rollable extends Playable, Bounceable {
Ball ball = new Ball(PingPang);
}
class Ball implements Rollable {
private String name;
public String getName() { return name; }
public Ball(String name) { this.name = name; }
public void play() {
ball = new Ball(Football);
System.out.println(ball.getName());
}
}
```
这个程序不正确。在接口`Rollable`中定义的`ball`变量试图初始化一个`Ball`对象,但是`Ball`类实现`Rollable`,形成了一个循环依赖。此外,接口不能包含实例变量或非静态初始化块,只能包含常量(final static)。
总结以上题目涵盖了Java基础语法、面向对象特性、循环控制、继承与多态、内部类和接口等多个关键知识点,是评估开发者基本编程技能的有效工具。对于准备Android或Java面试的人来说,这些题目是很好的练习材料。