自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(75)
  • 收藏
  • 关注

原创 Data Harmonizer(数据协调器)------线程

死锁是指多个线程因互相等待而无法推进,最终都阻塞的情况。

2024-08-17 16:46:13 1212

原创 约束+数据库技术+事务

在SQL(Structured Query Language,结构化查询语言)中,多表查询可以通过多种方式实现,包括JOIN(连接)、UNION(合并结果集)、子查询等。如果两个表中的行在指定的连接键上有相同的值,这些行就会被组合在一起返回。隐式外连接虽然在某些情况下仍然可以使用,但它们的使用应该尽量避免,特别是在复杂的查询中。子查询也可以是相关子查询(correlated subquery),即子查询中的条件依赖于外部查询的行。:左连接,返回左表(表A)的所有行,即使在右表(表B)中没有匹配的行。

2024-03-08 19:33:26 2358

原创 GitHub与Gitee密钥对配置

【代码】GitHub与Gitee密钥对配置。

2024-08-29 10:41:37 406

原创 MySQL面试技术(分页)

SQL 分页方式的选择取决于所使用的数据库类型和版本,以及性能和可维护性的考量。不同的分页方式可能会在性能和适用性上有所差异,开发人员需要根据具体情况选择合适的方式来实现分页功能。

2024-08-21 11:01:38 480

原创 场景问题解决方案

所谓幂等:多次调用方法或者接口不会改变业务状态,可以保证重复调用的结果和单次调用的结果一致。基于RESTful API的角度对部分常见类型请求的幂等性特点进行分析:java 即操作完成后,释放掉锁,因为幂等问题通常是一个请求快速过来两次或者多次,所以在释放锁之前让后来的同一个用户的请求直接失败即可,保证当前方法在短时间之内只能被执行一次,切记控制锁的粒度。单点登录的英文名叫做:Single Sign On(简称 SSO)。多系统即可能有多个Tomcat,而Session是依赖当前系统的Tomcat

2024-08-21 10:30:00 683

原创 Redis 技术详解

缓存预热是指系统上线后,提前将相关的缓存数据加载到缓存系统。避免在用户请求的时候,先查询数据库,然后再将数据缓存的问题,用户直接查询事先被预热的缓存数据。如果不进行预热,那么 Redis 初始状态数据为空,系统上线初期,对于高并发的流量,都会访问到数据库中,对数据库造成流量的压力。缓存预热解决方案数据量不大的时候,工程启动的时候进行加载缓存动作。数据量大的时候,设置一个定时任务脚本,进行缓存的刷新。数据量太大的时候,优先保证热点数据进行提前加载到缓存。

2024-08-20 15:34:31 1910

原创 消息中间件

EMQ 是什么:EMQ X 是开源社区中最流行的 MQTT 消息服务器,广泛应用于物联网、移动互联网、智能硬件、车联网、电力能源等领域,如物联网 M2M 通信、Android 消息推送、移动即时消息、智能硬件、车联网通信等。项目中的应用:在我们的项目中,主要使用 EMQ 实现服务器和物联网设备之间的信息传输,以及作为消息队列产品实现各个微服务之间的数据传输,例如设置状态实时监控、自动维修工单创建和自动补货工单创建、订单创建以及支付结果确认、设备出货控制、设置出货结果通知处理等。

2024-08-20 11:22:19 842

原创 微服务框架

在分布式系统中,服务可能失败导致雪崩,Hystrix 是防雪崩利器,具有服务降级、服务熔断、服务隔离、监控等防止雪崩的技术。服务降级:接口调用失败调用本地方法返回空。服务熔断:接口调用失败进入熔断方法返回错误信息。服务隔离:隔离服务之间相互影响。服务监控:记录服务调用的运行指标。在分布式系统中,一个业务因跨越不同数据库或不同微服务而包含多个子事务,要求所有子事务同时成功或失败,这就是分布式事务。例如某电商系统下单操作,需请求订单服务、账户服务、库存服务。

2024-08-20 10:16:30 851

原创 SSM框架

我们需要增加新功能也方便,提高了系统的扩展性。如果数据库结果集中的列名和要封装实体的属性名有不一致的情况用 resultMap 属性,通过 resultMap 手动建立对象关系映射,resultMap 要配置一下表和类的一一对应关系,所以说就算你的字段名和你的实体类的属性名不一样也没关系,都会给你映射出来。分页插件的基本原理是使用 Mybatis 提供的插件接口,实现自定义插件,在插件的拦截方法内拦截待执行的 sql,然后重写 sql,根据 dialect 方言,添加对应的物理分页语句和物理分页参数。

2024-08-19 21:18:25 615

原创 MySQL面试相关精选

分类含义特点聚集索引(Clustered Index)将数据存储与索引放到了一块,索引结构的叶子节点保存了行数据必须有,而且只有一个二级索引(Secondary Index)将数据与索引分开存储,索引结构的叶子节点关联的是对应的主键可以存在多个如果存在主键,主键索引就是聚集索引。如果不存在主键,将使用第一个唯一(UNIQUE)索引作为聚集索引。如果表没有主键,或没有合适的唯一索引,则 InnoDB 会自动生成一个 rowid 作为隐藏的聚集索引。

2024-08-19 18:26:33 1193

原创 Java-Web面试题汇总

形象举例:A 和 B 打电话,A 说“我没啥要说的了”,B 答“我知道了”,但 B 可能还有话,A 不能要求 B 跟着结束,B 说完“我说完了”,A 答“知道了”,通话结束。GET 方法主要用于获取信息,不会对服务器数据产生副作用,具有幂等性,且可以被缓存,适用于多次重复获取相同结果且不改变服务器状态的场景。POST 方法通常用于修改服务器上的数据,可能会产生副作用,不具有幂等性,不可被缓存,适用于向服务器发送需要处理和存储的数据的场景。总之,应根据具体应用需求选择合适的协议,以实现高效可靠的网络通信。

2024-08-19 10:05:56 967

原创 JVM 相关面试题汇总

如果一个类加载器收到了类加载的请求,它首先不会自己去加载这个类,而是把这个请求委派给父类加载器去完成,每一层的类加载器都是如此,这样所有的加载请求都会被传送到顶层的启动类加载器中,只有当父加载无法完成加载请求(它的搜索范围中没找到所需的类)时,子加载器才会尝试去加载类。新生代垃圾回收器一般采用的是复制算法,复制算法的优点是效率高,缺点是内存利用率低;老年代回收器一般采用的是标记-整理的算法进行垃圾回收。分代回收器有两个分区:老生代和新生代,新生代默认的空间占比总空间的 1/3,老生代的默认占比是 2/3。

2024-08-18 12:08:42 873

原创 JVM参数与Status

通过在 JVM 启动时配置该参数,JVM 会先访问所有分配的内存,让操作系统将内存真正分配给 JVM,以便后续顺畅访问。:设置Eden区与Survivor区的比值为8,则两个Survivor区与一个Eden区的比值为2:8,即一个Survivor区占整个年轻代的1/10。:垃圾收集线程与应用线程并行工作,若垃圾收集线程工作时老年代内存不足,最好提前启动 CMS 收集垃圾(CMS GC)。表示仅使用设定的回收阈值(如 75%),若不指定,JVM 仅在第一次使用设定值,后续会自动调整。默认值 92%较大。

2024-08-18 12:05:51 1080

原创 集合类浅谈

本文将深入探讨 HashMap 的底层原理、解决哈希冲突的方法、扩容机制以及与 ConcurrentHashMap 的区别等方面。红黑树是一种平衡二叉搜索树,它通过颜色标记和旋转操作来保持树的平衡,从而提供高效的插入、删除和查找操作。扩容会创建一个更大的数组,并将原来的键值对重新映射到新的数组中。需要注意的是,HashMap 是非线程安全的,如果在多线程环境下使用,需要进行适当的同步处理或使用线程安全的 ConcurrentHashMap。需要注意的是,在多线程环境下,如果需要线程安全的。

2024-08-17 16:14:38 592

原创 XXL-Job:分布式任务调度神器详解(附Cron表达式)

XXL-Job 作为一款强大的分布式任务调度框架,为我们提供了高效、可靠的任务管理解决方案。本文将详细介绍 XXL-Job 的使用,包括环境准备、任务创建、调度策略、执行流程、监控与管理、扩展与定制以及最佳实践等方面。通过本文的介绍,相信你已经对 XXL-Job 的使用有了深入的了解。在实际应用中,根据项目需求合理配置和使用 XXL-Job,可以提高系统的稳定性和任务执行效率。在实际使用时,最好参考所使用的具体工具或框架的文档来确保 cron 表达式的正确解析和执行。

2024-08-15 20:00:11 947

原创 MySQL 数据库使用

请注意,删除数据库是不可逆的操作,需谨慎使用。索引是提高数据库查询性能的重要手段。事务用于保证数据的一致性和完整性。使用以下命令从备份文件中恢复数据。(字符串,最大长度 50)和。

2024-08-15 19:40:39 565

原创 精通Java内存管理:提升应用性能的秘诀

在Java开发中,内存管理是一个至关重要的环节。本文将深入探讨Java内存模型、垃圾回收机制以及如何通过代码优化来提升应用性能。我们将分享一些实用的技巧和最佳实践,帮助你的Java应用运行得更加高效。

2024-07-14 10:33:46 67

原创 RabbitMQ整理

RabbitMQ是一个开源的消息代理和队列服务器,广泛用于应用程序之间的异步消息传递。它基于高级消息队列协议(AMQP)并支持多种消息协议。

2024-07-14 10:32:45 580

原创 Sentinel和hystric的运用详解

Sentinel 是由阿里巴巴开源的用于微服务架构的高可用流量控制组件,它通过提供流量控制、熔断降级、系统自适应保护等功能,帮助保障微服务的稳定性。

2024-07-13 08:13:31 1410

原创 ES(Elasticsearch)的使用

Elasticsearch(简称ES)是一个基于Lucene的搜索引擎,提供全文搜索功能,并且具有HTTP web接口和无模式的JSON文档。

2024-07-13 08:12:48 658

原创 MySQL与Redis优化

请注意,这些示例代码仅用于说明如何对MySQL和Redis进行优化,实际应用时需要根据具体的业务场景和需求进行调整。同时,优化措施的实施应谨慎进行,并在测试环境中充分测试以确保不会对现有系统造成负面影响。在进行优化时,需要根据实际业务场景和数据特点进行综合考虑,避免一刀切的优化策略。同时,优化过程中要持续监控性能指标,确保优化措施的有效性。好的,让我们通过一些示例代码来展示如何对MySQL和Redis进行优化。

2024-07-12 14:57:45 1289

原创 Feign的远程调用

Feign 是一个声明式的 Web 服务客户端,使得编写 Web 服务客户端变得更加简单。Feign 旨在简化 HTTP 客户端的编写,它整合了 Ribbon(提供客户端负载均衡)和 Hystrix(提供熔断机制),并且与 Spring Cloud 紧密集成,是 Spring Cloud 体系中的核心组件之一。

2024-07-12 14:52:36 305

原创 深入理解序列化与反序列化:概念、区别及应用场景

本文将探讨序列化与反序列化的概念、它们之间的区别,以及在不同应用场景下的实际应用。反序列化则是序列化的逆过程,即将序列化后的数据转换回原始的数据结构或对象。序列化与反序列化是数据交换的基础,选择合适的序列化格式对于系统的性能、安全性和兼容性至关重要。:在分布式系统中,序列化用于将对象转换为字节流,通过网络发送,然后在接收端进行反序列化。:应用程序状态或配置信息的持久化,通过序列化存储到磁盘,启动时反序列化以恢复状态。:RESTful API或SOAP服务处理请求和响应时,数据的序列化与反序列化。

2024-07-10 11:47:24 380

原创 Grep Console主题配置

记录Grep Console主题配置。

2024-06-22 10:44:10 153

原创 Void和返回值使用情况说明

在 Java 中,方法的返回类型定义了该方法执行完成后返回的数据类型。是一个特殊的返回类型,表示该方法不返回任何值。

2024-06-22 09:43:13 330

原创 Linux知识汇总

当ens33的ip地址丢失时使用下面命令找回。网卡没有启动,只要指定再次启动这个网卡即可。

2024-06-17 16:40:59 483

原创 SQL索引结构优化及回表查询知识总结

【代码】SQL索引结构优化及回表查询知识总结。

2024-06-17 11:52:17 1133

原创 项目分支命名

这些只是一些建议,实际的分支命名应该根据项目的具体需求和团队的约定来确定。在Java项目中,分支命名通常遵循一定的模式,以帮助团队成员理解每个分支的作用。,如果团队成员需要从主分支中创建自己的分支进行独立开发,可以使用。,如果项目中前端和后端代码分开管理,这个分支可以用于前端开发。,如果项目涉及多个团队或模块的集成,这个分支可以用于集成开发。,用于最终的发布前准备,可能包含最后的测试和调整。,用于修复bug或问题。,用于在特定时间点冻结代码,以便进行测试或发布。,这是项目的主线分支,包含了最新的稳定代码。

2024-05-24 11:19:01 581

原创 NoSuchMethodException异常

遇到这种问题可以先去看看JDK的版本将高版本的JDK降到11或者8再去尝试.

2024-05-21 20:46:20 321

原创 面试试题一

封装是面向对象编程的核心概念之一,它允许将对象的实现细节隐藏起来,只暴露出一个操作该对象的接口。它用于建立一个公共的层次结构,使得子类可以重用父类的代码,并且可以扩展或修改父类的行为。:客户端应当与它不需要的接口隔离,避免过多功能的聚合接口导致的耦合。SOLID是五个面向对象设计的基本原则的缩写,由Robert C. Martin提出,它们帮助开发者设计出松耦合、高内聚的系统。:一个类应该只负责一个功能领域中的相应职责,或者可以定义为“一个类只负责一个变化的原因”。这有助于降低类的复杂度,提高可维护性。

2024-05-12 17:54:00 1070

原创 Spring框架理解

在Spring框架中,DAO层是MVC(模型-视图-控制器)架构中的模型部分,它与Service层和Controller层协同工作,共同构建了一个分层的、模块化的应用程序。:通过使用ORM(对象关系映射)工具如Hibernate或JPA,DAO层可以实现对不同数据库技术的抽象,使得上层业务逻辑不必关心底层数据库的具体实现。:DAO层可以处理事务管理,确保数据的一致性和完整性。:通过将数据访问逻辑放在DAO层,可以使得业务逻辑(通常在Service层实现)与数据访问逻辑分离,提高代码的可维护性和可重用性。

2024-05-12 09:44:20 146

原创 JavaEE规范

这些规范定义了一组可重用的组件和API,以及一种用于构建和部署企业应用程序的体系结构。这些规范和标准使得开发人员能够构建出更加稳定、安全和可维护的企业应用程序,提高应用程序的性能和可靠性。同时,使用支持JavaEE规范的工具和平台,可以大大提高开发效率和质量,减少开发时间和成本。: 提供了一种管理事务的方法,确保事务的ACID属性(原子性、一致性、隔离性、持久性)。: 是一种设计模式,用于将应用程序分为模型层、视图层和控制层,以便于管理和开发。: 包含了微服务和云功能等特性,是对Java EE 7的扩展。

2024-05-08 09:03:25 430

原创 设计模式&动态代理

一个问题通常有n种解法,其中肯定有一种解法是最优的,这个最优的解法被人总结出来了,称之为。

2024-04-30 07:57:40 1016

原创 12 Junit单元测试、反射、注解

Junit单元测试是做什么的?就是针对最小的功能单元(方法),编写测试代码对其进行正确性测试。Junit单元测试框架可以用来对方法进行测试,它是由Junit公司开源出来的Junit单元测试的优点是什么?可以灵活的编写测试代码,可以针对某个方法执行测试,也支持一键完成对全部方法的自动化测试,且各自独立。不需要程序员去分析测试的结果,会自动生成测试报告出来。JUnit可以选择执行哪些测试方法,可以一键执行全部测试方法的测试。JUnit可以生测试报告,如果测试良好则是绿色;如果测试失败,则是红色。

2024-04-29 18:24:11 1316

原创 11 网络编程(通信)

什么是网络通信?可以让设备中的程序与网络上其他设备中的程序进行数据交互(实现网络通信的)比如:微信聊天、LOL游戏、京东、淘宝网站的访问基本的通信架构基本的通信架构有2种形式:CS架构( Client客户端/Server服务端 ) 、 BS架构(Browser浏览器/Server服务端)无论是CS架构,还是BS架构的软件都必须依赖网络通信!1、IP地址是做什么的,具体有几种定位网络上的设备的,有IPv4 , IPv62、公网ip和内网ip的区别是什么?

2024-04-27 08:00:00 736

原创 10 多线程(安全 同步 线程池)

同步代码块同步方法lock语法synchronized 方法(){ }加锁方式自动加锁、释放锁自动加锁、释放锁手动加锁、释放锁锁粒度代码行方法代码行Executors工具类底层是基于什么方式实现的线程池对象?线程池ExecutorService的实现类:ThreadPoolExecutorExecutors是否适合做大型互联网场景的线程池方案?不合适。建议使用ThreadPoolExecutor来指定线程池参数,这样可以明确线程池的运行规则,规避资源耗尽的风险。

2024-04-26 09:01:41 989 1

原创 09 配置文件&日志&多线程

就是限制XML文件只能按照某种格式进行书写。约束文档分为: DTD Schema文档什么是日志?用来记录程序运行过程中的信息,并可以进行永久存储。输出语句的弊端日志会展示在控制台不能更方便的将日志记录到其他的位置(文件,数据库)想取消日志,需要修改源代码才可以完成日志级别指的是日志信息的类型,日志都会分级别,常见的日志级别如下(优先级依次升高日志级别说明trace追踪,指明程序运行轨迹debug调试,实际应用中一般将其作为最低级别,而 trace 则很少使用info。

2024-04-25 09:40:15 706

原创 网络编程三要素

IP地址和端口号共同确定了网络通信的目的地,即数据应该发送到哪个设备上的哪个服务。协议则规定了数据的传输方式,确保数据能够正确、高效地在网络中流动。在Java网络编程中,这些要素通常通过套接字(Socket)来实现。套接字是网络通信的端点,它将IP地址和端口号结合起来,并根据所使用的协议(TCP或UDP)提供不同的编程接口。通过套接字,Java程序可以与网络中的其他程序进行通信,实现数据的发送和接收。

2024-04-25 09:36:02 958

原创 08 IO-字符流&其它流

字节缓冲流有几种?字节缓冲输入流:BufferedInputStream字节缓冲输出流:BufferedOutputStream字节缓冲流为什么提高了字节流读写数据的性能?字节缓冲流自带8KB缓冲区可以提高原始字节流、字符流读写数据的性能功能上并无很大变化,性能提升了。字符缓冲流有几种,好处是什么?字符缓冲流自带8K缓冲区,可以提高原始字符流读写数据的性能两种字符缓冲流新增了哪些方法?BufferedReader,多了readLine()按照行读取的功能。

2024-04-23 09:23:29 990

原创 ConcurrentHashMap

是 Java 中的一个线程安全的哈希表,它允许多个线程同时读写而不需要额外的同步开销。它通过使用分段锁(segment locks)来实现对哈希表的并发访问,从而提高了并发性能。

2024-04-22 17:51:19 399

JVM优化及面试热点追踪

JVM面试相关

2024-08-18

C语言第14讲一维数组举例及字符数组.ppt

适用于C语言的学习

2023-02-24

空空如也

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

TA关注的人

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