Java简答题
1、给方法传递数组参数与传递基本数据类型变量的值有何不同?
答:对于基本数据类型参数,传递的是实参的值;
对于数组类型的参数,参数值是数组的引用,给方法传递的是这个引用。
2、简述线程的基本概念、线程的基本状态。
在一个进程中的多个线程之间,可以并发执行,甚至允许在一个进程中所有线程都能并发执行;同样,不同进程中的线程也能并发执行
3、启动一个线程是用 run() 还是 start()? 为什么?
启动一个线程用start()方法,使线程所代表的虚拟处理机处于可运行的状态,这意味着它可以有JVM(java虚拟机)来调度和执行,这并不意味着线程就会立即执行。run()方法可以产生必须退出的标志来停止一个线程
4、线程的控制方法sleep()和wait()有什么区别 ?
sleep()方法让线程进入睡眠状态,睡眠过后自动醒来;
wait()方法让线程进入等待状态,直到被另一线程唤醒
5、Java 中有几种方法可以实现一个线程?用什么关键字修饰同步方法 ?
3种:继承Thread,实现Runnable接口,实现Callable接口
synchronized同步
6、File类有哪些构造函数和常用方法?
构造函数:public file(string pathname),public file(string parent , string child)
public file(file parent, string child)
常用函数:public boolean canwrite( ),public boolean canread( )
public boolean createnewfile( )
7、Java流被分为字节流和字符流,两者有什么区别?
区别是它们处理数据的类型不同。
读写的时候一个是按字节读写,一个是按字符
8、什么是流?流式输入输出有什么特点?
流:流是根据连续传输特性命名的一种信息序列,也可以认为是一种抽象的数据结构
特点①先进先出。先被写入的数据,在读取时先被读取;
②顺序存取。不能随机访问中间的数据;
③只读或只写。要么是输出流,要么是输入流。
9、异常没有被捕获将会发生什么?
未捕获的异常最终会导致程序非正常终止
10、简述Java语言的异常处理机制的优点?
可以预防错误的程序代码或系统错误所造成的不可预期的结果发生,增加了程序的灵活性,增加程序的可读性和健壮性
11、简述基于Java技术实现TCP网络通信的基本步骤。
先连接TCP中的socket,如果正常连接上之后,socket的对象可以获得InputStream和OutputStreame,然后就可以进行通信了完成通信之后,执行socket对象的close()方法关闭连接,完成一次完整的socket连接
12、举例说明方法重载和重写的区别?
重载就是在同一个类中,方法名相同,参数列表不同。参数列表不同包括,参数的个数不同,参数类型不同等。 重写就是子类重写父类的方法,在调用的时候,子类的方法会覆盖父类的方法,也就是会调用子类的方法
13、Thread和Runnable有什么不同?
首先Runnable是接口,Thread是类并且实现了接口Runnable。 第二Runnable没有start()方法,要想启动线程必须调用Thread中的start方法,例如new Thread(r).start()。 自定义线程时,runnable是比较灵活的
14、String和StringBuffer类的区别?
在连接字符串连接操作中StringBuffer效率会比String的效率高。2. String改变的时候是改变的地址,而StringBuffer才是改变的值.
15、float和Float的区别是什么?
float是基本数据类型,Float是包装类(封装类)。封装类可将接本数据类型封装后当作对象进行操作,并为各种基本数据类型提供各种转换功能。
16、Java线程编程中,run()方法的作用与start()方法的作用有什么不同?
Thread类中run()和start()方法的区别如下:
run()方法:在本线程内调用该Runnable对象的run()方法,可以重复多次调用;
start()方法:启动一个线程,调用该Runnable对象的run()方法,不能多次启动一个线程;
17、简要叙述int和Integer的区别。
Int是java的原始数据类型,Integer是java为int提供的封装类