第一大题、简答题(共30小题,满分100分)

说明:为方便期末复习,将简答题整理到这里

目录

1 、(3分)Java 中有几种方法可以实现一个线程?用什么关键字修饰同步方法 ?

2 、(3分)String和StringBuffer类的区别?

3 、(4分)简述集合中的List、Set、Map有什么特点和区别?

4 、(4分)在定义一个Java类型时,除访问控制修饰符外还有哪几种修饰符可以修饰一个成员方法?请写出各修饰符的意义和作用?

5 、(3分)Java线程编程中,run()方法的作用与start()方法的作用有什么不同?

6 、(4分)线程的调度方法sleep()和wait()方法有什么区别?

7 、(4分)什么是多态?

8 、(3分)线程的控制方法sleep()和wait()有什么区别 ?   

9 、(3分)float和Float的区别是什么?

10 、(3分)简述JRE与JDK的区别?

11 、(3分)什么是流?流式输入输出有什么特点?

12 、(3分)Java流被分为字节流和字符流,两者有什么区别?

13 、(4分)为了读当前目录下的文件"data.in",请你写出满足如下要求的输入流创建代码,不要求编写处理异常代码。(1)使用BufferedInputStream进行读取数据;(2)使用BufferedReader进行读取数据;

14 、(3分)简述Java类的构造方法特点?如何定义构造方法?

15 、(3分)Thread和Runnable有什么不同?

16 、(3分)抽象类与接口的区别有哪些?

17 、(4分)Java的集合类型中单列集合List和Set有什么特点?写出他们的子类各两个。

18 、(3分)简要叙述int和Integer的区别。

19 、(4分)在java中创建线程有哪几种方式,并分别进行简述一下?

20 、(3分)简述Java语言的异常处理机制的优点?

21 、(3分)给方法传递数组参数与传递基本数据类型变量的值有何不同?

22 、(3分)启动一个线程是用 run() 还是 start()? 为什么?  

23 、(3分)举例说明方法重载和重写的区别?

24 、(3分)File类有哪些构造函数和常用方法?

25 、(4分)在java中创建线程有哪几种方式?

26 、(3分)简述基于Java技术实现TCP网络通信的基本步骤。

27 、(3分)异常没有被捕获将会发生什么?

28 、(4分)抽象类与接口的区别有哪些?

29 、(3分)简述线程的基本概念、线程的基本状态。  

30 、(4分)方法的参数定义为int[][] a,在该方法中实参数组a的行数是多少?数组a的最后一行的最后一个元素是多少?

1、在java中创建线程有哪几种方式?

2、什么是方法重载?


1 、(3分)Java 中有几种方法可以实现一个线程?用什么关键字修饰同步方法 ?

有两种实现方法:分别是继承Thread类和实现Runnable接口;用synchronized关键字修饰同步方法

2 、(3分)String和StringBuffer类的区别?

String是对象不是原始类型.为不可变对象,一旦被创建,就不能修改它的值.对于已经存在的String对象的修改都是重新创建一个新的对象,然后把新的值保存进去.String 是final类,即不能被继承。StringBuffer是一个可变对象,当对他进行修改的时候不会像String那样重新建立对象,它只能通过构造函数来建立。字符串连接操作中StringBuffer的效率要比String高。

3 、(4分)简述集合中的List、Set、Map有什么特点和区别?

List的特点是元素有序、可重复。List接口的主要实现类有ArrayList和LinkedList。Set的特点是元素无序、不可重复。Set接口的主要实现类有HashSet和TreeSet。Map的特点是存储的元素是键(Key)、值(Value)映射关系,元素都是成对出现的。Map接口的主要实现类有HashMap和TreeMap。

4 、(4分)在定义一个Java类型时,除访问控制修饰符外还有哪几种修饰符可以修饰一个成员方法?请写出各修饰符的意义和作用?

答:一般有static、final、abstract和synchronized等关键字修饰。
(1)使用static修饰的方法为类方法;
(2)使用final修饰的方法不能被子类重写;
(3)使用abstract修饰的为抽象方法,该类型必须定义为抽象类;
(4)使用synchronized修饰的方法为同步方法,该方法在某一时刻只允许一个线程访问。
说明:只要回答3个正确就给满分。

5 、(3分)Java线程编程中,run()方法的作用与start()方法的作用有什么不同?

run方法编写线程体的执行代码,既线程体的流程控制代码, start方法将创建的线程放入线程队列。

6 、(4分)线程的调度方法sleep()和wait()方法有什么区别?

调用sleep()方法,正在执行的线程主动让出CPU去执行其他线程,在sleep()方法指定的时间过后,CPU才会回到这个线程上继续往下执行,如果当前线程进入了同步锁,sleep()方法并不会释放锁,即使当前线程使用sleep()方法让出了CPU,但其它被同步锁挡住了的线程也无法得到执行。wait()在一个已经进入了同步锁的线程内进行调用,让当前线程暂时让出同步锁,以便其它正在等待此锁的线程可以得到同步锁并运行。当其它线程调用了notify()方法后,调用wait()方法的线程就会解除wait状态,当再次获得同步锁后,程序可以继续向下执行。

7 、(4分)什么是多态?

多态意味着一个对象有着多种形态,可以在特定的情况下,表现不同的状态,从而对应着不同的属性和方法。简单的说,多态就是使用父类类型的变量引用子类对象,根据被引用子类对象的特性,程序会得到不同的运行效果。

8 、(3分)线程的控制方法sleep()和wait()有什么区别 ?   

 sleep是线程类(Thread)的方法,导致此线程暂停执行指定时间,给执行机会给其他线程,但是监控状态依然保持,到时后会自动恢复。调用sleep不会释放对象锁。wait是Object类的方法,对此对象调用wait方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出notify方法(或notifyAll)后本线程才进入对象锁定池准备获得对象锁进入运行状态。

9 、(3分)float和Float的区别是什么?

Java提供两种不同的类型:引用类型和原始类型(内置类型),float是Java的原始类型,Float是Java为float提供的封装类。

10 、(3分)简述JRE与JDK的区别?

JRE(Java Runtime Environment,Java运行时环境),它相当于操作系统部分,提供了Java程序运行时所需要的基本条件和许多Java基础类,例如,IO类、GUI控件类、网络类等。JRE是提供给普通用户使用的,如果你只想运行别人开发好的Java程序,那么,你的计算机上必须且只需安装JRE。
JDK(Java Development Kit,Java开发工具包),它包含编译工具、解释工具、文档制作工具、打包工具多种与开发相关的工具,是提供给Java开发人员使用的。初学者学习和使用Java语言时,首先必须下载和安装JDK。JDK中已经包含了JRE部分,初学者安装JDK后不必再去下载和安装JRE了。

11 、(3分)什么是流?流式输入输出有什么特点?

(1)所谓流是指同一台计算机或网络中不同计算机之间有序运动着的数据序列,Java把这些不同来源和目标的数据都统一抽象为数据流。数据流可分为输入流和输出流,输入流代表从其他设备流入计算机的数据序列,输出流代表从计算机流向外部设备的数据序列。
(2)特点:流式输入输出的特点是数据的获取和发送沿数据序列的顺序进行,即每一个数据都必须等待排在它前面的数据,等前面的数据读入或送出之后才能被读写。所以流和队列一样,只能以“先进先出”的方式对其中的数据进行读写,而不能随意选择读写的位置。

12 、(3分)Java流被分为字节流和字符流,两者有什么区别?

两者都作为Object类的直接子类,基本输入流(InputStream)和基本输出流(OutputStream)是处理以8位字节为基本单位的字节流类;Reader和Writer类是专门处理16位字符流的类。

13 、(4分)为了读当前目录下的文件"data.in",请你写出满足如下要求的输入流创建代码,不要求编写处理异常代码。
(1)使用BufferedInputStream进行读取数据;
(2)使用BufferedReader进行读取数据;

(1)(50%分)BufferedInputStream bin=new BufferedInputStream(new FileInputStream("data.in"));
(1)(50%分)BufferedReader breader=new BufferredReader(new FileReader("data.in"));

14 、(3分)简述Java类的构造方法特点?如何定义构造方法?

(1)构造方法是类的一个特殊成员,它会在类实例化对象时被自动调用。而普通方法只有在使用的时候才会被调用。

(2)在定义构造方法时要求方法名与类名相同、在方法名的前面没有返回值类型的声明、在方法中不能使用return语句返回一个值。

15 、(3分)Thread和Runnable有什么不同?

JAVA线程控制着程序执行的主路径。当你用java命令调用JVM时,JVM创建了一个隐式线程来执行main方法。Thread类提供了主线程调用其它线程并行运行的机制。Runnable接口定义了一个能被Thread运行的类。实现Runnable的类只需要实行run方法。可以很灵活的扩展现在的已经继承自其它父类的类。而thread则不可以,因为java只允许继承一个父类。

16 、(3分)抽象类与接口的区别有哪些?

在Java中,使用abstract关键字修饰的类称之为抽象类。抽象类是不能被实例化的,通常需要写一个子类来继承抽象类,同时实例化子类来获得该类的对象。抽象类通常用于表示一种抽象的概念。
接口可以说是一种特殊的抽象类,接口中只能定义常量和抽象方法。由于接口的特殊性,在定义时需要使用interface关键字。

17 、(4分)Java的集合类型中单列集合List和Set有什么特点?写出他们的子类各两个。

(1)List集合存储的元素有序,元素可以重复。而Set集合存储的元素无序,元素不可以重复。(占50%分)

(2)List的子类有ArrayList和LinkedList(也可以为Vector);Set的子类有HashSet和TreeSet(也可以为LinkedHashSet)。(占50%分)。

18 、(3分)简要叙述int和Integer的区别。

Java提供两种不同的类型:引用类型和原始类型(内置类型),int是Java的原始类型,Integer是Java为int提供的封装类。

19 、(4分)在java中创建线程有哪几种方式,并分别进行简述一下?

3种途径来实现多线程的创建:一种是直接继承Thread类并重写其中的run( ) 方法 ,另一种是使用实现Runnable接口,重写其run()方法。使用实现Callable接口,重写其call()方法。

20 、(3分)简述Java语言的异常处理机制的优点?

(1)通过面向对象的方法进行异常处理,进行异常分类,体现了良好的层次性,提供了良好的接口;
(2)异常处理机制使得处理异常的代码和“常规”代码分开,减少了代码的数量,增强了程序的可读性;
(3)异常处理机制使得异常事件可以沿调用栈自动向上传播,这样可以传递更多的信息,并简化了代码的编写;

21 、(3分)给方法传递数组参数与传递基本数据类型变量的值有何不同?

请输入答案:

对于基本数据类型参数,传递的是实参的值;
对于数组类型的参数,参数值是数组的引用,给方法传递的是这个引用。

22 、(3分)启动一个线程是用 run() 还是 start()? 为什么?  

启动一个线程是调用start()方法,使线程所代表的虚拟处理机处于可运行状态,这意味着它可以由JVM调度并执行。这并不意味着线程就会立即运行。run()方法可以产生必须退出的标志来停止一个线程。

23 、(3分)举例说明方法重载和重写的区别?

 参考答案:
1)重载:一个类中有一个方法A,你又在这个类中创建了一个方法B,方法B的名字和A一样,返回值类型也一样,但是参数的类型或个数不同,此时B重载了A。
例如:
public class TestClass{
public int test(int i){return 1;}
public int test(float f){return 1;}
}

2)重写:一个类M继承另一个类N,N中有一个方法A,这时你在M写了一个方法B,方法B的名字、返回值以及参数都和A一样,此时B重写了A。
例如:

public class TestClass1{
public int test(int i){return 1;}
}

public class TestClass2 extends TestClass1{
public int test(int i){return 2;}
}

24 、(3分)File类有哪些构造函数和常用方法?

构造函数有:
  (1)public File(String pathname):创建一个对应于参数pathname的File类对象。参数pathname是包含目录和文件名的字符串。如果没有文件名,则代表目录。
  (2)public File(String parent , String child):该构造函数将pathname分成两部分parent和child,参数parent表示目录或文件所在路径,参数child表示目录或文件名称。
  (3)public File(File parent, String child):该构造函数与上面一个不同在于将parent的参数类型由String变为File,代表parent是一个已经创建的File类文件对象(指向目录)。
  常用方法有:
  (1)public boolean canWrite( ):返回文件是否可写。
  (2)public boolean canRead( ):返回文件是否可读。
  (3)public boolean createNewFile( ):当文件不存在时创建文件。

25 、(4分)在java中创建线程有哪几种方式?

一种是继承java.lang包下的Thread类,覆写Thread类的run()方法,在run()方法中实现运行在线程上的代码。
new Thread() {
    public void run(){}
}.start();
另一种就是实现java.lang.Runnable接口,同样是在run()方法中实现运行在线程上的代码。
new Thread(new Runnable(){
     public void run(){}
}).start()

26 、(3分)简述基于Java技术实现TCP网络通信的基本步骤。

服务器瑞编程步骤为:
1)建立ServerSocket对象,并指定所要使用的端口号
ServerSocket serverSocket=new ServerSocket(port#)
2)等待知道接收到客户端的连接信息,然后建立连接
Socket s=serverSocket.acceptO;
3)通过Socket对象取得输入流,以便通过输入流,取得
来自客户端的数据OutputStream out-=s.getOutputStreamO);
通过Socket对象取得输出流串连接起来,以便通过输出沙
将数据传送至客户端InputStream in=s.getInputStreamO;
4)关闭连接s.close0;


客户端编程步骤为:
1)指定服务器端的位置与通信端口以建立连接
Socket s1 new Socket(SIP,SPort);
2)通过Socket.对象取得输出流,以便通过输出流,取得来
自服务器端得数OutputStream out=s1.getOutputStreamO;
通过Socket对象取得输出流串连接起来,以便通过输出流,
将数据传送至客户端InputStream in=s1.getInputStreamO;

27 、(3分)异常没有被捕获将会发生什么?

非捕获的异常最终会导致程序非正常终止。

28 、(4分)抽象类与接口的区别有哪些?

在Java中,使用abstract关键字修饰的类称之为抽象类。抽象类是不能被实例化的,通常需要写一个子类来继承抽象类,同时实例化子类来获得该类的对象。抽象类通常用于表示一种抽象的概念。
接口可以说是一种特殊的抽象类,接口中只能定义常量和抽象方法。由于接口的特殊性,在定义时需要使用interface关键字。

29 、(3分)简述线程的基本概念、线程的基本状态。  

 线程指在程序执行过程中,能够执行程序代码的一个执行单位,每个程序至少都有一个线程,也就是程序本身。   Java中的线程有四种状态分别是:运行、就绪、挂起、结束。

30 、(4分)方法的参数定义为int[][] a,在该方法中实参数组a的行数是多少?数组a的最后一行的最后一个元素是多少?

数组a的行数为a.length;数组的最后一行的最后一个元素引用变量名为a[a.length-1][a[a.length-1].length-1]。

补充:

1、在java中创建线程有哪几种方式?

两种途径来实现多线程的创建:一种是直接继承Thread类并重写其中的run( ) 方法 ,另一种是使用Runnable接口。

2、什么是方法重载?

就是在同一个类中,方法的名字相同,但参数个数、参数的类型不同 

  • 5
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qing影

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值