摘要:
Java虚拟机栈 虚拟机栈也是线程私有,而且生命周期与线程相同,每个Java方法在执行的时候都会创建一个栈帧 栈内存为线程私有的空间,每个线程都会创建私有的栈内存 栈空间内存设置过大,创建线程数量较多时会出现栈内存溢出StackOverflowError 栈内存也决定方法调用的深度,栈内存过小则会导 阅读全文
摘要:
FreeMarker freemarker是一个用java开发的模版引擎,百度百科: 常用的java模版还有快要被抛弃的Jsp(熟悉)、Thymeleaf(了解)、Velocity(不知) freemarker不关心数据的来源,知识根据模版的内容,将数据模型在模版中显示并输出文件; 快速入门难登大雅 阅读全文
摘要:
多环境选择 一般一套程序会被运行在多部不同的环境中,比如开发、测试、生产环境,每个环境的数据库地址,服务器端口这些都不经相同,若因为环境的变动而去改变配置的的参数,明显是不合理且易造成错误的 对于不同的环境,需要使用不同的配置文件,或者执行不同的类,而这个选择可以在SpringBoot的主配置文件中 阅读全文
摘要:
Java堆 Java堆被所有线程共享,在Java虚拟机启动时创建。是虚拟机管理最大的一块内存,也是垃圾回收的主要区域 主要采用分代回收算法,堆进一步划分主要是为了更好的回收内存或更快的分配内存 Java虚拟机规范的描是:所有的对象实例以及数组都要在堆上分配。 不过随着JIT编译器的发展与逃逸分析技术 阅读全文
摘要:
MySQL事务详解 insert语句执行流程 事务介绍 过多的就不废话了,数据库事务具有ACID四大特性。ACID是以下4个词的缩写 ACID四大特性 原子性 事务最小工作单元,要么全成功,要么全失败 一致性 事务开始和结束后,数据库的完整性不会被破坏 隔离性 不同事务之间互不影响,四种隔离级别为R 阅读全文
摘要:
MySQL主从复制 binlog日志 bin log :记录所有数据的更改,可用于本机数据恢复和主从同步 bin log一共有三种模式:【STATEMENT 、 ROW 、 MIXED 】 statement level模式 每一条会修改数据的sql都会记录到master的bin-log中。slav 阅读全文
摘要:
运行时数据区初探 运行时数据区概述 我们可以根据是否共享分为线程共享和独有两个分类 线程独享(不需要垃圾回收,随着线程创建而分配,销毁而回收):虚拟机栈、本地方法栈、程序计数器 线程共享(GC 活动区域): 堆、方法区 JVM的运行时数据区的使用顺序 : 线程共享的两块数据区是在JVM启动的时候就按 阅读全文
摘要:
MySQL架构 逻辑架构图: 大概分为四层,这个见仁见义,有不同的分法: 第一层Connectors:处理不同语言与SQL的交互 第二层Connection Pool :连接池,管理缓存用户连接,线程处理等需要缓存的需求 第三层Managerment Services & Utilities :系统 阅读全文
摘要:
Redis简单介绍 redis是一个开源的KV结构的一个高性能内存数据库,他支持多种数据数据类型存储,有字符串String 、散列Hash、列表List、集合Set、有序集合Zset,是一个NoSQL( 非关系型数据库 )数据库 Redis的应用场景 内存数据库(登录信息、购物车信息、用户浏览记录等 阅读全文