- 博客(30)
- 收藏
- 关注
原创 深入分析mybatis工作原理
Mybatis分析通过分析了mybatis的源码我觉得大致分为三步1. 获取数据源:SqlSessionFactory.build(inputStream)–>XMLConfigBuilder–>Parse–>PaseConfiguration–>build(Configuration)–>DefaultSqlSessionFactory–>DataSou...
2019-10-14 10:50:48
455
原创 聊一聊Redis特点
为什么 redis单线程,效率这么高1、纯内存操作2、核心是基于非阻塞的IO多路复用机制3、单线程反而避免了多线程的频繁上下文切换问题一、特点:1、支持持久化2、丰富的数据类型3、数据的备份 主从4、速度极高,读的速到能到11w次/秒,写的速度8w/秒5、具有原子性,并且还支持几个操作合并后的原子性执行二、使用场景1、取最新n个数据的操作2、排行榜类似的应用3、需要精...
2019-10-10 16:11:30
433
原创 基于Python的可视化文件与文件夹加密工具设计与实现’
本文介绍了一个基于Python的文件/文件夹加密工具设计方案。该工具支持多种加密算法(AES-256、RSA等),可处理任意文件类型,并保持文件夹结构完整性。核心功能包括文件/文件夹加密解密、密码强度检测、安全删除等,高级功能支持文件分割、自解压和云存储集成。采用跨平台GUI框架,提供直观的用户界面和操作日志。技术栈推荐使用cryptography加密库和PyQt6/PyInstaller等工具,确保安全性和跨平台兼容性。该方案兼顾基础加密需求和高级功能扩展,适合不同安全级别的文件保护场景。
2025-08-26 14:55:17
1090
原创 如何实现Redis的集合运算?
将多个集合合并为一个集合,并去除重复的元素。返回属于第一个集合且不属于其他集合的元素。返回多个集合中都存在的元素。
2024-12-16 10:59:38
595
原创 一文讲清楚-计算机组成原理
计算机系统是由硬件系统和软件系统组成的一个完整的系统。硬件是计算机的物理部分,包括处理器、存储设备和输入输出设备等,而软件则指计算机运行的操作系统、应用程序以及各种工具和指令。硬件和软件紧密协作,使计算机系统能够完成多种功能。
2024-12-12 10:53:45
924
原创 架构学习之路
对于读写分离,主从复制是一种常见的实现方式,可以显著提高数据库的性能和可用性。CAP理论指出,在分布式系统中,一致性(Consistency)、可用性(Availability)和分区容忍性(Partition Tolerance)三个特性无法同时完全满足。选择和使用应用程序架构时,确实需要从多个维度综合考虑,以确保最终选定的架构既符合当前的需求,也能满足未来的扩展。高可用架构设计的目标是在系统面临部分组件故障的情况下,仍然能够维持关键服务的正常运行。
2024-12-12 10:50:53
1071
原创 Caused by: java.nio.charset.MalformedInputException: Input length = 2
统一编码字符集, 包括idea 编辑器中的FileEncoding。
2024-12-05 16:34:47
146
原创 计算机网络概述
Cache位于CPU和主存之间,通过存储近期或频繁访问的数据,减少CPU直接访问主存的次数,从而提高访问速度。MIPS值越高,表示CPU每秒能够执行的指令越多,但它并不一定反映出实际性能,因为不同的指令复杂度和执行时间可能不同。乱序执行(Out-of-Order Execution):指令不一定按照原始程序顺序执行,CPU根据操作数的可用性和执行单元的空闲状态,动态安排指令执行顺序,以提高效率。含义: Amdahl定律指出,即使对某一部分进行无限制的改进,整体性能的提升也会受到未改进部分的制约。
2024-12-05 15:51:02
976
原创 企业数据分类分级如适合做的?
首先,需要定义一套清晰的数据分类标准。敏感度级别:例如公共(Public)、内部(Internal)、机密(Confidential)、绝密(Top Secret)等。业务影响:根据数据对于业务运营的影响程度进行分类。法律合规要求:依据法律法规的要求,如个人隐私数据(PII)、健康信息(PHI)等。
2024-09-30 10:56:43
517
原创 如何排查系统频繁执行full GC
频繁的Full Garbage Collection(Full GC)通常表明了Java应用程序中的内存管理存在问题。这可能是由于堆内存不足、对象生命周期过长、或是内存泄漏等原因导致的。
2024-09-30 10:46:54
820
原创 java如何发布一个安全的对象
避免并发问题,可以吧对象设置成不可变对象,把对象封装在一个线程里,只有这一个线程能看到这个对象,那这个对象就不会存在线程安全问题。
2024-09-30 10:03:15
399
原创 Flink入门,有了这篇就够了!!!
Apache Flink 是一个用于处理无界和有界数据流的开源框架,适用于大规模数据流处理和事件驱动的应用程序。Flink 支持高吞吐量、低延迟和事件时间处理,并且可以在多种环境中运行,包括独立集群模式、YARN、Kubernetes 和云服务等。
2024-09-25 10:30:11
496
原创 哪个编程工具让你的工作效率翻倍?
Visual Studio - 这是一个功能齐全的集成开发环境(IDE),支持多种语言,包括C#, C++, Python, JavaScript等,并且拥有强大的调试工具、实时协作功能、版本控制集成等。WebStorm - 如果你的工作重点是前端开发,尤其是JavaScript,WebStorm是一个不错的选择,它为JavaScript、TypeScript、Node.js等提供了优秀的支。IntelliJ IDEA - 对于Java开发者来说是一个非常高效的工具,尤其是在开发Spring框架的应用时。
2024-09-24 16:22:18
264
原创 No thread-bound request found: Are you referring to request attributes outside of an actual web requ
场景描述:A服务利用RPC 调用B 服务, B 服务里请求了一个C服务的接口, 但是C服务需要接口授权,利用 HttpServletRequest request = ((ServletRequestAttributes) (RequestContextHolder.currentRequestAttributes())).getRequest();解决: 换一中授权方式,直接生成了一个授权token, 不用RequestContextHolder 这种方式获取请求token。
2023-03-14 10:38:47
1979
原创 spring bean 的生命周期
实例化实例化一个Bean,也就是我们常说的new。IOC依赖注入按照Spring上下文对实例化的Bean进行配置,也就是IOC注入。setBeanName实现如果这个Bean已经实现了BeanNameAware接口,会调用它实现的setBeanName(String) 方法,此处传递的就是Spring配置文件中Bean的id 值BeanFactoryAware实现如果这个 Bean...
2019-05-07 15:11:44
183
原创 并发的原子性、可见性、有序性
并发的概念:同时拥有俩个或多个线程,如果线程在单核处理器上运行,多个线程将交替的换入或者换出内存,这些线程是同时存在的,每个线程都处于执行过程中的某个状态,如果运行在多核处理器上,程序中的没个线程都将分配到一个处理器核上,因此可以同时运行。高并发的概念:高并发是互联网分布式系统架构中必须考虑的因素之一,通常是指,通过设计 保证系统能够同时并行处理很多请求并发:多个线程操作相同的资源,保证线...
2019-05-07 15:09:01
182
原创 如何安全的发布对象及使线程封闭的方法
发布对象:使一个对象能够被当前范围之外的代码使用对象溢出:一个错误的发布,当一个对象还没有被构造完成后,就使他被其他线程所见线程被看到的发布的引用是最新的,然而被发布对象的状态是过期的。如果一个对象是可变对象,他就需要安全发布才可以一、安全发布对象的四种方法:1、在静态初始化函数中初始化一个对象的引用。2、将对象的引用保存到volatile类型域或者AtomicReference对象中...
2019-05-07 14:56:01
155
原创 使用线程池要注意的事
线程池:初始化好实例后,把任务放进去,再调度执行new Thread 的弊端:1、每次new Thread 新建对象 性能差2、线程缺乏统一管理,可能无限制的创建线程,相互竞争,有可能占有过多系统资源导致死机或OOM3、缺少更多的功能,如果多执行、定期执行、线程中断线程池的好处:1、重用存在的线程,减少对象的创建、消亡的开销,性能好2、可有效的控制最大并发线程数,提高系统资源利用...
2019-05-07 14:48:45
919
原创 死锁发生的必要条件及发生死锁后能做的那些事
死锁发生的必要条件:1、互斥条件:在一段时间内某资源只由一个线程占用,如果此时还有其他线程请求资源,那么线程只能等待,只能等占有资源的线程用完释放才可以2、请求和保持条件:它是指线程已经保留了一个资源,但又提出了新的资源请求,而该资源又被其他进程占用,此时请求进程阻塞,3、不剥夺资源:资源不能被剥夺,只能自己使用完释放。4、环路等待条件如果发生了死锁可以做的事情:...
2019-05-07 14:39:10
163
原创 线程安全的同步容器 及并发容器
java 中常见的线程不安全类:StringBuilder----加了synchronized--- > StringBuffer(安全的)SimpleDateFormat-----------------------------JodaTime(安全的)ArrayList,HashSet,HashMap一、线程安全--同步容器ArrayList-...
2019-05-07 14:37:32
455
原创 了解JUC组件
避免线程在进入内核态的阻塞状态,是我们去分析和理解锁设计的关键java.util.concurrent.locks.AbstractQueuedSynchronizer简称AQS底层 采用双向链表,是队列的一种实现,可以有多个Condition设计:1、使用Node实现FIFO队列,可以用于构建锁或者其他同步装置的基础框架2、利用了一个int类型表示状态3、使...
2019-05-07 14:35:09
1051
Linux系统管理常用命令及其功能详解
2024-12-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅