摘要: MYSQL默认隔离级别为:可重复读 (Repeated read)1、innoDB(B+树)支持事务,适合修改多场景非叶子节点只存键,叶子结点包含全部数据2、MyIASM不支持事务,适合查询多场景,写操作锁整个表 Oracle默认隔离级别为:读已提交(READ COMMITTED)1、select 阅读全文
posted @ 2021-04-09 11:03 MrLiJavaEngineer 阅读(555) 评论(0) 推荐(0) 编辑
摘要: servlet生命周期1、init()初始化2、service()响应请求3、destory()销毁 IOC1、也叫控制反转,依赖注入2、容器实例化对象时,将它的依赖类注入给它3、容器初始化,创建容器,加载bean的定义,加载bean的配置资源,解析bean存放在hashmap中4、构造方法注入,s 阅读全文
posted @ 2021-04-09 10:53 MrLiJavaEngineer 阅读(102) 评论(0) 推荐(0) 编辑
摘要: 使用线程的四种方式1、重写Thread类的run()方法,调用start()方法启动线程。2、实现Runable接口的run()方法,作为参数传入new Thread(),再调用start()方法启动线程。3、实现Callable接口的call()方法,作为参数传入new FutureTask(), 阅读全文
posted @ 2021-04-09 10:51 MrLiJavaEngineer 阅读(55) 评论(0) 推荐(0) 编辑
摘要: 1. Java 内存区域与内存溢出异常 1.1.1 程序计数器 内存空间小,线程私有。字节码解释器工作是就是通过改变这个计数器的值来选取下一条需要执行指令的字节码指令,分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖计数器完成 如果线程正在执行一个 Java 方法,这个计数器记录的是正在执行 阅读全文
posted @ 2020-05-20 09:29 MrLiJavaEngineer 阅读(84) 评论(0) 推荐(0) 编辑
摘要: 一、时间复杂度 T(n)=O(f(n))。它表示随问题n的增大,算法执行时间的增长率和f(n)的增长率相同,称作算法的渐进时间复杂度,简称为时间复杂度。 1、用常数1取代运行时间中的所有加法常数。 2、在修改后的运行次数函数中,只保留最高阶项。 3、如果最高阶项存在且不是1,则去除与这个项目相乘的常 阅读全文
posted @ 2020-05-19 11:42 MrLiJavaEngineer 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 一、线程安全需要保证几个基本特性1、原子性:一个操作或者多个操作要么全部执行,要么都不执行。2、可见性:当多个线程访问同一个变量时,一个线程修改了这个变量的值,其他线程能够立即看到修改的值。3、有序性:程序执行的顺序是按照代码的先后顺序执行的,在单线程中,可以保证程序最终的执行结果和代码的顺序执行结 阅读全文
posted @ 2019-09-29 16:49 MrLiJavaEngineer 阅读(138) 评论(0) 推荐(0) 编辑
摘要: Spring事务管理的两种方式 spring支持编程式事务管理和声明式事务管理两种方式。 编程式事务使用TransactionTemplate或者直接使用底层的PlatformTransactionManager。对于编程式事务管理,spring推荐使用TransactionTemplate。 声明 阅读全文
posted @ 2019-09-29 09:37 MrLiJavaEngineer 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 1. Java锁的种类 在笔者面试过程时,经常会被问到各种各样的锁,如乐观锁、读写锁等等,非常繁多,在此做一个总结。介绍的内容如下: 乐观锁/悲观锁 独享锁/共享锁 互斥锁/读写锁 可重入锁 公平锁/非公平锁 分段锁 偏向锁/轻量级锁/重量级锁 自旋锁 以上是一些锁的名词,这些分类并不是全是指锁的状 阅读全文
posted @ 2018-05-01 09:44 MrLiJavaEngineer 阅读(117) 评论(0) 推荐(0) 编辑
摘要: 设计模式是对封装、继承、多态的运用;目的是高内聚低耦合,便于代码维护和拓展。 结构模式: 组合模式 树枝和叶子继承于抽象构建,树枝组装,树叶操作方法,树枝遍历子节点操作子节点方法 享元模式 公用内部相同不变对象,传入外部可变对象 外观模式 访问者,访问外观窗口类,窗口类调用各子系统具体实现 装饰模式 阅读全文
posted @ 2018-04-28 14:38 MrLiJavaEngineer 阅读(115) 评论(0) 推荐(0) 编辑
摘要: 1. Full GC次数过多 使用top命令查看系统CPU的占用情况 top -Hp 9 查看GC的情况 jstat -gcutil 9 1000 10 如果是Full GC次数过多,那么通过jstack得到的线程信息会是类似于VM Thread之类的线程,而如果是代码中有比较耗时的计算,那么我们得 阅读全文
posted @ 2018-04-27 03:36 MrLiJavaEngineer 阅读(91) 评论(0) 推荐(0) 编辑