- 博客(96)
- 收藏
- 关注
原创 【MySQL高级】第1-4章
MySQL存储引擎决定了数据在磁盘上的存储方式和访问方式。不同的存储引擎实现了不同的存储和检索算法,因此它们在处理和管理数据的方式上存在差异。MySQL常见的存储引擎包括InnoDB、MyISAM、Memory、Archive等。每个存储引擎都有自己的特点和适用场景。例如,InnoDB引擎支持事务和行级锁定,适用于需要高并发读写的应用;MyISAM引擎不支持事务,但适用于读操作较多的应用;Memory引擎数据全部存储在内存中,适用于对读写速度要求很高的应用等等。(基于Hash算法)
2024-12-31 17:32:26
1083
原创 【MySQL初级】第5-11章
数据库表设计的原则。教你怎么设计数据库表有效,并且节省空间。事务是一个最小的工作单元。在数据库当中,事务表示一件完整的事儿。一个业务的完成可能需要多条DML语句共同配合才能完成,例如转账业务,需要执行两条DML语句,先更新张三账户的余额,再更新李四账户的余额,为了保证转账业务不出现问题,就必须保证要么同时成功,要么同时失败,怎么保证同时成功或者同时失败呢?就需要使用事务机制。也就是说用了事务机制之后,在同一个事务当中,多条DML语句会同时成功,或者同时失败,不会出现一部分成功,一部分失败的现象。
2024-12-30 15:18:13
792
原创 【MySQL初级】第1-4章
前言50个要点第1章 什么是数据库1.1 什么是数据库数据库是一门独立的学科,只要是做软件开发的,数据库都要学。数据库(电子化的文件柜)是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。它的存储空间很大,可以存放百万条、千万条、上亿条数据。数据库并不是随意地将数据进行存放,是有一定的规则的,否则查询的效率会很低。当今世界是一个充满着数据的互联网世界,充斥着大量的数据。即这个互联网世界就是数据世界。数据的来源有很多,
2024-12-29 13:38:26
1003
原创 【Java数据结构与算法】第10-14章
/测试一把中序线索二叉树的功能//二叉树,后面我们要递归创建, 现在简单处理使用手动创建//测试中序线索化//测试: 以10号节点测试System.out.println("10号结点的前驱结点是 =" + leftNode);//3System.out.println("10号结点的后继结点是=" + rightNode);//1//当线索化二叉树后,不能再使用原来的遍历方法。
2024-12-25 22:23:14
1149
原创 【Java数据结构与算法】第1-9章
/ 创建一个原始的二维数组 11 * 11// 0: 表示没有棋子, 1 表示 黑子 2 表蓝子// 输出原始的二维数组System.out.println("原始的二维数组~~");// 将二维数组 转 稀疏数组的思路// 1. 先遍历二维数组 得到非0数据的个数i < 11;// 2. 创建对应的稀疏数组// 给稀疏数组赋值// 遍历二维数组,将非0的值存放到 sparseArr中。
2024-12-18 10:46:36
599
原创 【Java设计模式】16-26章
/创建命令接口//执行动作(操作)//撤销动作(操作)System.out.println(" 电灯打开了.. ");System.out.println(" 电灯关闭了.. ");//聚合LightReceiver//构造器super();@Override//调用接收者的方法light.on();@Override//调用接收者的方法// 聚合LightReceiver// 构造器super();@Override// 调用接收者的方法。
2024-11-01 17:12:37
1359
2
原创 【Java设计模式】1-15章
3.8 类图-聚合关系(Aggregation)抽象类Drink// 描述return des;//计算费用的抽象方法//子类来实现单品咖啡父类,继承Drink@Override具体的单品咖啡, 继承单品咖啡父类setDes(" 意大利咖啡 ");setDes(" 无因咖啡 ");装饰者Decorator,继承Drinkpublic Decorator(Drink obj) { //组合@Override。
2024-10-23 17:01:18
989
原创 【JVM】面试篇
JVM指的是Java虚拟机JVM 本质上是一个运行在计算机上的程序,他的职责是运行Java字节码文件,Java虚拟机上可以运行Java、Kotlin、Scala、Groovy等语言。//用java命令启动一个jvm进程,执行程序任务管理器中启动的Java进程,其实是一个虚拟机进程,它会执行我们编写好的代码。通过jps命令也可以看到java进程,jps是JDK自带的一共显示Java进程的小工具:只要能编译成Java字节码文件的语言,Java虚拟机都可以运行。
2024-10-12 21:27:48
953
原创 【JVM】原理篇
将a保存在堆上(使用static),使用ASM框架修改字节码指令,将iconst1指令修改为iconst2和iconst3,并测试验证结果。a = true;if(a){System.out.println("a为true");}else{System.out.println("a为false");System.out.println("a为true");}else{System.out.println("a为false");
2024-10-11 15:00:12
886
原创 【JVM】高级篇
Arthas这款工具用到了什么Java技术,有没有了解过?回答:Arthas主要使用了Java Agent技术,这种技术可以让运行中的Java程序执行Agent中编写代码。Arthas使用了Agent中的动态加载模式,可以选择让某个特定的Java进程加载Agent并执行其中的监控代码。监控方面主要使用的就是JMX提供的一些监控指标,同时使用字节码增强技术,对某些类和某些方法进行增强,从而监控方法的执行耗时、参数等内容。APM系统是如何获取到Java程序运行中的性能数据的?
2024-10-09 17:23:28
3847
原创 【JVM】实战篇
1、压力比较大的服务中,尽量不要存放大量的缓存或者定时任务,会影响到服务的内存使用。2、内存分析发现有大量线程创建时,可以使用导出线程栈来查看线程的运行情况。3、如果请求确实创建了大量的内存超过了内存上限,只能考虑减少请求时创建的对象,或者使用更大的内存。4、推荐使用g1垃圾回收器,并且使用较新的JDK可以获得更好的性能。
2024-10-07 11:17:35
1306
原创 【JVM】基础篇
JVM 全称是 Java Virtual Machine,中文译名 Java虚拟机。JVM 本质上是一个运行在计算机上的程序,他的职责是运行Java字节码文件。Java源代码执行流程如下:分为三个步骤:1、编写Java源代码文件。2、使用Java编译器(javac命令)将源代码编译成Java字节码文件。3、使用Java虚拟机加载并运行Java字节码文件,此时会启动一个新的进程。
2024-09-30 09:56:25
1152
原创 【消息中间件】Kafka从入门到精通
本章作为Kafka软件的入门章节,介绍了一些消息传输系统中的基本概念以及单机版Windows系统中Kafka软件的基本操作。如果仅从操作上,感觉Kafka和数据库的功能还是有点像的。比如:数据库可以创建表保存数据,kafka可以创建主题保存消息。Java客户端程序可以通过JDBC访问数据库:保存数据、修改数据、查询数据,kafka可以通过生产者客户端生产数据,通过消费者客户端消费数据。
2024-09-04 01:20:20
2508
2
原创 【搜索引擎】ElasticSearch 8.x版本
来了新特性课程升级2 ElasticSearch 安装 & 使用安装2.1.1下载软件2.1.2软件升级安装使用2.2.1下载软件2.2.2安装软件2.2.3问题解决2.3 Kibana安装使用2.3.1下载软件2.3.2安装软件2.3.3应用软件。
2024-08-28 22:19:41
1248
2
原创 【搜索引擎】ElasticSearch 7.x版本
5集成介绍版本对比5.1.4框架集成框架集成框架介绍5.2.2框架集成5.3 Flink 框架集成框架介绍5.3.2框架集成优化。
2024-08-27 02:01:19
1409
原创 【消息中间件】RabbitMQ
1 基础篇1.1 为什么需要消息队列1.2 什么是消息队列1.3 RabbitMQ简介1.4 RabbbitMQ安装一、安装# 拉取镜像docker pull rabbitmq:3.13-management# -d 参数:后台运行 Docker 容器# --name 参数:设置容器名称# -p 参数:映射端口号,格式是“宿主机端口号:容器内端口号”。5672供客户端程序访问,15672供后台管理界面访问# -v 参数:卷映射目录# -e 参数:
2024-08-25 19:40:33
1069
原创 【微服务】SpringCloud Alibaba 10-14章
前四个字母分别为Naming和Configuration的前两个字母,最后的s为ServiceNacos 融合 Spring Cloud,成为注册配置中心之前案例Consul8500服务配置动态变更功能可以被Nacos取代通过Nacos和spring-cloud-starter-alibaba-nacos-config实现中心化全局配置的动态变更123_redis高级篇之缓存预热雪崩穿透击穿面试题简介_哔哩哔哩_bilibili概述。
2024-08-22 23:25:55
4286
原创 【微服务】SpringCloud 1-9章
Consul 是一套开源的分布式服务发现和配置管理系统,由 HashiCorp 公司用 Go 语言开发。提供了微服务系统中的服务治理、配置中心、控制总线等功能。这些功能中的每一个都可以根据需要单独使用,也可以一起使用以构建全方位的服务网格,总之Consul提供了一种完整的服务网格解决方案。它具有很多优点。包括: 基于 raft 协议,比较简洁;支持健康检查, 同时支持 HTTP 和 DNS 协议 支持跨数据中心的 WAN 集群 提供图形界面 跨平台,支持 Linux、Mac、Windows。
2024-08-18 21:52:07
7590
8
原创 【JUC】并发编程与源码分析 8-14章
基本类型原子类常用API简介public final int get() //获取当前的值public final int getAndSet(int newValue)//获取当前的值,并设置新的值public final int getAndIncrement()//获取当前的值,并自增public final int getAndDecrement() //获取当前的值,并自减public final int getAndAdd(int delta) //获取当前的值,并加上预期的值。
2024-08-12 11:21:46
470
原创 【JUC】并发编程与源码分析 1-7章
类架构说明接口CompletionStage代表异步计算过程中的某一个阶段,一个阶段完成以后可能会触发另外一个阶段。一个阶段的执行可能是被单个阶段的完成触发,也可能是由多个阶段一起触发类CompletableFuture提供了非常强大的Future的扩展功能,可以帮助我们简化异步编程的复杂性,并且提供了函数式编程的能力,可以通过回调的方式处理计算结果,也提供了转换和组合CompletableFuture的方法它可能代表一个明确完成的Future,也可能代表一个完成阶段。
2024-08-06 22:13:24
1070
原创 【SpringBoot3】场景整合(实战)
/1、响应式-单个数据//2、响应式-多个数据//3、普通对象@Autowired//查询天气/***/@Service@Autowired//1、创建WebClient//2、准备数据//3、定义发请求行为 CompletableFuture.accept(MediaType.APPLICATION_JSON) //定义响应的内容类型。
2024-07-31 23:34:47
1104
原创 【SpringBoot3】核心特性(入门)
使用@ControllerAdvice + @ExceptionHandler 进行统一异常处理2.7.2.根据boot的错误页面规则,自定义页面模板2.7.3最佳实战前后分离后台发生的所有错误,@ControllerAdvice + @ExceptionHandler进行统一异常处理。服务端页面渲染不可预知的一些,HTTP码表示的服务器或客户端错误给classpath:/templates/error/下面,放常用精确的错误码页面。
2024-07-29 10:59:19
886
原创 【MyBatisPlus】快速掌握MP插件使用方法
a>例1:组装查询条件@Autowired@Test//查询用户名包含a,年龄在20到30之间,邮箱信息不为null的用户信息AND?b>例2:组装排序条件@Autowired@Test//查询用户信息,按照年龄的降序排序,若年龄相同,则按照id升序排序c>例3:组装删除条件@Autowired@Test//删除邮箱地址为null的用户信息d>例4:条件的优先级使用QueryWrapper实现修改功能@Autowired@Test。
2024-07-20 23:25:29
1095
2
原创 【Ngix】快速上手,由浅入深
是一个高性能的HTTP和反向代理服务器特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。
2024-07-18 10:58:57
2278
原创 【Redis7】高阶篇
只使用一个服务端进程可以同时处理多个套接字描述符连接1.4.3.5策略高并发多线程条件下问题现象解决方案先删除redis缓存,再更新mysql无缓存删除成功但数据库更新失败Java程序从数据库中读到旧值再次更新数据库,重试有缓存删除成功但数据库更新中......有并发读请求并发请求从数据库读到旧值并回写到redis,导致后续都是从redis读取到旧值延迟双删先更新mysql,再删除redis缓存无数据库更新成功,但缓存删除失败Java程序从redis中读到旧值。
2024-07-17 03:05:37
1883
原创 【Redis7】零基础篇
a)性能极高-Redis能读的速度是110000次/秒,写的速度是81000次/秒b)Redis数据类型丰富,不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储c)Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用d)Redis支持数据的备份,即master-slave模式的数据备份英文:https://redis.io/中文:https://www.redis.cn/5.0版本是直接升级到。
2024-07-02 23:02:34
1975
3
原创 【SpringMVC】第8-14章
第8章 文件上传与下载8.1 文件上传使用SpringMVC6版本,不需要添加以下依赖,Spring5以及之前版本需要:<dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.5</version></dependency>
2024-06-24 01:27:36
847
原创 【SpringMVC】第1-7章
第1章 初始SpringMVC1.1 学习本套教程前的知识储备JavaSEHTML+CSS+JavaScriptVueAJAX + axiosThymeleafServletMavenSpring1.2 什么是MVCMVC架构模式相关课程,在老杜的JavaWeb课程中已经详细的讲解了,如果没有学过的,可以看这个视频:https://www.bilibili.com/video/BV1Z3411C7NZMVC是一种软件架构模式(是一种软件架构设计思想,不止Java开发中用到,其它语
2024-06-20 11:25:04
621
原创 【Spring6】13-19章 JdbcTemplate+代理模式+AOP+Spring事务+Spring集成MyBatis
十三、JdbcTemplateJdbcTemplate是Spring提供的一个JDBC模板类,是对JDBC的封装,简化JDBC代码。当然,你也可以不用,可以让Spring集成其它的ORM框架,例如:MyBatis、Hibernate等。接下来我们简单来学习一下,使用JdbcTemplate完成增删改查。13.1 环境准备数据库表:t_userIDEA中新建模块:spring6-007-jdbc引入相关依赖:<?xml version="1.0" encoding="UTF-8"?&
2024-06-14 16:02:57
467
原创 【Spring6】1-12章源码级深入详解 IoC
一、Spring启示录阅读以下代码:package com.powernode.oa.controller;import com.powernode.oa.service.UserService;import com.powernode.oa.service.impl.UserServiceImpl;public class UserController { private UserService userService = new UserServiceImpl(); p
2024-06-11 22:48:09
1245
原创 【MyBatis】零基础从入门到进阶(源码级深入详解)
C: Create增R: Retrieve查(检索)U: Update改D: Delete删提供一个无参数构造方法,再提供一个build方法,该build方法要返回SqlSessionFactory对象/*** SqlSessionFactory对象构建器* @author 老杜*//*** 创建构建器对象*//*** 获取SqlSessionFactory对象* 该方法主要功能是:读取godbatis核心配置文件,并构建SqlSessionFactory对象。
2024-06-02 16:08:33
1031
原创 【AJAX前端框架】Asynchronous Javascript And Xml
1 传统请求及缺点传统的请求都有哪些?直接在浏览器地址栏上输入URL。点击超链接提交form表单使用JS代码发送请求window.open(url)document.location.href = urlwindow.location.href = url…传统请求存在的问题页面全部刷新导致了用户的体验较差。传统的请求导致用户的体验有空白期。(用户的体验是不连贯的)AJAX同步请求2 AJAX概述AJAX不能称为一种技术,它是多种技术的综合产物。AJ
2024-05-24 13:45:46
521
原创 【Git】熟练掌握分布式版本控制系统
在版本控制过程中,同时推进多个任务,为每个任务,我们就可以创建每个任务的单独分支。使用分支意味着程序员可以把自己的工作从开发主线上分离开来,开发自己分支的时候,不会影响主线分支的运行。对于初学者而言,分支可以简单理解为副本,一个分支就是一个单独的副本。(分支底层其实也是指针的引用)众所周知,GitHub服务器在国外,使用GitHub作为项目托管网站,如果网速不好的话,严重影响使用体验,甚至会出现登录不上的情况。针对这个情况,大家也可以使用国内的项目托管网站码云。码云是开源中国推出的基于Git。
2024-05-17 23:21:41
1133
1
原创 【架构】MVC架构模式 & 三层架构
在这个框架的基础上开发,一定是用了MVC架构模式的。2> 目前虽然面向接口编程了,但是并没有完全解决对象和对象之间的依赖关系。1> 在service层控制了事务,service方法中的事务控制代码看着有点别扭,以后能不能不写?对象的创建我不用管了,对象和对象之间关系的管理我也不想管了,都交给spring容器来负责这件事。有的人也会把这种专门封装数据的对象,称为bean对象。项目大管家,负责整个项目所有对象的创建以及维护对象和对象之间的关系。有的人也会把这种专门封装数据的对象,称为。
2024-05-10 14:27:03
1238
原创 【JavaWeb】Servlet+JSP+EL表达式+JSTL标签库+Filter过滤器+Listener监听器
Markdown文本编辑器(可以编辑xxx.md文件)1 Servlet1.1 关于系统架构1.1.1 系统架构包括什么形式?C/S架构B/S架构1.1.2 C/S架构?Client / Server(客户端 / 服务器)C/S架构的软件或者说系统有哪些呢?QQ(先去腾讯官网下载一个QQ软件,几十MB,然后把这个客户端软件安装上去,然后输入QQ号以及密码,登录之后,就可以和你的朋友聊天了,就可以使用这个软件了。)C/S架构的特点:需要安装特定的客户端软件。C/S架构的系
2024-05-09 22:22:07
694
原创 【JavaSE进阶】10-网络编程 & 11-Lambda表达式 &12-Stream API & 13-Java新特性
10.1 网络编程概述10.2 网络编程三要素10.3 网络编程基础类package com.powernode.javase.net;import java.net.InetAddress;/** * ClassName: InetAddressTest * Description: * java.net.IntAddress类用来封装计算机的IP地址和DNS(没有端口信息), * 它包括一个主机名和一个IP地址,是java对
2024-04-19 00:28:30
862
原创 【JavaSE进阶】08-反射机制 & 09-注解
*自定义注解:MyAnnotation*///??????// 注解修饰注解。// 默认情况下,注解可以出现在任意位置。int k){/*** 我们通常在注解当中可以定义属性,以下这个是MyAnnotation的name属性。* 看着像1个方法,但实际上我们称之为属性name。* @return*//*颜色属性*//*年龄属性*///属性指定默认值// 报错的原因:如果一个注解当中有属性,那么必须给属性赋值。
2024-04-16 13:43:49
643
原创 【JavaSE进阶】06-IO流 & 07-多线程
*银行账户不使用线程同步机制,多线程对同一个账户进行取款,出现线程安全问题。*/// 账号// 余额//取款的方法// t1和t2并发这个方法。。。。(t1和t2是两个栈。两个栈操作堆中同一个对象。// 取款之前的余额// 10000// 取款之后的余额// 在这里模拟一下网络延迟,100%会出现问题try {// 更新余额// 思考:t1执行到这里了,但还没有来得及执行这行代码,t2线程进来withdraw方法了。此时一定出问题。
2024-04-15 01:54:42
1027
原创 【JavaSE进阶】05-集合
总结(所有的实现类):ArrayList:底层是数组。LinkedList:底层是双向链表。Vector:底层是数组,线程安全的,效率较低,使用较少。HashSet:底层是HashMap,放到HashSet集合中的元素等同于放到HashMap集合key部分了。TreeSet:底层是TreeMap,放到TreeSet集合中的元素等同于放到TreeMap集合key部分了。HashMap:底层是哈希表。Hashtable:底层也是哈希表,只不过线程安全的,效率较低,使用较少。
2024-04-14 15:15:54
1220
JavaWebServlet+JSP+EL表达式+JSTL标签库+Filter过滤器+Listener监听器
2024-05-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人