zoukankan      html  css  js  c++  java
  • 从面试官的角度看Java基础

          如题,今天刚刚面了几个开发,有工作5年的,有工作7年的。原以为Java基础会很扎实,结果大失所望,基础的线程知识都不甚了解。其实,对于中高级开发,java基础要求也是有的,起码得答个百分之九十。下面是一串关于多线程的面试问题,仅供参考:

          1、java创建多线程的方式?三种方式

          2、在项目中如何使用多线程?记住,不能回答上面的三种方式,会让人知道在项目中没有真正使用多线程。应该回答使用线程池。

          3、线程池都有哪几种创建方式?项目中使用哪种?

    有四种,应该清楚的回答出来。但是,要注意,项目中哪种都不使用

    a、newFixedThreadPool(int nThreads):创建一个固定长度的线程池,每当提交一个任务就创建一个线程,直到达到线程池的最大数量,这时线程规模将不再变化,当线程发生未预期的错误而结束时,线程池会补充一个新的线程。

    b、newCachedThreadPool():创建一个可缓存的线程池,如果线程池的规模超过了处理需求,将自动回收空闲线程,而当需求增加时,则可以自动添加新线程,线程池的规模不存在任何限制。

    c、newSingleThreadExecutor():这是一个单线程的 Executor,它创建单个工作线程来执行任务,如果这个线程异常结束,会创建一个新的来替代它;它的特点是能确保依照任务在队列中的顺序来串行执行。

    d、newScheduledThreadPool(int corePoolSize):创建一个固定长度的线程池,而且以延迟或定时的方式来执行任务。

           4、线程池的状态有哪几种?

           5、线程池的核心线程数目如何确定?为什么?

           上面这些问题只是冰山一角,如果对java基础一知半解,很容易掉入面试的陷阱中。当然,通过这种方式筛选面试者能不能胜任工作也很方便。

  • 相关阅读:
    docker使用阿里云Docker镜像库加速
    FastDFS文件系统(二) fastdfs和其他文件系统区别
    CentOS7—HAProxy安装与配置
    安装完CentOS 7 后必做的七件事
    让一个端口同时做两件事:http/https和ssh
    Hyper-v之利用差异磁盘快速创建多个虚拟机
    MySQL5.7安装与配置(YUM)
    CentOS7 配置阿里云yum源
    60款顶级大数据开源工具
    ubuntu设置分辨率
  • 原文地址:https://www.cnblogs.com/lizhaoE/p/14838867.html
Copyright © 2011-2022 走看看