摘要: 数据结构和算法本身解决的是,如何让代码运行得更快,如何让代码更省存储空间。所以就分为两个维度分析,时间复杂度、空间复杂度。复杂度分析能事先初略的估计算法的执行效率。 时间复杂度 大O复杂度表示法 大O符号是由德国数论学家保罗·巴赫曼(Paul Bachmann)在其1892年的著作《解析数论》(An 阅读全文
posted @ 2020-04-16 16:37 秋の枫 阅读(260) 评论(0) 推荐(0) 编辑
摘要: 容器的层次结构 Tomcat 设计了 4 种容器,分别是 Engine、Host、Context 和 Wrapper。这 4 种容器不是平行关系,而是父子关系。通过一种分层的架构,使得Servlet容器具有很好的更灵活性。一张图帮你理解它们的关系。 Engine: Engine 表示引擎,用来管理多 阅读全文
posted @ 2020-04-10 23:40 秋の枫 阅读(167) 评论(0) 推荐(0) 编辑
摘要: tomcat核心功能 1.处理socket连接,负责网络字节流与request和response对象的转化 2.加载管理servlet,以及具体处理Request请求 根据以上两点,tomcat设计了两个核心组件,连接器(Connector)、容器(container),来分别做这两个事情。连接器负 阅读全文
posted @ 2020-04-10 16:30 秋の枫 阅读(241) 评论(0) 推荐(0) 编辑
摘要: 1.切换目录 cd /usr/lcoal/src 2.从官网下载安装包 wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz 3.解压文件 tar -vxf mysq 阅读全文
posted @ 2020-03-30 23:51 秋の枫 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 在学习Java锁的时候,总觉的比较含糊,感觉一直没有系统的消化理解。所以决定重新梳理一下java相关的锁。 本质来说只有两种锁,乐观锁和悲观锁,其他所谓的可重入、自旋、偏向/轻量/重量锁等,都是锁具有的一些特点或机制。目的就是在数据安全的前提下,提高系统的性能。 乐观锁 乐观锁,顾名思义,就是说在操 阅读全文
posted @ 2020-03-22 03:05 秋の枫 阅读(531) 评论(0) 推荐(1) 编辑
摘要: mysql判断sql语句是不是慢查询,是根据语句的执行时间来衡量的,mysql会用语句的执行时间和long_query_time这个系统参数做比较,如果语句执行时间大于long_query_time,都会把这个语句记录到慢查询日志里面。long_query_time的默认值是10s,一般生产环境不会 阅读全文
posted @ 2020-02-26 16:55 秋の枫 阅读(3142) 评论(0) 推荐(0) 编辑
摘要: Java代码执行步骤 编译 Java文件通过JVM的编译器编译成字节码文件,有了字节码,JVM的类加载器就开始加载字节码文件。 解释器 解释器会将字节码转换成汇编指令,然后在转换成CPU可以识别的机器指令(下图是汇编指令转成机器码的案例)。解释器是软件实现的,他将字节码转换成汇编指令,可以实现同一份 阅读全文
posted @ 2020-02-19 11:58 秋の枫 阅读(799) 评论(0) 推荐(0) 编辑
摘要: 什么是单例模式 单例模式是在程序中,一个类保证只有一个实例,并提供统一的访问入口。 为什么要用单例模式 节省内存 节省计算 如对象实例中的一样的,那就不用每次都创建一个对象 方便管理 因为单例提供一个统一的访问入口,不需要创建N多个对象,很多工具类都用了单例实现,如日志、字符串工具类 保证结果正确 阅读全文
posted @ 2019-12-28 15:33 秋の枫 阅读(1027) 评论(0) 推荐(0) 编辑
摘要: public interface DistributedLock { /** * 加锁 * @param lockKey 锁定的key * @param lockSeconds 锁定时间(单位:秒),超过该锁定时间会自动释放锁,可能会导致并发问题。 * @param expirySeconds 本次 阅读全文
posted @ 2019-12-27 10:39 秋の枫 阅读(273) 评论(0) 推荐(0) 编辑
摘要: https://www.cnblogs.com/lantuanqing/p/11139627.html 阅读全文
posted @ 2019-12-10 14:13 秋の枫 阅读(278) 评论(0) 推荐(0) 编辑