
随堂笔记
文章平均质量分 96
随堂笔记
時光心向阳
欢迎光临時光的博客园子:
https://blog.shiguangdev.cn ,
https://blog.shiguang88.icu ,
https://blog.shiguang666.eu.org
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【尚硅谷】JVM-类的加载篇
类模板对象所谓类模板对象,其实就是Java类在JVM内存中的一个快照,JVM将从字节码文件中解析出的常量池、类字段、类方法等信息存储到类模板中,这样JVM在运行期便能通过类模板而获取Java类中的任意信息,能够对Java类的成员变量进行遍历,也能进行Java方法的调用。反射的机制即基于这一基础。如果JVM没有将Java类的声明信息存储起来,则JVM在运行期也无法反射。类模型的位置加载的类在JVM中创建相应的类结构,类结构会存储在方法区(JDK1.8之前:永久代;JDK1.8及之后:元空间)。原创 2024-12-21 00:03:40 · 900 阅读 · 0 评论 -
【尚硅谷】JVM-字节码篇
官方的说明:Oracle JDK下载路径:Open JDK下载路径:Oracle与OpenJDK之间的主要区别Oracle JDK版本将每三年发布一次LTS版本,而OpenJDK版本每三个月发布一次。Oracle JDK将更多地关注稳定性,它重视更多的企业级用户,而OpenJDK经常发布以支持其他性能,这可能会导致不稳定。Oracle JDK支持长期发布的更改,而Open JDK仅支持计划和完成下一个发行版。原创 2024-12-21 00:03:19 · 849 阅读 · 0 评论 -
【尚硅谷】SpringCloud-SpringBoot和SpringCloud版本选型
代码仓库。原创 2024-12-21 00:02:08 · 911 阅读 · 0 评论 -
【尚硅谷】SpringCloud-微服务架构编码Base工程模块构建
在线视频:尚硅谷2024最新SpringCloud教程,springcloud从入门到大牛课程资料:尚硅谷2024最新版SpringCloud教程代码仓库Gitee: https://gitee.com/an_shiguang/learn-springcloudGitHub : https://github.com/Shiguang-coding/learn-springcloud需求说明订单、支付模块业务需求说明规范 && 习惯 && 教诲约定 &原创 2024-12-21 00:01:47 · 900 阅读 · 0 评论 -
【尚硅谷】SpringCloud-关于Cloud各种组件的停更-升级-替换
代码仓库。原创 2024-12-21 00:01:15 · 338 阅读 · 0 评论 -
【尚硅谷】JUC基础篇(2021版)
大厂必备技术之JUC并发编程B站直达2021版: 【尚硅谷】大厂必备技术之JUC并发编程2022版: 尚硅谷JUC并发编程(对标阿里P6-P7)课程资料2021版:尚硅谷高级技术之JUC高并发编程2021最新版2022版:尚硅谷JUC并发编程与源码分析2022代码仓库GitHub: https://github.com/Shiguang-coding/learn-jucGitee: https://gitee.com/an_shiguang/learn-juc1、什么是JUC1.1原创 2024-12-20 10:39:30 · 932 阅读 · 0 评论 -
【尚硅谷】Docker快速通关
Docker 官网: https://www.docker.com/Docker 是一个开源的容器化平台,它允许开发者将应用程序及其依赖项打包到一个轻量级的、可移植的容器中。Docker CLI是用户与 Docker 交互的接口,用户通过它发送命令。是运行 Docker 守护进程的机器,负责处理 Docker CLI 的命令并管理容器和镜像。容器是基于镜像创建的运行实例,由 Docker Host 管理。镜像是容器的只读模板,定义了容器的行为和环境。仓库。原创 2024-12-20 10:37:57 · 1201 阅读 · 0 评论 -
【尚硅谷】Redis7实战(基础篇)
Redis:RemoteDictionaryServer(远程字典服务器)Redis(Remote Dictionary Server)是一个开源的内存数据库,遵守 BSD 协议,它提供了一个高性能的键值(key-value)存储系统,常用于缓存、消息队列、会话存储等应用场景。本课程采用7.0.0版本gcc是linux下的一个编译程序,是C程序的编译工具。原创 2024-12-20 10:37:44 · 956 阅读 · 0 评论 -
【尚硅谷】快速启动框架:SpringBoot3实战
SpringBoot 官网 介绍到目前为止,你已经学习了多种配置Spring程序的方式。但是无论使用XML、注解、Java配置类还是他们的混合用法,你都会觉得配置文件过于复杂和繁琐,让人头疼!SpringBoot 帮我们简单、快速地创建一个独立的、生产级别的Spring 应用(说明:SpringBoot底层是Spring),大多数 SpringBoot 应用只需要编写少量配置即可快速整合 Spring 平台以及第三方技术!为所有 Spring 开发提供更快速、可广泛访问的入门体验。原创 2024-12-20 10:36:11 · 1217 阅读 · 0 评论 -
【尚硅谷】终极实战:SpringBoot版微头条实战
用户功能注册功能登录功能jwt实现头条新闻新闻的分页浏览通过标题关键字搜索新闻查看新闻详情新闻的修改和删除前端技术栈ES6作为基础JS语法nodejs用于运行环境npm用于项目依赖管理工具vite用于项目的构建架工具Vue3用于项目数据的渲染框架Axios用于前后端数据的交互Router用于页面的跳转Pinia用于存储用户的数据LocalStorage作为用户校验token的存储手段Element-Plus提供组件后端技术栈。原创 2024-12-20 10:36:53 · 1289 阅读 · 0 评论 -
【尚硅谷】框架实战:SSM整合原理和实战
在线视频:尚硅谷新版SSM框架全套视频教程,Spring6+SpringBoot3最新SSM企业级开发在线文档:框架实战:SSM整合原理和实战课程资料:https://pan.baidu.com/s/1R8Q-u4xV5rKOSTL8cRpwfQ?pwd=jf3xGitee: https://gitee.com/an_shiguang/learn-ssmGitHub: https://github.com/Shiguang-coding/learn-ssmSSM整合理解什么是SSM整合?微原创 2024-12-20 10:36:33 · 1140 阅读 · 0 评论 -
【尚硅谷】高效构建Java应用:Maven入门和进阶
Maven 是一款为 Java 项目构建管理、依赖管理的工具(软件),使用 Maven 可以自动化构建、测试、打包和发布项目,大大提高了开发效率和质量。总结:Maven就是一个软件,掌握软件安装、配置、以及基本功能**(项目构建、依赖管理)**使用就是本课程的主要目标!核心点掌握目标安装maven安装、环境变量、maven配置文件修改工程创建gavp属性理解、JavaSE/EE工程创建、项目结构依赖管理依赖添加、依赖传递、版本提取、导入依赖错误解决构建管理构建过程、构建场景、构建周期等。原创 2024-12-20 10:35:48 · 914 阅读 · 0 评论 -
【尚硅谷】SpringFramework实战指南
在线视频:尚硅谷新版SSM框架全套视频教程,Spring6+SpringBoot3最新SSM企业级开发在线文档:SpringFramework实战指南课程资料:https://pan.baidu.com/s/1R8Q-u4xV5rKOSTL8cRpwfQ?pwd=jf3x代码仓库:Gitee: https://gitee.com/an_shiguang/learn-ssmGitHub: https://github.com/Shiguang-coding/learn-ssm技术体系结构总体原创 2024-12-20 10:35:29 · 886 阅读 · 0 评论 -
【尚硅谷】SpringMVC实战:构建高效表述层框架
在线视频:尚硅谷新版SSM框架全套视频教程,Spring6+SpringBoot3最新SSM企业级开发在线笔记:SpringMVC实战:构建高效表述层框架课程资料:https://pan.baidu.com/s/1R8Q-u4xV5rKOSTL8cRpwfQ?pwd=jf3xGitee: https://gitee.com/an_shiguang/learn-ssmGitHub: https://github.com/Shiguang-coding/learn-ssmSpringMVC简介和体原创 2024-12-20 10:35:06 · 634 阅读 · 0 评论 -
【尚硅谷】RabbitMQ
在线视频:尚硅谷2024最新RabbitMQ教程,消息中间件RabbitMQ迅速上手!官方资料: 尚硅谷2024最新版RabbitMQ视频代码Gitee:https://gitee.com/an_shiguang/learn-rabbitmqGitHub: https://github.com/Shiguang-coding/learn-rabbitmqMQ的相关概念什么是MQMQ(message queue),从字面意思上看,本质是个队列,FIFO先入先出,只不过队列中存放的内容是mes原创 2024-12-20 10:34:32 · 1411 阅读 · 0 评论 -
【尚硅谷】Nginx
Nginx(“engine x”)是一个高性能的HTTP和反向代理服务器,特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。Ngix动静分离简单来说就是把动态跟静态请求分开,不能理解成只是单纯的把动态页面和静态页面物理分离。严格意义上说应该是动态请求跟静态请求分开,可以理解成使用Nginx处理静态页面,Tomcat处理动态页面。原创 2024-12-20 10:34:11 · 951 阅读 · 0 评论 -
【尚硅谷】跨域解决方案梳理
同源策略是浏览器为确保资源安全,而遵循的一种策略,该策略对访问资源进行了一些限制。。1、 源的组成部分2、下面表格中,只有最后一行的两个源是同源。3、同源请求4、非同源请求总结:『所处源』与『目标源』不一致,就是『非同源』,又称『异源』或『跨域』。(跨域资源共享),是用于控制浏览器校验跨域请求的一套规范,服务器依照 CORS 规范,添加特定响应头服务器明确表示拒绝跨域请求,或没有表示,则浏览器校验不通过。服务器明确表示允许跨域请求,则浏览器校验通过。原创 2024-12-20 10:33:53 · 819 阅读 · 0 评论 -
【尚硅谷】MySQL-主从复制
在实际工作中,我们常常将Redis作为缓存与MySQL配合来使用,当有请求的时候,首先会从缓存中进行查找,如果存在就直接取出。如果不存在再访问数据库,这样就提升了读取的效率,也减少了对后端数据库的访问压力。Redis的缓存架构是高并发架构中非常重要的一环。此外,一般应用对数据库而言都是“读多写少”,也就说对数据库读取数据的压力比较大,有一个思路就是采用数据库集群的方案,做主从架构、进行读写分离,这样同样可以提升数据库的并发处理能力。原创 2024-12-20 10:33:37 · 618 阅读 · 0 评论 -
【尚硅谷】MySQL-性能分析工具的使用
*定位了查询慢的SQL之后,我们就可以使用EXPLAIN或DESCRIBE工具做针对性的分析查询语句。**DESCRIBE语句的使用方法与EXPLAIN语句是一样的,并且分析结果也是一样的。MySQL中有专门负责优化SELECT语句的优化器模块,主要功能:通过计算分析系统中收集到的统计信息,为客户端请求的Query提供它认为最优的执行计划(他认为最优的数据检索方式,但不见得是DBA认为是最优的,这部分最耗费时间)。原创 2024-12-20 10:33:22 · 677 阅读 · 0 评论 -
【千峰教育】Git快速入门
Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。官网:https://git-scm.com/分支,是一个个版本最终存储的位置。分支,就是一条时间线,每次git commit形成一个个版本,一个个版本依次存储在分支的一个个提交点上。分支由多个提交点组成,分支上会有一个指针,默认总是指向最新的提交点。原创 2024-12-19 09:41:12 · 1044 阅读 · 0 评论 -
【尚硅谷】MySQL-锁
锁是计算机协调多个进程或线程并发访问某一资源的机制。在程序开发中会存在多线程同步的问题,当多个线程并发访问某个数据的时候,尤其是针对一些敏感的数据(比如订单、金额等),我们就需要保证这个数据在任何时刻最多只有一个线程在访问,保证数据的完整性和一致性。在开发过程中加锁是为了保证数据的一致性,这个思想在数据库领域中同样很重要。在数据库中,除传统的计算资源(如CPU、RAM、I/O等)的争用以外,数据也是一种供许多用户共享的资源。为保证数据的一致性,需要对并发操作进行控制,因此产生了锁。同时锁机制。原创 2024-12-19 09:43:06 · 625 阅读 · 0 评论 -
【尚硅谷】MySQL-索引优化与查询优化
理解方式一:索引是高效找到行的一个方法,但是一般数据库也能使用索引找到一个列的数据,因此它不必读取整个行。毕竟索引叶子节点存储了它们索引的数据;当能通过读取索引就可以得到想要的数据,那就不需要读取行了。一个索引包含了满足查询结果的数据就叫做覆盖索引。理解方式二:非聚簇复合索引的一种形式,它包括在查询里的SELECT、JOIN和WHERE子句用到的所有列 (即建索引的字段正好是覆盖查询条件中所涉及的字段)。简单说就是,索引列+主键包含SELECT 到 FROM之间查询的列。# 删除之前的索引。原创 2024-12-19 09:42:45 · 768 阅读 · 0 评论 -
【尚硅谷】Mysql-索引的数据结构
MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构。索引的本质:索引是数据结构。你可以简单理解为“排好序的快速查找数据结构”,满足特定查找算法。这些数据结构以某种方式指向数据, 这样就可以在这些数据结构的基础上实现高级查找算法。索引是在存储引擎中实现的,因此每种存储引擎的索引不一定完全相同,并且每种存储引擎不一定支持所有索引类型。同时,存储引擎可以定义每个表的最大索引数和最大索引长度。所有存储引擎支持每个表至少16个索引,总索引长度至少为256字节。原创 2024-12-19 09:42:21 · 581 阅读 · 0 评论 -
【尚硅谷】MySQL-索引的创建与设计原则
① 冗余索引举例:建表语句如下我们知道,通过索引就可以对 name 列进行快速搜索,再创建一 个专门针对name列的索引就算是一个冗余索引,维护这个索引只会增加维护的成本,并不会对搜索有 什么好处。② 重复索引另一种情况,我们可能会对某个列重复建立索引col2 INT,我们看到,col1 既是主键、又给它定义为一个唯一索引,还给它定义了一个普通索引,可是主键本身就 会生成聚簇索引,所以定义的唯一索引和普通索引是重复的,这种情况要避免。原创 2024-12-19 09:41:54 · 733 阅读 · 0 评论 -
【尚硅谷】MySQL-数据库备份与恢复
数据迁移(data migration)是指选择、准备、提取和转换数据,并将数据从一个计算机存储系统永久地传输到另一个计算机存储系统的过程。此外,验证迁移数据的完整性和退役原来旧的数据存储,也被认为是整个数据迁移过程的一部分。数据库迁移的原因是多样的,包括服务器或存储设备更换、维护或升级,应用程序迁移,网站集成,灾难恢复和数据中心迁移。根据不同的需求可能要采取不同的迁移方案,但总体来讲,MySQL 数据迁移方案大致可以分为物理迁移和逻辑迁移两类。通常以尽可能自动化。原创 2024-12-19 09:41:40 · 829 阅读 · 0 评论 -
【尚硅谷】MySQL-事务基础知识
官方资料:代码仓库事务是数据库区别于文件系统的重要特性之一,当我们有了事务就会让数据库始终保持一致性,同时我们还能通过事务的机制恢复到某个时间点,这样可以保证已提交到数据库的修改不会因为系统崩溃而丢失。原创 2024-12-17 09:35:35 · 945 阅读 · 0 评论 -
【尚硅谷】MySQL-其他数据库日志
中继日志只在主从服务器架构的从服务器上存在。从服务器为了与主服务器保持一致,要从主服务器读取二进制日志的内容,并且把读取到的信息写入本地的日志文件中,这个从服务器本地的日志文件就叫中继日志。然后,从服务器读取中继日志,并根据中继日志的内容对从服务器的数据进行更新,完成主 从服务器的 数据同步。搭建好主从服务器之后,中继日志默认会保存在从服务器的数据目录下。从服务器名 -relay-bin.序号。从服务器名 -relaybin.index,用来定位当前正在使用的中继日志。原创 2024-12-17 09:33:12 · 1010 阅读 · 0 评论 -
【尚硅谷】MySQL-多版本并发控制
MVCC (Multiversion Concurrency Control),多版本并发控制。顾名思义,MVCC 是通过数据行的多个版本管理来实现数据库的并发控制。这项技术使得在InnoDB的事务隔离级别下执行一致性读操作有了保证。换言之,就是为了查询一些正在被另一个事务更新的行,并且可以看到它们被更新之前的值,这样 在做查询的时候就不用等待另一个事务释放锁。MVCC没有正式的标准,在不同的DBMS中MVCC的实现方式可能是不同的,也不是普遍使用的(大家可以参考相关的DBMS文档)。原创 2024-12-17 09:32:51 · 807 阅读 · 0 评论 -
【尚硅谷】MySQL-MySQL事务日志
官方资料:代码仓库事务有4种特性:原子性、一致性、隔离性和持久性。那么事务的四种特性到底是基于什么机制实现呢?锁机制重做日志回滚日志有的DBA或许会认为 UNDO 是 REDO 的逆过程,其实不然。REDO 和 UNDO都可以视为是一种恢复操作"物理级别"逻辑操作事务的回滚逆操作一致性非锁定读。原创 2024-12-17 09:32:08 · 751 阅读 · 0 评论 -
【尚硅谷】Mysql-InnoDB数据存储结构
页a、页b、页c…页n 这些页可以不在物理结构上相连,只要通过双向链表相关联即可。每个数据页中的记录会按照主键值从小到大的顺序组成一个单向链表,每个数据页都会为存储在它里边的记录生成一个页目录,在通过主键查找某条记录的时候可以在页目录中使用二分法快速定位到对应的槽,然后再遍历该槽对应分组中的记录即可快速找到指定的记录。原创 2024-12-17 09:31:47 · 1023 阅读 · 0 评论 -
【尚硅谷】MyBatis实践:提高持久层数据处理效率
在线视频:尚硅谷新版SSM框架全套视频教程,Spring6+SpringBoot3最新SSM企业级开发在线笔记:MyBatis实践:提高持久层数据处理效率课程资料:https://pan.baidu.com/s/1R8Q-u4xV5rKOSTL8cRpwfQ?pwd=jf3xGitee: https://gitee.com/an_shiguang/learn-ssmGitHub: https://github.com/Shiguang-coding/learn-ssmMybatis简介简介原创 2024-12-17 09:31:14 · 1099 阅读 · 0 评论 -
【尚硅谷】MyBatis-Plus高级用法:最优化持久层开发
Mybatis-Plus官网(简称 MP)是一个MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。自动生成单表的CRUD功能提供丰富的条件拼接方式全自动ORM类型持久层框架mybatis-plus的默认mapperxml位置mybatis-plus: # mybatis-plus的配置# 默认位置 private String[] mapperLocations = new String[]{"classpath*:/mapper/**/*.xml"}原创 2024-12-17 09:30:49 · 782 阅读 · 0 评论 -
【尚硅谷】MyBatis
在线视频:https://www.bilibili.com/video/BV1VP4y1c7j7百度网盘:尚硅谷2022版MyBatis教程阿里云盘:尚硅谷2022版MyBatis教程(仅视频)Gitee:https://gitee.com/an_shiguang/learn-mybatis/GitHub:https://github.com/Shiguang-coding/learn-mybatis/MyBatis 简介MyBatis历史MyBatis最初是Apache的一个开源项目iB原创 2024-12-17 09:30:31 · 907 阅读 · 0 评论 -
【尚硅谷】JAVA基础-异常&Object
1.概述:代码出现了不正常的现象;在java中,异常都是一个一个的类//错误Error -> StackOverflowError//method();//运行时期异常 -> ArrayIndexOutOfBoundsException/*编译时期异常:注意看:编译时期异常是我们代码写错了嘛?不是,当我们调用方法的时候该方法底层给我们抛了一个编译时期异常,所以导致我们一调用此方法一编译,就爆红了当我们一旦触发了这个异常,jvm就会将异常信息打印到控制台上,给程序员们看*/原创 2024-12-17 09:30:02 · 647 阅读 · 0 评论 -
【尚硅谷】JAVA基础-网络编程
正则表达式-预定义字符语法示例:1. "." : 匹配任何字符。(重点) 不能加[]2. "\\d":任何数字[0-9]的简写;(重点)3. "\\D":任何非数字[^0-9]的简写;4. "\\s": 空白字符:[ \t\n\x0B\f\r] 的简写5. "\\S": 非空白字符:[^\s] 的简写6. "\\w":单词字符:[a-zA-Z_0-9]的简写(重点)7. "\\W":非单词字符:[^\w]//预定义字符//1.验证字符串是否是三位数字。原创 2024-12-17 09:29:38 · 962 阅读 · 0 评论 -
【尚硅谷】JAVA基础-集合
在线视频:尚硅谷2024最新Java入门视频教程(下部)-集合课程资料:尚硅谷2024新版Java基础随堂代码:https://gitee.com/an_shiguang/learn-java重点内容:1.知道集合的特点以及作用2.会使用Collection接口中的方法3.会使用迭代器迭代集合4.会ArrayList以及LinkedList的使用5.会使用增强for遍历集合集合框架(单列集合)1.之前我们学了保存数据的有:变量,数组,但是数组定长,所以如果添加一个数据或者删除一个原创 2024-12-17 09:28:45 · 849 阅读 · 0 评论 -
【尚硅谷】JAVA基础-多线程
主线程 : CPU 和内存之间开辟的转门为main方法服务的线程指的是两个或者两个以上的线程在执行的过程中由于竞争同步锁而产生的一种阻塞现象;如果没有外力的作用,他们将无法继续执行下去,这种情况称之为死锁根据上图所示:线程1正在持有锁1,但是线程1必须再拿到锁2,才能继续执行而线程2正在持有锁2,但是线程2需要再拿到锁1,才能继续执行此时两个线程处于互相等待的状态,就是死锁,在程序中的死锁将出现在同步代码块的嵌套中当线程被创建并启动以后,它既不是一启动就进入了执行状态,也不是一直处于执行状态。原创 2024-12-17 09:28:00 · 891 阅读 · 0 评论 -
【尚硅谷】JAVA基础-JDK新特性
1.面向对象思想:是Java的核心编程思想强调的是找对象,帮我们做事儿比如:去北京 -> 强调的是怎么去,火车,高铁,飞机,汽车,自行车,腿儿2.jdk8开始又了个新的思想:函数式编程思想:强调的是结果,不强调过程比如:去北京 -> 只强调去了还是没去3.Lambda表达式:可推导的就是可省略的a.定义格式:()->{}b.各部分解释:() : 重写方法的参数位置-> : 将参数传递到方法体中{} : 重写方法的方法体@Override。原创 2024-12-17 09:25:04 · 790 阅读 · 0 评论 -
【尚硅谷】JAVA基础-API
1.概述:String 类代表字符串2.特点:aJava 程序中的所有字符串字面值(如 "abc" )都作为此类的实例(对象)实现凡是带双引号的,都是String的对象"abc"就是对象;String就是对象的数据类型;s就是对象名b.字符串是常量,它们的值在创建之后不能更改s+="world" -> 会产生新对象cString 对象是不可变的,所以可以共享1.概述:一个可变的字符序列,此类提供了一个与StringBuffer兼容的一套API,但是不保证同步(线程不安全,效率高)原创 2024-12-17 09:24:44 · 1033 阅读 · 0 评论