1).public void add(int a,String b){
}
请分别解释public ,void ,add ,int a ,String b是什么意思.
2).分别以两种方式初始化一个静态的String类型数组.
int a[] ;
a = new int[3] ;
a[0] = 0 ;
a[1] = 1 ;
a[2] = 2 ;
//静态初始化数组:方法一
String cats[] = new String[] {
"Tom","Sam","Mimi"
};
//静态初始化数组:方法二
String dogs[] = {"Jimmy","Gougou","Doggy"};
3).如要初始化int a=3;如何从控制台如何输入、并输出a的值,尝试写出关键代码或者关键方法名.
4).读程序,写出下面程序的运行结果.
String str1 = "hello";
String str2 = "he" + new String("llo");
System.out.println(str1 == str2);
5).分析下面程序,写出?的值
String []a = new String[10];
则:a[0]~a[9]=?
a.length=?
如果是int []a = new int[10];
则:a[0]~a[9]=?
length=?
6).简述abstract和interface的区别在哪?
public abstract class 车
{
public int 轮子;
public abstract void 移动();
}
这个抽象类就声明了所有的车应有的特征(如轮子)和行为(如移动)。之后你就可以扩展(extend)这个抽象类,只要是车,就可以,还有你可以在子类(subclass)中加入自己的特征,如
public class 跑车 extends 车
{
public void 移动()
{
System.out.println("我在移动");
}
public void 引擎类型() //属于自己(跑车)的行为
{
System.out.println("高级引擎");
}
轮子=4;
}
public class 自行车 extends 车
{
public void 移动()
{
System.out.println("我在移动");
}
public void 爆胎() //属于自己(自行车)的行为
{
System.out.println("我走不动了");
}
轮子=2;
}
Interface 则用来定义一个协议,所有的方法都可以实现它。一个Interface定义了方法,和最终静态(final static)变量,所有实现这个Interface的都要保证实现的东西与这个Interface 定义的行为一致。使用Interface可以让Object(对象)在一定的规范下沟通。
如
public interface TCP协议
{
public void 打开端口();
public void 关闭端口();
}
这样的话,只要实现这个Interface的都可以使用这两个方法交流。
在 Java平台里,它们主要有3个不同点:
1。一个类(Class)只能继承一个超类(Super class),但是可以实现多个Interface。
2。在Abstract Class内,你可以有不抽象(Abstract)的方法,即有意义的方法,但Interface不行。
如
public abstract class 车
{
public int 轮子;
public abstract void 移动();
public String 我是什么()
{
return "车子";
}
}
7).简述extends和implements关键字有何区别?
Interface不属于 继承范围。即不可能成为超类(Super Class)
子类通过extends关键字来继承抽象类(且只能继承一个);
类通过implements关键字来实现接口(可以实现多个)。
8).InputStream(输入)/OutputStream(输出)和Reader(输入)/Writer(输出)哪个是字节流、哪个是字符流?哪个可以存储图片信息?
InputStream(输入)/OutputStream(输出)为后缀的是字节流;
以Reader(输入)/Writer(输出)为后缀的是字符流。
9).下面代码的运行结果为:()
import java.io.*;
import java.util.*;
public class foo{
public static void main (String[] args){
String s;
System.out.println("s=" + s);
}
}
A 代码得到编译,并输出“s=”
B 代码得到编译,并输出“s=null”
C 由于String s没有初始化,代码不能编译通过
D 代码得到编译,但捕获到 NullPointException异常
答案:C
解析:开始以为会输出null什么的,运行后才发现Java中所有定义的基本类型或对象都必须初始化才能输出值。
10). System.out.println("5" + 2);的输出结果应该是()。
A.52 B.7 C.2 D.5
11).输出程序的打印结果
public class Example {
String str = new String("good");
char[] ch = { 'a', 'b', 'c' };
public static void main(String args[]) {
Example ex = new Example();
ex.change(ex.str, ex.ch);
System.out.print(ex.str + " and ");
System.out.println(ex.ch);
System.out.println(ex.str + " and " +ex.ch);
}
public void change(String str, char ch[]) {
str = "test ok";
ch[0] = 'g';
}
}
打印good and gbc
good and [C@1e57e8f
12).改错题
public class Something {
void doSomething () {
private String s = "";
int l = s.length();
}
}
有错吗? 答案: 错。局部变量前不能放置任何访问修饰符 (private,public,和protected)。final可以用来修饰局部变量 (final如同abstract和strictfp,都是非访问修饰符,strictfp只能修饰class和method而非variable)
13). 输出程序的打印结果
public class FatherClass {
public FatherClass() {
System.out.println("FatherClass Create");
}
}
public class ChildClass extends FatherClass {
public ChildClass() {
System.out.println("ChildClass Create");
}
public static void main(String[] args) {
FatherClass fc = new FatherClass();
ChildClass cc = new ChildClass();
}
}
输出结果: FatherClass Create FatherClass Create ChildClass Create