北京决策数一面(Java) 2022.3.17

  1. 自我介绍

  2. kmp算法

    1. https://www.zhihu.com/question/21923021
    2. kmp算法的时间复杂度 O(n+m)
    1. 双指针的时间复杂度 O(n)
  3. java

    1. final修饰的内容的值是引用的不可变还是引用的对象内容不可变
      1. 浅析Java中的final关键字
        1. 修饰类
          1. 当用final修饰一个类时,表明这个类不能被继承。也就是说,如果一个类你永远不会让他被继承,就可以用final进行修饰。
        1. 修饰方法
          1. 如果只有在想明确禁止 该方法在子类中被覆盖的情况下才将方法设置为final的
        1. 修饰变量
          1. 对于一个final变量,如果是基本数据类型的变量,则其数值一旦在初始化之后便不能更改;如果是引用类型的变量,则在对其初始化之后便不能再让其指向另一个对象。
          2. 引用变量被final修饰之后,虽然不能再指向其他对象,但是它指向的对象的内容是可变的
    1. 创建线程池有几种方式 4种
      1. 线程的四种创建方式
        1. 一、继承Thread类创建线程
          1. 定义一个类继承Thread类,并重写Thread类的run()方法,run()方法的方法体就是线程要完成的任务,因此把run()称为线程的执行体
          2. 创建该类的实例对象,即创建了线程对象
          1. 调用线程方法的start方法来启动线程
        1. 二、实现Runnable接口创建线程
          1. 定义Runnable接口的实现类,重写run()方法,run()方法的方法体就是线程要完成的任务
          2. 创建Runnable实现类的实例,并用这个实例作为Thread的target来创建Thread对象,这个Thread对象才是真正的线程对象
          1. 调用线程的run()方法来启动线程
        1. 三、实现Callable接口和Future创建线程
          1. 创建Callable接口实现类,并实现call()方法,该方法将作为线程执行体,且该方法有返回值,再创建Callable实现类的实例
          2. 使用FutureTask类来包装Callable对象,该FutureTask对象封装了该Callable对象的call()方法的返回值
          1. 使用FutureTask对象作为Thread对象的target创建并启动新线程
          2. 调用FutureTask对象的get()方法来获得子线程执行结束后的返回值
        1. 四、通过线程器ExecutorServices类
    1. 新任务提交到线程池,线程池怎么处理的
      1. 第一步:线程池判断核心线程池里的线程是否都在执行任务。如果不是,则创建一个新的工作线程来执行任务。如果核心线程池里的线程都在执行任务,则执行第二步。
      2. 第二步:线程池判断工作队列是否已经满。如果工作队列没有满,则将新提交的任务存储在这个工作队列里进行等待。如果工作队列满了,则执行第三步。
      1. 第三步:线程池判断线程池的线程是否都处于工作状态。如果没有,则创建一个新的工作线程来执行任务。如果已经满了,则交给饱和策略来处理这个任务。
  4. mysql

    1. like会不会走索引
    2. MySQL在like查询中是否使用到索引
      1. mysql在使用like查询的时候只有使用后面的%时,才会使用到索引
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • BAT 常问的 Java基础39道常见面试题 1.八种基本数据类型的大小,以及他们的封装类 2.引用数据类型 3....
    AI乔治阅读 2,473评论 0 75
  • 本文转自Java 最常见 200+ 面试题全解析:面试必备(转载) 序言 在本篇文章开始之前,我想先来回答一个问题...
    林伟成阅读 1,205评论 0 3
  • 包含的模块本文分为十九个模块,分别是: Java 基础、容器、多线程、反射、对象拷贝、Java Web 、异常、网...
    Pts阅读 417评论 0 1
  • 最近在准备找工作,所以自己总结了一下面试题,有些来自于网上的,自己做了下整理。1、JDK 和 JRE 有什么区别?...
    走路带着风s阅读 277评论 0 1
  • 面试 一般都是由浅到深去问,思路是:先考察基础是否过关,因为基础知识决定了一个技术人员发展的上限再通过深度考察是否...
    攻城狮Chova阅读 827评论 0 1