JAVA习题大全
目录
JAVA习题大全
期末考试复习题一
期末复习题二
期末考试复习题三
期末复习题四
期末考试复习题一
《Java语言程序设计》期末试卷(答案在下面)
一.判断题(每题1分,共10分)
- Java的各种数据类型占用的内存长度固定,与具体软硬件环境无关。 (√)
- 无论Java源程序包含几个类的定义,若该源程序文件以B.java命名,编译后生成的都只有一个名为B.class的字节码文件。 (×)
- 静态初始化器是在其所属的类加载内存时由系统自动调用执行的方法。 (×)
- 即使一个类中未显式定义构造函数,也会有一个缺省的构造函数,缺省的构造函数是无参函数,函数体为空。 (√)
- 在Java的方法中定义一个常量要用const关键字。 (×)
- abstract方法所在的类必须是abstract类。 (√)
- 在异常处理中总是将可能产生异常的语句放在try块中,用catch子句去处理异常,而且一个try块之后只能对应一个catch语句。 (×)
- Applet是一种特殊的Panel,它是Java Applet程序的最外层容器。 (√)
- Java语言中的数组元素下标总是从0开始,下标可以是整数或整型表达式。 (√)
10.个线程对象的具体操作是由run()方法的内容确定的,但是Thread类的run()方法是空的,其中没有内容;所以用户程序要么派生一个Thread的子类并在子类里重新定义run()方法,要么使一个类实现Runnable接口并书写其中run()方法的方法体。 (√)
二.单项选择题(每题2分,共40分)
1.编译Java Applet 源程序文件产生的字节码文件的扩展名为( )。
A、java B、class C、html D、exe
2.以下哪个不是Java的原始数据类型?( )
A、boolean B、double C、float D、Integer
3.以下哪个方法用于定义线程的执行体?( )
A、 start() B、init() C、run() D、synchronized()
4.下面哪个不是Java中的容器?( )
A、 ScrollPane B、Canvas C、Applet D、Dialog
5.下面哪个方法与applet的显示无关?( )
A、draw() B、 update() C、repaint() D、paint()
6.当Frame改变大小时,放在其中的按钮大小不变,则使用如下哪种布局方式?( )
A、 FlowLayout B、CardLayout C、BorderLayout D、GridLayout
7.以下代码完成画线功能,指出所画线的颜色( )
1.g.setColor(Color.red.green.cyan.yello);
2.g.drawLine(0,0,100,100);
A、red B、green C、yello D、cyan
8.在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数个数、类型或顺序各不相同,传回的值也可以不相同。这种面向对象程序的特性称为( )。
A、隐藏 B、覆盖 C、重载 D、Java不支持此特性
9.有如下代码段:
1)
2) { if(unsafe()){//do something…}
3) else if(safe()){//do the other…}
4) }
其中,方法unsafe() 将抛出IOException, 请问可将以下哪项填入第1行?( )
A、public IOException methodName()
B、public void methodName()
C、public void methodName() throw IOException
D、public void methodName() throws IOException
10.以下哪个关键字可以用来对对象加互斥锁?( )
A、transient B、synchronized C、 serialize D、static
11.以下关于继承的叙述正确的是( )。
A、在Java中类不允许多继承
B、在Java中一个类只能实现一个接口
C、在Java中一个类不能同时继承一个类和实现一个接口
D、在Java中接口只允许单一继承
12.在使用interface声明一个接口时,只可以使用( )修饰符修饰该接口。
A、private B、protected C、private protected D、public
13.编译并运行以下程序,以下描述哪个选项是正确的?( )
1. class A{
2. protected boolean equals(){
3. return super.equals();}
4. }
A、编译通过运行无异常 B、编译通过但运行时出错
C、行2出错,不能成功编译 D、不能成功编译,行3出错
14.Java的字符类型采用的是Unicode编码方案,每个Unicode码占用( )个比特位。
A、8 B、16 C、32 D、64
15.在编写Java Applet程序时,若需要对发生的事件作出响应和处理,一般需要在程序的开头写上( )语句。
A、import java.awt.* ; B、import java.applet.* ;
C、import java.io.* ; D、import java.awt.event.* ;
16.以下关于构造函数的描述错误的是( )。
A、构造函数的返回类型只能是void型。
B、构造函数是类的一种特殊函数,它的方法名必须与类名相同。
C、构造函数的主要作用是完成对类的对象的初始化工作。
D、一般在创建新对象时,系统会自动调用构造函数。
17.有程序如下,关于程序的描述哪个是正确的?( )
public class Person{
static int arr[] = new int[10];
public static void main(String a[])
{ System.out.println(arr[1]); }
}
A、编译将产生错误 B、编译时正确,但运行时将产生错误
C、正确,输出0 D、正确,输出 null
18.、A派生出子类B ,B派生出子类C,并且在Java源代码中有如下声明:
- A a0=new A();
- A a1 =new B();
- A a2=new C();
问以下哪个说法是正确的?( )
A、只有第1行能通过编译
B、第1、2行能通过编译,但第3行编译出错
C、第1、2、3行能通过编译,但第2、3行运行时出错
D、第1行、第2行和第3行的声明都是正确的
19.有语句String s=”hello world”; ,以下操作哪个是不合法的?( )
A、int i=s.length(); B、s>>>=3; C、String ts=s.trim(); D、String t=s+”!”;
20.给出如下代码:
class Test{
private int m;
public static void fun() {
// some code...
}
}
如何使成员变量m 被函数fun()直接访问?( )
A、将private int m 改为protected int m
B、将private int m 改为 public int m
C、将private int m 改为 static int m
D、将private int m 改为 int m
三.程序阅读题(每题4分,共40分)
1.写出以下程序的运行结果。
public class Test
{ public static void main(String[] args)
{ ClassB cb1=new ClassB(1);
ClassB cb2=new ClassB(1);
if(cb1==cb2){ System.out.println("cb1==cb2"); }
else{ System.out.println("cb1!=cb2"); } }
}
class ClassB
{ int x;
ClassB(int x){this.x=x; }
}
cb1!=cb2
2.写出以下程序的运行结果。
public class TestArray
{ public static void main(String args[ ]){
int i , j ;
int a[ ] = {1,3,2,5,4};
for ( i = 0 ; i < a.length-1; i ++ ) {
int k = i;
for ( j = i ; j < a.length ; j++ )
if ( a[j]>a[k] ) k = j;
int temp =a[i];
a[i] = a[k];
a[k] = temp; }
for ( i =0 ; i<a.length; i++ )
System.out.print(a[i]+" ");
System.out.println( ); }
}
5 4 3 2 1
3.写出以下程序的功能。
import java.io.*;
class FileIODemo{
public static void main(String[ ] args) throws IOException{
int b;
FileInputStream fileIn=new FileInputStream(“test.java”);
while((b=fileIn.read())!=-1){
System.out.print((char)b); } }
}
在屏幕上输出test.java文件的内容
4.阅读以下程序:
class Test4
{ public static void main(String[] args)
{ String s;
char c;
int upper,lower;
upper=lower=0;
s=args[0];
for (int i=0;i<s.length();i++)
{ c=s.charAt(i);
if(c>='a' && c<='z') lower++;
if(c>='A' && c<='Z') upper++; }
System.out.println(upper+”,”+lower); }
}
若在命令行输入:java Test4 hotJAVA,则输出为 。
4,3
5.写出以下程序的运行结果。
import java.util.*;
public class Vec{
public static void main(String[] args) {
String[] s;
s=new String[2];
s[0]=new String("str1");
s[1]=new String("str2");
Vector v = new Vector();
for(int i = 0; i <2; i++) v.addElement(s[i]);
v.insertElementAt(new String("str0"),0);
Enumeration e = v.elements();
while(e.hasMoreElements()) System.out.print(e.nextElement()+" ");
System.out.println();
v.removeElement("str1" );
for(int i = 0; i < v.size() ; i++) System.out.print(v.elementAt(i) +" ");
System.out.println(); }
}
str0 str1 str2 str0 str2
6.写出以下程序的运行结果。
class OverloadDemo{
void testOverload( int i ){
System.out.println(“int”); }
void testOverload(String s){
System.out.println(“String”); }
public static void main(String args[ ]){
OverloadDemo a=new OverloadDemo ( );
char ch=’x’;
a.testOverload(ch); }
}
int
7.阅读以下程序,写出输出结果。
class First{
public First(){
aMethod(); }
public void aMethod(){
System.out.println(“in First class”);}
}
public class Second extends First{
public void aMethod(){
System.out.println(“in Second class”);}
public static void main(String[ ] args){
new Second( ); }
}
in Second class
8.写出以下程序的运行结果。
import java.io.*;
public class UseLabel
{ public static void main(String[] args)
{Loop:
for(int i=2; i<10; i++)
{ for(int j=2;j<i;j++)
if( i%j == 0) continue Loop;
System.out.print(i+" "); } }
}
2 3 5 7
9.写出以下程序的运行结果。
class MyException extends Exception{
private int detail;
MyException( int a ){ detail = a;}
public String toString( ){ return "MyException "+detail; }
}
public class ExceptionDemo{
public static void compute(int a) throws MyException {
System.out.println("called compute("+a+")");
if( a>10 ) throw new MyException(a);
System.out.println("normal exit"); }
public static void main( String args[] ){
try{ compute(6 ); compute( 12 ); }
catch( MyException e ){ System.out.println("Caught "+e); } }
}
10.写出以下程序的运行结果。
class StaticTest {
static int x=1;
int y;
StaticTest()
{ y++; }
public static void main(String args[ ]){
StaticTest st=new StaticTest();
System.out.println("x=" + x);
System.out.println("st.y=" + st.y);
st=new StaticTest();
System.out.println("st.y=" + st.y); }
static { x++;}
}
x=2 st.y=1 st.y=1
四.编程题(共10分)
编写一个完整的Java Application 程序。包含接口ShapeArea,类Circle、Rectangle、Test,具体要求如下:
⑴接口ShapeArea:
①接口方法
double getArea():求一个形状的面积
double getPerimeter ():求一个形状的周长
⑵类Rectangle:
实现ShapeArea接口,并有以下属性和方法:
- 属性
width: double型,表示长方形的宽度
height:double型,表示长方形的长度
- 方法
Rectangle(double w, double h):构造函数
toString():输出矩形的描述信息,如“width=1.0,height=2.0,perimeter=6.0,area=2.0”
⑶Test类作为主类要完成测试功能
- 生成Rectangle对象
- 调用对象的toString方法,输出对象的描述信息
public class Test{ //主类定义2分
public static void main(String args[])
{ Rectangle r=new Rectangle(1,2);
System.out.println(r.toString()); }
}
interface ShapeArea //接口定义2分
{ public abstract double getPerimeter();
public abstract double getArea();
}
class Rectangle implements ShapeArea{
double width, height; //属性定义1分
Rectangle(double w, double h) //构造函数定义1分
{ width=w; height=h; }
public double getPerimeter() //1分
{ return 2*( width+height);}
public double getArea() //1分
{ return width*height; }
public String toString() //2分
{ return "width="+width+",height="+height+
",perimeter="+getPerimeter()+",area="+getArea();
}
}
判断题(每题1分,共10分)
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
√ | × | × | √ | × | √ | × | √ | √ | √ |
单项选择题(每题2分,共40分)
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
B | D | C | B | A | A | C | C | D | B |
11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |
A | D | C | B | D | A | C | D | B | C |
程序阅读题(每题4分,共40分)
1 | cb1!=cb2 | 6 | int |
2 | 5 4 3 2 1 | 7 | in Second class |
3 | 在屏幕上输出test.java文件的内容 | 8 | 2 3 5 7 |
4 | 4,3 | 9 | called compute(1) normal exit called compute(20) Caught MyException 20 |
5 | str0 str1 str2 str0 str2 | 10 | x=2 st.y=1 st.y=1 |
编程题(共10分)
public class Test{ //主类定义2分
public static void main(String args[])
{ Rectangle r=new Rectangle(1,2);
System.out.println(r.toString()); }
}
interface ShapeArea //接口定义2分
{ public abstract double getPerimeter();
public abstract double getArea();
}
class Rectangle implements ShapeArea{
double width, height; //属性定义1分
Rectangle(double w, double h) //构造函数定义1分
{ width=w; height=h; }
public double getPerimeter() //1分
{ return 2*( width+height);}
public double getArea() //1分
{ return width*height; }
public String toString() //2分
{ return "width="+width+",height="+height+
",perimeter="+getPerimeter()+",area="+getArea();
}
}
期末复习题二
1、Java程序中标识符的基本规则是?
对标识符的约定:(1)变量名、对象名、方法名、报名等标识符全部采用小写字母;如果标识符由多个单词构成,则首字母小写,其后单词的首字母大写,其余字母小写,如getAge。(2)类名首字母大写。(3)常量名全部字母大写。
2、类的成员组成?接口是否为类的成员?
类的成员包括域变量和成员方法,对于域变量和成员方法都可以用static来修饰,static修饰的域变量称为类变量,static修饰的方法称为类方法,没有被static修饰的域变量和成员方法称为实例变量(可以在程序中直接调用)和实例方法。接口不是类的成员,是一种特殊的类,不用class,而用interface。
3.关于类的正确表述
答:面向对象的类具有三个基本特性:封装性、继承性和多态性。Java程序以类为单位进行组织。
4、关于注释的写法和作用?
// 单行注释
/*…………*/ 多行注释
5.final,static,abstract关键字的用法?
答: 1)final关键字可以用来修饰类、类的成员域和类的成员方法。当用来 修饰类时,则该类不能派生子类,即该类不能成为父类。当类的成员域具有final属性时,该成员域只能在定义时赋值,而且之后就不能修改该成员域的值了。如果具有final属性的成员域在声明时没有赋值,则在类的构造方法中可以给该成员域赋初值,而且只能赋初值一次。当类的成员方法具有final属性时,其子类就不能覆盖该成员方法,即子类中不能出现与该成员方法相同的声明。
2)当给类的成员加上静态属性(static)后,该成员就属于类了。
3)利用abstract使一个类或方法具有抽象的属性,定义抽象类。
6、举例说明接口和抽象类的定义
答:
interface Vehicle{} 接口里可以定义常量和一系列的抽象方法,凡是实现接口的类必须实现接口里定义的所有的抽象方法。
abstract class Shape{} 抽象类里至少要定义一个抽象方法,抽象类不能用来声明实例。
7、控制封装性的四个访问修饰符是什么?封装严格程序的顺序是什么?给出类成员访问控制模式以及方法
答:控制封装性的四个访问修饰符是:public、protected、default、private
封装严格程序的顺序是private>default>protected>public
访问控制模式
| 在同一个类内
| 在同一个包内
| 子类
| 所有类
|
公共模式(public)
| 允许访问
| 允许访问
| 允许访问
| 允许访问
|
保护模式(protected)
| 允许访问
| 允许访问
| 允许访问
|
|
默认模式(default)
| 允许访问
| 允许访问
|
|
|
私有模式(private)
| 允许访问
|
|
|
|
8、什么是类变量,类变量和实例变量得区别
类变量可用“类名.变量名”的方式访问,类变量对所有实例只有一个拷贝。实例变量需要先声明一个类的实例,可用“实例名.变量名”的方式访问。
类方法可用“类名.方法名”的方式访问,不需要声明类的实例,而实例方法必须先声明一个类的实例,然后用“实例名.方法名”的方式访问。
9、什么是构造方法?构造方法和普通成员方法的区别?何时系统会提供默认的构造方法?new的作用是什么?
答:1、构造方法主要用来创建类的实例。
2、区别:第一是构造方法名必须与类名相同,第二是构造方法在声明时不能写上返回任何类型,第三
3、如果没有显式地定义类的构造方法,则系统会为该类定义一个默认的构造方法。
4、New用来调用构造方法对实例进行初始化,在内存中申请一块区域,将相关数据拷贝到该内存空间中,并将内存区域的首地址返回。引用变量的值是实例在内存中的首地址。
10、什么是多态性?重载与覆盖分别是什么多态性?他们之间的区别是什么?
多态性是指用一个名字定义不同的函数,这函数执行不同但又类似的操作,从而实现“一个接口,多种方法”。
重载,静态多态性
覆盖,动态多态性
重载:这是由于该方法被调用时采用静态地址充定位方式。
覆盖: 这是由于该方法只有在运行时才能确定所调用的地址(也是多态性)。
11、字符串的定义方法?
字符串可以看成是由两个或两个以上字符
12、数组的定义?
数组是一组同类型的数据的集合,除了基本数据类型还包括引用数据类型,那么引用数据类型数组是如何声明、初始化和使用的。
15、实现线程类的两种方法是?Runnable接口有几个方法?
答:构造线程类的方式主要有两种,一种是通过构造类Thread的子类,另一种是通过构造实现接口Runnable的类。
16、面向对象编程中,java类的三个主要特征是?
三个主要特征:封装性、继承性和多态性
17、网络编程中的URL有几种组成部分?
答:网络资源定位器通常是由5个部分组成:协议(Protocol)、主机(Host)、端口号(Port)、文件(File)和引用(Reference)。
19、super和this关键字的用法
this:调用同一个类的成员域和成员方法,
格式:this .本类成员域 this.本类成员方法(参数表).
Super:子类调用父类方法,可以通过.xxx 调用父类中的成员域,成员方法。
格式:Super .父类成员域,Super.父类成员方法(参数表) Super(父类构造方法的调用参数表)
20、Swing组件与AWT组件的区别是什么?
- Swing组件是AWT组件的扩展更新版本;
- Swing组件的平台相关性较小,称为“轻量级”组件,AWT组件相关性较大,称为“重量级”组件。
- 什么是布局管理器?作用是什么?说出三种布局管理器及其特点。
布局管理器是用来管理各种组件 容器中摆放位置的对象;作用是将组件房子相应的位置,使容器中的组件安排更加合理,减少与系统平台的相关性;BorderLayout(边布局)类:把容器内的空间划分为东、西、南、北、中五个区域;FlowLayout(流式布局)类:从左到右排列;GridLayout(网格布局)类:从左到右从上到下的顺序依次放入各网格中(没个网格只能放一个组件)
22、什么是异常?为什么要处理异常?
异常是指程序运行过程中出现的非正常现象。由于异常情况总是难免的,良好的应用程序除了具备用户所要求的基本功能外,还应该具备预见并处理可发生的各种异常的功能。
23、异常的基本处理方式?常用的异常类有哪些?
两种处理方式:(1)一旦捕获异常马上进行处理。try,catch,finally
(2)捕获异常并不处理,而是利用方法将异常抛出,throw,throws
24、 Error和Exception类的区别?
Error是用来处理较少发生的系统内部的错误,程序员对这些错误通常无能为力,只能在发生时由用户按照提示来终止程序的运行。
25、 throw和throws语句的区别?
throw是抛出一个异常对象,如:throw new ××× Exception
throws是某一个方法在声明和定义时,这个方法后面紧跟着throws,然后阐明这个方法可能抛出异常,如:throws new ××× Exception 这个异常可以是标准异常类,也可以是自定义的异常类。
期末考试复习题三
1、“Java程序可以独立运行,不需要任何运行环境;”这句话是否正确?
答:否,需要JVM运行环境,java程序可以跨平台运行。
2、类的成员有哪些?接口是否是类的成员。
答:类的成员有域和方法,接口不是类的成员
3、控制封装性的四个访问修饰符是什么?封装严格程度的顺序是什么?给出类成员访问控制模式以及方式。
答:public protected default private
访问控制模式 | 同一个类内 | 同一个包内 | 子类 | 所有类 |
public | 允许 | 允许 | 允许 | 允许 |
protected | 允许 | 允许 | 允许 |
|
default | 允许 | 允许 |
|
|
private | 允许 |
|
|
|
4、面向对象编程的三个主要特点是什么?
答:封装、继承、多态
5、什么是接口?举例定义Vehicle 接口。什么是抽象类,举例定义抽象类Shape.
答:接口(interface)是使用interface关键字来代替class关键字的一种特殊的类。
成员方法: abstract,public
成员域: final,static,public
接口(interface)的三种形式:
仅有常量接口
常量和抽象方法接口
仅有抽象方法的接口
接口的作用:实现常量接口
实现共享的一组标准方法
实现多态性
interface Vehicle{public abstract void start();
public abstract void stop(); }
接口里可以定义常量和一系列的抽象方法,凡是实现接口的类必须实现接口里定义的所有的抽象方法。
abstract class Shape{public abstract void draw();} 抽象类里至少要定义一个抽象方法,抽象类不能用其自身的构造方法来声明实例。
6、说出final修饰类、方法和域变量的特点。
答:用final修饰的类不能有子类,方法不能在子类中覆盖,变量只能初始化时赋值。
7、类变量和实例变量的区别?类方法和实例方法的区别?
答:类变量可用“类名.变量名”的方式访问,类变量对所有实例只有一个拷贝。实例变量需要先声明一个类的实例,可用“实例名.变量名”的方式访问;类方法可用“类名.方法名”的方式访问,不需要声明类的实例,而实例方法必须先声明一个类的实例,然后用“实例名.方法名”的方式访问。
8、什么是构造方法?构造方法有什么作用?new有什么作用?引用变量(实例变量)与基本数据类型的变量的区别?
答:构造方法用来对成员域进行初始化。new用来在内存中申请一块区域,并将内存区域的首地址返回。
引用变量的值是实例对象在内存中的首地址。
基本数据类型的变量中存放基本数据类型的变量值。
9、 判断下列是否有错,如果有,给出正确形式:
(1)float x=16.3f;
(2)if(a>15);(多余)
(3)char[] c={‘1’,’2’};
(4)String [ ]str=new String[5];
(5)String [2]str={‘a’,’b’}; 【】不能有数值,用双引号
(6)public void setAge( myage){age=myage; return age;} void 不能有返回值,参数应指定数据类型。
(7)byte b=375; 溢出,375超出了字节型数据的取值范围
(8) Double d=15.3; 小写d
(9) Boolean b=null; 值只能是false、true
(10) String str=”I love java”; int a=str.charAt(2); int—>char ,charAt方法的返回值是字符型
10、异常处理的五个关键字是什么,写出四个常用的异常类。
答:关键字:try, catch, throw ,finally, throws
异常类:Exception,IOException,ArithmeticException,ClassNotFoundException, ArrayIndexOutOfBoundsException
11、给出下面运行结果
class Shape
{
public void draw(){System.out.println(“Shape is drawing”);}
}
class J_circle extends Shape
{
public void draw(){System.out.println(“Shape is drawing”);}
}
public class Test_Shape
{
public static void main(String [ ] args )
{
Shape c=new J_circle();
c.draw();
}
答:运行结果:
Circle is drawing
期末复习题四
- Java程序中标识符的基本规则是?
答:标识符是由Java字母和Java数字组成的除关键字、false、true、和null之外的字符序列,而且其首字母必须是Java字母。Java字母包括通常含义的字母(大写字母“A~Z”和小写字母“a~z”)、下划线(“_”)、美元符号(“$”)以及除了英语之外的其他相当于“字母”的字符(如汉字“猫”)。Java数字包括十个ASCII数字(“0~9”)。
2.类的成员组成?接口是否为类的成员?
答:类的成员包括:域变量(field)和成员方法(method)。接口不是类的成员。
3.关于类的正确表述
答:面向对象的类具有三个基本特性:封装性、继承性和多态性。Java程序以类为单位进行组织。
4.关于注释的正确写法
方法一: //
方法二: /**/
5.final,static,abstract关键字的用法?
答: 1)final关键字可以用来修饰类、类的成员域和类的成员方法。当用来 修饰类时,则该类不能派生子类,即该类不能成为父类。当类的成员域具有final属性时,该成员域只能在定义时赋值,而且之后就不能修改该成员域的值了。如果具有final属性的成员域在声明时没有赋值,则在类的构造方法中可以给该成员域赋初值,而且只能赋初值一次。当类的成员方法具有final属性时,其子类就不能覆盖该成员方法,即子类中不能出现与该成员方法相同的声明。
2)当给类的成员加上静态属性(static)后,该成员就属于类了。
3)利用abstract使一个类或方法具有抽象的属性,定义抽象类。
6.什么是构造方法?构造方法和普通成员方法的区别?何时系统会提供默认的构造方法?new的作用是什么?
答:1、构造方法主要用来创建类的实例。
2、区别:第一是构造方法名必须与类名相同,第二是构造方法在声明时不能写上返回任何类型,第三
3、如果没有显式地定义类的构造方法,则系统会为该类定义一个默认的构造方法。
4、New用来调用构造方法对实例进行初始化,在内存中申请一块区域,将相关数据拷贝到该内存空间中,并将内存区域的首地址返回。引用变量的值是实例在内存中的首地址。
7.举例说明接口和抽象类的定义
答:
interface Vehicle{} 接口里可以定义常量和一系列的抽象方法,凡是实现接口的类必须实现接口里定义的所有的抽象方法。
abstract class Shape{} 抽象类里至少要定义一个抽象方法,抽象类不能用来声明实例。
8.控制封装性的四个访问修饰符是什么?封装严格程序的顺序是什么?给出类成员访问控制模式以及方法
答:控制封装性的四个访问修饰符是:public、protected、default、private
封装严格程序的顺序是private>default>protected>public
访问控制模式
| 在同一个类内
| 在同一个包内
| 子类
| 所有类
|
公共模式(public)
| 允许访问
| 允许访问
| 允许访问
| 允许访问
|
保护模式(protected)
| 允许访问
| 允许访问
| 允许访问
|
|
默认模式(default)
| 允许访问
| 允许访问
|
|
|
私有模式(private)
| 允许访问
|
|
|
|
9.什么是类变量,类变量和实例变量得区别
类变量可用“类名.变量名”的方式访问,类变量对所有实例只有一个拷贝。实例变量需要先声明一个类的实例,可用“实例名.变量名”的方式访问。
类方法可用“类名.方法名”的方式访问,不需要声明类的实例,而实例方法必须先声明一个类的实例,然后用“实例名.方法名”的方式访问。
Sffdsdafsfddsfadfdfdsadfdsfafdsa
10.实现线程类的两种方法是?Runnable接口有几个方法?
答:构造线程类的方式主要有两种,一种是通过构造类Thread的子类,另一种是通过构造实现接口Runnable的类。
13.网络编程中的URL有几种组成部分?
答:网络资源定位器通常是由5个部分组成:协议(Protocol)、主机(Host)、端口号(Port)、文件(File)和引用(Reference)。
14.网络编程中TCP/IP协议和URL协议的区别
(不确定老师要的是什么, 下面答案是主要的区别,其实这两个东西根本没什么联系-_-!)
TCP/IP 是传输层的传输控制协议.是通过编写服务端和客户端,使它们实现通信的方式。
URL 是应用层的传输控制协议,通过编写客户端程序,实现调取公网上的文本资源.
15.super和this关键字的用法
this:调用同一个类的成员域和成员方法,
格式:this .本类成员域 this.本类成员方法(参数表).
Super:子类调用父类方法,可以通过.xxx 调用父类中的成员域,成员方法。
格式:Super .父类成员域,Super.父类成员方法(参数表) Super(父类构造方法的调用参数表)
16.字符串的定义方法
方法有两种,
法一: String name =”wangxijie”;
法二: String name = new String(“wangxijie”);
17.数组的定义方法
Int arr[] = new int[5];
Animal a1 = new Animal[10];//对象数组.
18.字符型输入输出流和字节输入输出流的常用类是什么?
字符输出: FileWriter BufferedWriter
字符输入: FileReader BufferedReader
字节输出: InputStream FileInputStream DataInputStream BufferedInputStream
字节输入: outputStream FileOutputStream DataOutputStream BufferedOutputStream
19.字符串String和String Buffer的区别?
分别有哪些常用类型?(不知道它说什么东西,老师自创的吧-_-!)
StringBuffer类用于值可以改变的字符串变量。String是不可以改变的字符串.
20.Java网络编程中服务器端程序中实现对客户端监听的方法是什么?
Accept();