MYSQL:MySQL面试题

    1. 事务四大特性,隔离级别

    数据库四大特性及数据库隔离级别

    1. 索引设计原则,失效情况

    MySQL索引
    索引失效的场景总结

    1. 存储结构区别,B-tree,B+tree,hash,红黑树

    MySQL索引

    1. 数据库锁

    MySQL锁

    1. 数据库记录删除时物理还是逻辑,为什么不建议物理删除

      到现在我们认识到,逻辑删除有利好之处,但是也要付出一定的代价。那么应该用逻辑删除吗?

      从项目的规模来讲 一般的建议是小型系统可以采用物理删除,因为数据恢复的成本,或者说数据的价值,相比较使用逻辑删除的开发、运维付出要少。但是物理删除!=随意删除,要认识到删除操作的风险,重要数据应该设计历史表,删除之前将删除的数据复制到历史表。 中大型项目应该采用逻辑删除,,有一句话“数据是无价的”。必须承认,在很多时候,数据的价值是远远高于人工的成本的。

      从数据价值来讲 价值比较高的数据,如电商系统的订单之类的,毫无疑问,一般都是只允许逻辑删除的,及时必须要做物理删除,也要通过备份表、备份日志等方式保证数据可以快速恢复。 价值比较低的数据,比如用户操作日志之类,这种数据价值不高,而且数据量很大,在资源有限的情况下,可以考虑物理删除,但是这种危险操作尽量也不要由系统功能去做,而应该由专业的DBA去完成——至于怎么降低DBA操作的风险,大概就得靠制度了

    JAVA:
    1: JVM类加载机制,双亲委派机制概念,垃圾回收算法简述,内存模型。
    JVM类加载机制
    2:数组链表哈希表结构,扩容机制,线程安全的hash
    HashMap存储操作
    3:concurrenthashmap用什么保证线程安全。CAS概念
    ConcurrentHashMap
    4:jdk加锁手段有哪些?解释volatile关键字,死锁条件。
    5:线程池创建方式,核心参数
    6:多线程协作相关类和区别,异常处理,CountDownLatch,CyclicBarrier,Semaphore,Phaser,CompletableFuture
    7:多线程顺序打印
    4种方法实现多线程按着指定顺序执行
    8:用jdk写出一个限流
    Semaphore信号量
    9:sleepwait

    (1) sleep在任何地方都能使用;wait方法则必须放在 synchronized 块里面。 (2) sleep一般用于当前线程休眠,或者轮循暂停操作;wait则多用于多线程之间的通信。 (3) sleep是Thread类的静态本地方法,wait则是Object类的本地方法。 (4) sleep则不释放锁,wait会释放锁。 (5) sleep会让出CPU执行时间且强制上下文切换,而wait则不一定,wait后可能还是有机会重新竞争到锁继续执行的。 (6) sleep(milliseconds)可以用时间指定来使他自动醒过来,如果时间不到你只能调用interreput()来强行打断;wait可以用notify/notifyAll直接唤起.

    Spring:
    1:ioc和aop,动态代理,实际应用
    2:Bean生命周期,线程安全问题,循环依赖
    3:设计模式:单例模式,模板方法,策略,责任链
    4:事务传播机制,事务生效问题
    5:springboot配置文件优先级,启动流程

    1. spring-cloud-config配置中心 => (命令行参数)jvm参数 => 系统环境变量 => 项目内的application-xxx.yaml => 项目内的application.yaml => bootstrap.yaml
    2. file:./config/
    3. file:./
    4. classpath:/config/
    5. classpath:/
    6. //file: 指当前项目根目录;classpath: 指当前项目的类路径,即 resources 目录。
    7. //位于相同位置的 application.properties 的优先级高于 application.yml。
    1. 6:自定义stater,了解spi么?<br /> 7@import的四种情况,普通类、configution类,importSelector实现类,ImportBeanDefinitionRegistrar类<br /> <br />Redis:<br /> 1:常用数据结构及原理概述,listhashzset,渐进式rehash<br /> 2:管道理解<br /> 3redis锁<br /> 4:持久化方式对性能的影响<br /> 5:雪崩穿透,解决方案<br /> 6:数据缓存一致性<br /> <br />MQ:<br /> 1: mq消息丢失如何保证<br /> 2:怎么保证顺序消费<br /> 3mq发布订阅模式<br /> 4:<br /> <br />定时任务:<br /> 1boot自带<br /> 2xxl-job<br /> <br />cloud:<br /> 1:注册中心,raft算法,cap理论,心跳机制,数据同步<br /> 2:断路器,sentinelhystrix<br /> 3:网关,zuulgatway<br /> 4:配置中心,热刷新,confignacos,数据同步<br /> <br />算法:<br /> 二分查找算法<br /> 给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。
    2. 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标