Java八股文详细,终于整理完了!

1、线程的创建方式    难度系数:⭐
  1. 继承Thread类创建线程
  2. 实现Runnable接口创建线程
  3. 使用Callable和Future创建线程   有返回值
  4. 使用线程池创建线程
 
  
  1. #### 代码演示

  2. import java.util.concurrent.*;

  3. public class threadTest{

  4.     public static void main(String[] args) throws ExecutionException, InterruptedException {

  5.         //继承thread

  6.         ThreadClass thread = new ThreadClass();

  7.         thread.start();

  8.         Thread.sleep(100);

  9.         System.out.println("#####################");

  10.         //实现runnable

  11.         RunnableClass runnable = new RunnableClass();

  12.         new Thread(runnable).start();

  13.         Thread.sleep(100);

  14.         System.out.println("#####################");

  15.         //实现callable

  16.         FutureTask futureTask = new FutureTask(new CallableClass());

  17.         futureTask.run();

  18.         System.out.println("callable返回值:" + futureTask.get());

  19.         Thread.sleep(100);

  20.         System.out.println("#####################");

  21.         //线程池

  22.         ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(1, 1, 2, TimeUnit.SECONDS, new ArrayBlockingQueue<>(10));

  23.         threadPoolExecutor.execute(thread);

  24.         threadPoolExecutor.shutdown();

  25.         Thread.sleep(100);

  26.         System.out.println("#####################");

  27.         //使用并发包Executors

  28.         ExecutorService executorService = Executors.newFixedThreadPool(5);

  29.         executorService.execute(thread);

  30.         executorService.shutdown();

  31.     }

  32. }

  33. class ThreadClass extends Thread{

  34.     @Override

  35.     public void run() {

  36.         System.out.println("我是继承thread形式:" + Thread.currentThread().getName());

  37.     }

  38. }

  39. class RunnableClass implements Runnable{

  40.     @Override

  41.     public void run(){

  42.         System.out.println("我是实现runnable接口:" + Thread.currentThread().getName());

  43.     }

  44. }

  45. class CallableClass  implements Callable {

  46.     @Override

  47.     public String call(){

  48.         System.out.println("我是实现callable接口:");

  49.         return "我是返回值,可以通过get方法获取";

  50.     }

  51. }

Java

篇幅限制下面就只能给大家展示小册部分内容了。整理了一份核心面试笔记包括了:Java面试、Spring、JVM、MyBatis、Redis、MySQL、并发编程、微服务、Linux、Springboot、SpringCloud、MQ、Kafka 面试专题

需要全套面试笔记【点击此处即可】免费获取

2、线程的状态转换有什么(生命周期)   难度系数:⭐

Java八股文详细,终于整理完了!_第1张图片

  1. 新建状态(New) :线程对象被创建后,就进入了新建状态。例如,Thread thread = new Thread()。
  2. 就绪状态(Runnable): 也被称为“可执行状态”。线程对象被创建后,其它线程调用了该对象的start()方法,从而来启动该线程。例如,thread.start()。处于就绪状态的线程,随时可能被CPU调度执行。
  3. 运行状态(Running):线程获取CPU权限进行执行。需要注意的是,线程只能从就绪状态进入到运行

你可能感兴趣的:(java,开发语言,spring,boot,面试,spring,科技)