ITPub博客

首页 > 应用开发 > Java > 【Java面试题】Java面试之多线程!

【Java面试题】Java面试之多线程!

原创 Java 作者:六星_研鑫 时间:2020-07-23 15:40:13 0 删除 编辑


欢迎加入我们的学习基地,免费获取最新BATJ面试题和2020最新简历模板( 925050116)!

 

1:什么是线程?


轻量级的进程


2:线程的三个部分是?


处理机


代码


数据


3:为什么使用多线程


使UI响应更快


利用多处理器系统


简化建模


4:代码示例:Java中实现多线程的两种方式,包括如何定义多线程,如何使用多线程


4.1实现Runnable接口


class Thread1 implements Runnable{
 
public void run(){
 
//run里一般写一个while(true)循环
 
System.out.println(Runnable);
 
}
 
}


4.2继承Thread


class Thread2 extends Thread{
 
public void run(){
 
System.out.println(extends);
 
}
 
}

public class Test{
 
public static void main(String[] a){
 
Thread1 r = new Thread1();
 
Thread t1 = new Thread(r);
 
Thread t2 = new Thread(r);
 
t1.start();
 
t2.start();
 
Thread t3 = new Thread2();
 
t3.start();
 
}
 
}

5:如何实现线程的调度?如何暂停一个线程的运行


调度用wait和notify


sleep()


6:什么是线程的优先级


判断哪个线程先执行的级别


7:简述sleep方法和wait方法的功能和区别


sleep是让线程休眠一段时间


wait是让线程挂起


8:什么是守候线程


隐藏在后台持续运行的线程


9:什么是临界资源


指多个线程共享的资源


10:什么是互斥锁,Java中如何实现


用来保证在任一时刻只能有一个线程来访问临界资源的那个标记


用在对象前面限制一段代码的执行


用在方法声明中,表示整个方法为同步方法。


11:什么是死锁?如何避免?


如果程序中有多个线程竞争多个资源,就可能会产生死锁。当一个线程等待


由另一个线程持有的锁,而后者正在等待已被第一个线程持 有的锁时,就会


发生死锁。


要避免死锁,应该确保在获取多个锁时,在所有的线程中都以相同的顺序获取锁。


尽量少用临界资源


12:简述wait和notify,notifyAll的使用


被锁定的对象可以调用wait()方法,这将导致当前线程被阻塞并放弃该对象


的互斥锁,即解除了wait()方法的当前对象的锁定状态,其 他的线程就有机


会访问该对象。


notify使等待队列上的一个线程离开阻塞状态


notifyAll使等待队列上的所有线程离开阻塞状态


13:什么是url?基本的格式是?


统一资源定位器



14:简述IP,Port,TCP的基本功能


IP代表网络位置


Port代表端口号


TCP可保证不同厂家生产的计算机能在共同网络环境下运行,解决异构网通信问题,是目前网络通信的基本协议


15:简述Java网络模型的基本功能


描述服务端和客户端的连接过程


16:简述Java网络编程究竟做些什么?如何做?


1.建立连接


2.准备输出的数据,流式输出


3.流式输入,编程业务需要的格式


4.关闭连接


服务器分配一个端口号。如果客户请求一个连接,服务器使用accept()方法打开socket连接。


客户在host的port端口建立连接。


服务器和客户使用InputStream和OutputStream进行通信。


17:代码示例:基于Socket编程


try {
 
ServerSocket s = new ServerSocket(8888);
 
while (true) {
 
Socket s1 = s.accept();
 
OutputStream os = s1.getOutputStream();
 
DataOutputStream dos = new DataOutputStream(os);
 
dos.writeUTF("Hello," +s1.getInetAddress() + "port#" + s1.getPort() + "\nbye!");
 
dos.close();
 
s1.close();
 
}
 
}catch (IOException e) {
 
System.out.println("程序运行出错:" + e);
 
}


18:代码示例:基于UDP编程


19:TCP和UDP区别


TCP能保证传输内容的完整和准确,UDP不能

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/69977571/viewspace-2706514/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
一入Java坑,终身入Java坑,欢迎java坑友一起交流学习,群内有大牛,并分享提供大量免费资料,欢迎入圈:925050116

注册时间:2020-06-27

  • 博文量
    26
  • 访问量
    19414