自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

书启鸿蒙知秋枫

入Java成全栈

  • 博客(514)
  • 资源 (3)
  • 收藏
  • 关注

原创 Git 分支详解

主分支(主干/主线/main/master)开发分支(集成分支/develop/dev)① 同时创建:仓库+分支② 已有仓库,再创建分支

2023-07-06 21:43:34 9072 2

原创 06_ MySQL优化实战

说明:索引的长度与区分度是一对矛盾体,一般对字符串类型数据,长度为 20 的索引,区分度会高达 90%以上,可以使用 count(distinct left(列名,索引长度)) / count(*) 的区分度来确定。强制】在 varchar 字段上建立索引时,必须指定索引长度,没必要对全字段建立索引,根据实际文本区分度决定索引长度。

2023-06-09 11:09:04 1630

原创 05_MySQL索引优化

四种:1.主键 2.单值 3.唯一 4.复合mysql5.6以后优化器做了很多改进,执行时会自动进行大量的优化,很多现象需要在5.5才能演示成功。使用EXPLAIN关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理你的SQL语句的。分析你的查询语句或是表结构的表的读取顺序那些索引可以使用数据读取操作的操作类型那些索引被实际使用表之间的引用每张表有多少行被物理查询select查询的序列号,表示查询中执行select子句或操作表的顺序id为NULL最后执行。

2023-06-09 11:02:01 1427

原创 04_索引的使用场景

Why:提高了查询速度,同时却会降低更新表的速度,如对表进行INSERT、UPDATE和DELETE。因为更新表时,MySQL不仅要保存数据,还要保存一下索引文件。查询中排序的字段,排序字段若通过索引去访问将大大提高排序速度。单键/组合索引的选择问题, 组合索引性价比更高。查询中与其它表关联的字段,外键关系建立索引。Where条件里用不到的字段不创建索引。频繁作为查询条件的字段应该创建索引。经常增删改的表或者字段。过滤性不好的不适合建索引。查询中统计或者分组字段。有大量重复数据的列上。

2023-06-09 09:24:38 1634

原创 02_MySQL的索引结构

一颗b树,浅蓝色的块我们称之为一个磁盘块(innodb默认16kb一个磁盘块),可以看到每个磁盘块包含几个数据项(深蓝色所示)、指向关键字具体信息的指针(红色)和指向其他磁盘块的指针(黄色所示)如磁盘块1包含数据项17和35,包含指针P1、P2、P3,P1表示小于17的磁盘块,P2表示在17和35之间的磁盘块,P3表示大于35的磁盘块。

2023-06-09 09:23:03 891

原创 01_MySQL索引简介

MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构。可以得到索引的本质:索引是数据结构。索引的目的在于提高查询效率,可以类比字典,如果要查“mysql”这个单词,我们肯定需要定位到m字母,然后从上往下找到y字母,再找到剩下的sql。如果没有索引,那么你可能需要a----z,如果我想找到Java开头的单词呢?或者Oracle开头的单词呢?是不是觉得如果没有索引,这个事情根本无法完成?你可以简单理解为“排好序的快速查找数据结构”。

2023-06-09 08:40:11 1596

原创 商城领域业务逻辑总结

① 首页的访问量非常大,而首页中的商品类目访问量更大,鼠标移动就在访问,查询所有的数据,如果每次访问都实时到数据库获取数据,数据库的访问压力太大。虽然只是一个查询操作,但是由于频繁的访问所以我们必须对其性能进行最大程度的优化。② 所以,比如我们一级类目查询下级目录数据放入Redis缓存来提高性能,这里我们为了降级业务之间耦合度,提高程序的可用性,采用优雅的自定义AOP注解和切面类来实现缓存,主功能代码不做修改,只是根据父id查询商品分类列表数据。③ 在自定义注解中设置以下参数:缓存前缀名,

2023-06-04 13:56:34 1247

原创 实战面试题录音总结

实战面试题录音总结

2023-06-02 21:31:30 872

原创 一篇学会MySQL索引优化、JUC、JVM 吊打面试官!

01_JUC概述_书启秋枫的博客-优快云博客02_Lock锁_书启秋枫的博客-优快云博客03_线程间通信_书启秋枫的博客-优快云博客04_并发容器类_书启秋枫的博客-优快云博客05_JUC强大的辅助类_书启秋枫的博客-优快云博客06_Callable接口_书启秋枫的博客-优快云博客07_阻塞队列(BlockingQueue)_书启秋枫的博客-优快云博客08_ThreadPool线程池_书启秋枫的博客-优快云博客09_多线程高并发底层原理_书启秋枫的博客-优快云博客01_JVM快速入门_书启

2023-05-26 10:47:15 1380

原创 04_GC垃圾回收

面试题:JVM内存模型以及分区,需要详细到每个区放什么堆里面的分区:Eden,survival from to,老年代,各自的特点。GC的三种收集方法:标记清除、标记整理、复制算法的原理与特点,分别用在什么地方Minor GC与Full GC(MajorGC)分别在什么时候发生JVM垃圾判定算法:(对象已死?引用计数法(Reference-Counting)可达性分析算法(根搜索算法)GC垃圾回收主要有四大算法:(怎么找到已死对象并清除?复制算法(Copying)

2023-05-26 10:36:44 985

原创 03_堆+MAT工具

Java7之前Heap 堆:一个JVM实例只存在一个堆内存,堆内存的大小是可以调节的。类加载器读取了类文件后,需要把类、方法、常变量放到堆内存中,保存所有引用类型的真实信息,以方便执行器执行,堆内存逻辑上分为三部分:Young Generation Space 新生区 Young/NewTenure generation space 养老区 Old/TenurePermanent Space 永久区 Perm也称为:新生代(年轻代)、老年代、永久代(持久代)。其中JVM堆分为新生代和老年代。

2023-05-26 10:21:30 1347

原创 02_stack栈

每执行一个方法都会产生一个栈帧,保存到栈(后进先出)的**顶部,顶部栈就是当前的方法,该方法执行完毕后会自动将此栈帧出栈。(Stack Frame)的格式存在,栈帧是一个内存区块,是一个数据集,是一个有关方法(Method)和运行期数据的数据集。都是在函数的栈内存中分配。执行完毕后,先弹出F3栈帧,再弹出F2栈帧,再弹出F1栈帧……当一个方法A被调用时就产生了一个栈帧 F1,并被压入到栈中,栈帧 2 处于栈底,执行完毕后,依次弹出栈帧 1和栈帧 2,A方法又调用了 B方法,于是产生栈帧 F2 也被压入栈,

2023-05-26 10:07:04 1513

原创 01_JVM快速入门

存在方法区中But。

2023-05-26 10:01:44 1123

原创 CentOS压力测试 ab 命令安装与使用

【代码】CentOS压力测试 ab 命令安装与使用。

2023-05-17 11:33:14 1752

原创 Springboot 整合 RabbitMQ 注解实现Topic模式

Springboot 整合 RabbitMQ-Topic。

2023-05-15 21:27:30 653

原创 SpringBoot 使用 ElasticSearch 编程测试

【代码】SpringBoot 使用 ElasticSearch 编程测试。

2023-05-10 21:18:43 683 4

原创 ElasticSearch 中 FieldType 详解

date 、float、long都是不能够被拆分的

2023-05-10 18:29:31 1342

原创 Docker 安装 elasticsearch、kibana、ik

【代码】Docker 安装 elasticsearch、kibana、ik。

2023-05-10 09:42:07 1426

原创 09_多线程高并发底层原理

① Sync抽象类② NonfairSync③ FairSync

2023-04-27 20:45:23 577

原创 08_ThreadPool线程池

17 任务:线程数已满 任务队列已满 丢弃5任务 6,7,8,9,10,11,12,13,16,17。16 任务:线程数已满 任务队列已满 丢弃4任务 5,6,7,8,9,10,11,12,13,16。4,5,6,7,8,9,10,11,12,13 任务:存到任务队列中 4最先进入到任务队列。4,5,6,7,8,9,10,11,12,13 任务:存到任务队列中 4最先进入到任务队列。1,2,3 任务:创建核心线程处理。1,2,3 任务:创建核心线程处理。计算(CPU)密集型。

2023-04-27 20:33:39 1001

原创 07_阻塞队列(BlockingQueue)

在多线程领域:所谓阻塞,在某些情况下会挂起线程(即阻塞),一旦条件满足,被挂起的线程又会自动被唤起BlockingQueue即阻塞队列,是java.util.concurrent下的一个接口,因此不难理解,BlockingQueue是为了解决多线程中数据高效安全传输而提出的。从阻塞这个词可以看出,在某些情况下对阻塞队列的访问可能会造成阻塞。当队列满了的时候进行入队列操作当队列空了的时候进行出队列操作因此,当一个线程试图对一个已经满了的队列进行入队列操作时,它将会被阻塞,除非有另一个线程做了出队列操作;

2023-04-27 19:49:49 763

原创 06_Callable接口

一旦计算完成,就不能再重新开始或取消计算。get方法获取结果只有在计算完成时获取,否则会一直阻塞直到任务转入完成状态,然后会返回结果或者抛出异常。这是一个函数式接口,因此可以用作lambda表达式或方法引用的赋值对象。

2023-04-27 19:14:36 982

原创 05_JUC强大的辅助类

05_JUC强大的辅助类。

2023-04-27 18:40:43 990

原创 04_并发容器类

CopyOnWrite容器也是一种读写分离的思想,读和写不同的容器。他们都有synchronized关键字,说明都是线程安全的。CopyOnWrite并发容器用于读多写少的并发场景。通过synchronized来实现同步的容器。在并发下进行迭代的读和写时并不是线程安全的。迭代器涉及的代码没有加上线程同步代码。CopyOnWrite容器。

2023-04-27 16:16:19 1168

原创 03_线程间通信

注意,消费者被唤醒后是从wait()方法(被阻塞的地方)后面执行,而不是重新从同步块开头。删掉increment和decrement方法的synchronized。修改标识符,通知下一个。

2023-04-27 15:47:50 951

原创 02_Lock锁

相比同步锁,JUC包中的Lock锁的功能更加强大,它提供了各种各样的锁(公平锁,非公平锁,共享锁,独占锁……),所以使用起来很灵活。

2023-04-27 15:03:47 1014

原创 01_JUC概述

JUC概述。

2023-04-25 16:55:16 776

原创 ShardingSphere-JDBC广播表

指所有的分片数据源中都存在的表,表结构及其数据在每个数据库中均完全一致。适用于数据量不大且需要与海量数据的表进行关联查询的场景,例如:字典表。广播具有以下特性:(1)插入、更新操作会实时在所有节点上执行,保持各个分片的数据一致性(2)查询操作,只从一个节点获取(3)可以跟任何一个表进行 JOIN 操作。

2023-04-24 17:23:19 888

原创 ShardingSphere-JDBC绑定表

ShardingSphere-JDBC绑定表。

2023-04-24 17:20:15 1632

原创 ShardingSphere-JDBC水平分片

ShardingSphere-JDBC水平分片

2023-04-24 17:06:05 834

原创 ShardingSphere-JDBC垂直分片

ShardingSphere-JDBC垂直分片。

2023-04-24 16:45:10 734

原创 ShardingSphere-JDBC读写分离

基于之前搭建的mysql主从读写分离使用ShardingSphere-JDBC实现读写分离。

2023-04-24 16:17:41 556

原创 ShardingSphere介绍

程序代码封装 中间件封装

2023-04-24 16:10:13 228

原创 Docker 部署 MySQL 一主多从

【代码】Docker 部署 MySQL 一主多从。

2023-04-22 18:53:02 2037 1

原创 03_MySQL索引分类

03_MySQL索引分类。

2023-04-21 21:01:14 757

原创 MySQL常见七种通用的Join查询练习题

【代码】MySQL常见七种通用的Join查询练习题。

2023-04-21 18:54:37 1115

原创 Java琐碎知识点

实现幂等性的方式可以因具体的应用场景而异,但以下是几种常见的实现方式

2023-04-18 15:10:34 1007

原创 SpringBoot+Vue处理前后端分离跨域问题

【代码】SpringBoot+Vue处理前后端分离跨域问题。

2023-04-08 08:56:10 625

原创 Docker 创建 nginx 容器【统一访问路径】

注意:反向代理的是idea启动的项目的ip。

2023-04-02 16:17:03 605

原创 EasyExcel 实现读写 Excel 超多案例

文档必读:https://www.yuque.com/easyexcel/doc/fill。

2023-03-27 21:11:31 1351 1

CentOS7下安装的各种压缩包

JDK 1.8 Tomcat 9.0.37 Mysql 5.6.34 Nginx 1.9.15 ZooKeeper 3.5.5 Redis 4.0.6 RabbitMQ 3.4.1

2023-02-20

课程设计题目七:票务公司网上订票系统

课程设计题目七:票务公司网上订票系统 人们在物质生活得到一定的满足后,必将寻求文化生活的满足。所以文化事业将会空前繁荣。票务公司就是专门订票,送票的演出票务中介公司,而基于网络的B/S系统是最适合票务公司业务的管理信息系统。 实现以下功能: 1.对演出信息的管理,包括分类管理,图文管理,时间管理等 2.对于订单的管理,包括所有者信息管理,订单内容管理,用户能够预约某场演出的票。 3.对于页面的设计。比如喜欢爵士乐的用户在浏览某爵士乐演出信息的时候,旁边有需要促销或热门的爵士乐演出小广告(是实时的,1月份看和3月份看同一个爵士乐演出信息,在3月份可以看到最新的广告信息)。

2023-01-05

软件测试文档-基于协同的在线表格forture-sheet(苏州科技大学)

源码地址github:https://github.com/ruilisi/fortune-sheet 软件需求说明书(GB856T——88) 项目开发计划(GB856T——88) 概要设计说明书(GB8567——88) 数据要求说明书(GB856T——88) 数据库设计说明书(GB8567——88) 详细设计说明书(GB8567——88) 测试分析报告(GB8567——88) 测试计划(GB8567——88) 操作手册(GB8567——88) 用户手册(GB8567——88)

2022-12-22

机器学习实验报告+代码(苏州科技大学)

实验1-逻辑回归 实验2-单隐层神经网络 实验3-多隐层神经网络 实验4-强化学习

2022-12-22

JavaEE上机实验报告和代码

实验1(JSP技术及JSP语法基础) 实验2(JavaBean组件程序设计) 实验3(Servlet基础) 实验4(客户请求的处理与服务器响应的生成) 实验5(MVC设计模式) 实验6(Spring应用基础) 实验7(Hibernate或MyBatis应用基础) 实验8(Struts2或SpringMVC框架) 实验9(JavaEE应用实例)

2022-08-03

Java网络程序设计+JDBC程序设计+模拟QQ微信的即时网络通信应用程序

实践周子任务一(Java网络程序设计):掌握Socket编程的基本方法和步骤,实现一个带有图形用户界面的网络通信程序。 实践周子任务二(JDBC程序设计):了解JDBC工作的基本原理和掌握JDBC编程的基本步骤,按要求编写一个带有图形用户界面的数据库应用程序,具备增加、删除、查询、修改功能。 实践周高级子任务:结合子任务一和二,构建一个带有消息存储功能的即时网络通信应用程序。样式类似QQ或微信。

2022-08-03

基于Java的报刊订阅管理系统(JavaFX+数据库)(课程报告+代码实现)

注意:全网站最全最新最优秀(信我开心,不信倒霉,坑我已踩完!) 通过对企业的报刊订阅业务进行分析、调查,报刊订阅管理系统主要实现以下功能: ①录入功能:录入订阅人员信息、报刊基本信息; ②订阅功能:订阅人员订阅报刊(并计算出其金额); ③查询功能:按人员查询、按报刊查询、按部门查询有关订阅信息; ④统计功能:按报刊统计、按人员统计、按部门统计;

2022-08-03

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除