- 博客(34)
- 收藏
- 关注
原创 简单ELK框架搭建
ELK 框架是一套开源的日志管理和分析工具,由 Elasticsearch、Logstash 和 Kibana 三个主要组件组成,现在新增了Filebeat组件,可以更高效的收集数据。:是一个分布式、高可扩展的开源搜索引擎,能快速准确地从大量日志数据中检索出所需信息。Logstash:是一个数据收集和处理引擎,用于从各种数据源收集日志数据,如文件、网络接口、数据库等,然后对数据进行过滤、转换和格式化等处理。Kibana。
2025-03-26 21:07:16
700
原创 JVM和运行时数据区
在 JDK 7 及以前的实现方式,它和堆一样,都是 JVM 内存的一部分,并且有固定的大小限制。元空间不再使用 JVM 的内存,而是使用本地内存,这使得元空间的大小不再受 JVM 内存大小的限制,而是受限于操作系统的可用内存。同时,字符串常量池从方法区移动到了堆中。每个栈由多个栈帧组成,对应这每次方法调用时占用的内存,栈帧过多会导致栈内存溢出,常见于递归调用。程序在运行过程中,如果由于某些原因导致一些不再使用的对象无法被垃圾回收器回收,一直占用内存空间,会使得可用内存逐渐减少,这时就会出现内存泄漏的情况。
2025-03-12 10:06:43
849
原创 Redis的缓存穿透、击穿、雪崩
查询一个不存在的数据,数据库未查询到数据,Redis也没有缓存这条数据,导致每次都访问数据库,从而导致数据库压力增加。当Redis中某一缓存失效时,多个请求同时访问该数据,Redis无法拦截,请求直接访问数据库,就会造成缓冲击穿。缓存击穿会造成数据库压力急剧增加。当Redis中大量数据同时过期,就会导致缓存雪崩,雪崩会导致数据库压力激增,从而造成系统性能下降,甚至造成崩溃。
2024-08-18 17:03:06
915
1
原创 二叉树数据结构详解及java使用二叉树示例代码
二叉树是一种常见的树形数据结构,它由节点组成,每个节点最多有两个子节点,分别称为左子节点和右子节点。
2024-04-25 20:05:15
529
原创 java中线程池的简介及使用方法
线程池是一种并发编程的技术,用于管理和复用多个线程以执行异步任务。它通常由两部分组成:任务队列和一组线程。任务队列用于存储待执行的任务,而线程池则负责管理一组预先创建的线程,这些线程可以从任务队列中获取任务并执行。
2024-04-24 10:00:00
1306
原创 java中线程的生命周期和线程安全
线程安全是指在多线程环境中,对共享资源的访问不会导致数据的不一致或者程序的异常行为。常见的情况包括等待I/O操作的完成、等待获取锁或者同步块的许可等。方法中的代码,或者因异常而结束时,线程进入终止状态。与等待状态类似,但是可以指定一个超时时间,在超时时间之后线程会自动恢复到就绪状态。方法后,线程进入就绪状态。处于就绪状态的线程已经具备了运行的条件,等待系统调度执行。线程处于等待状态时,它需要等待其他线程的通知或者某个条件的满足。当线程获得了CPU资源后,它就进入了运行状态,开始执行。
2024-04-23 09:00:00
858
1
原创 mybatis中$和#的区别以及各自的使用场景
在 MyBatis 中,$ 和 # 都是用于参数绑定的,但它们之间存在明显的差异,主要体现在参数的预处理方式和安全性上。
2024-03-14 16:46:57
1926
原创 SpringMVC拦截器的作用及使用方法
拦截器在Spring MVC中扮演着非常重要的角色,它可以用于实现诸多与请求处理相关的功能,包括权限控制、日志记录、数据处理、性能监控等,从而实现更加灵活和高效的Web应用程序开发。
2024-03-13 08:06:14
779
原创 MyBatis详解
在 MyBatis 中,需要编写 SQL 映射文件来定义 SQL 查询、更新、插入和删除操作。这些映射文件通常包含 SQL 语句以及映射到 Java 对象的结果集处理方式。-- 根据用户ID查询用户信息 --></select></mapper>
2024-03-11 11:59:49
2397
原创 nacos的原理及使用方法
Nacos是一个开源的动态服务发现、配置管理和服务管理平台。Nacos支持多种编程语言,包括Java、Go和Python等,并提供了丰富的特性,如动态服务发现、服务状态管理、动态配置管理、动态 DNS 服务和流量管理等。
2024-03-10 19:02:10
1575
原创 Maven的含义以及使用方法
Maven 是一个项目管理工具,它主要用于 Java 项目的构建、依赖管理和项目信息管理。下面是一些 Maven 的核心含义及作用:
2024-03-09 19:06:28
1153
1
原创 2024 年 AI 辅助研发趋势
随着人工智能技术的不断进步,AI辅助研发已成为科技界和工业界的焦点。无论是在医药研发、汽车设计、软件开发还是材料科学领域,AI正在逐步渗透并改变传统的研发模式。通过提升研发效率、降低成本,并在一定程度上解决复杂问题,AI辅助研发正推动着科技的进步。随着AI技术的不断成熟,我们将更加明显地看到AI辅助研发的趋势,并其潜力也将得到更广泛的挖掘和应用。
2024-03-08 16:53:59
1323
原创 Redis运行原理及基本数据类型
Redis 是一个开源的、基于内存的数据存储系统,它通过键值对的方式存储数据。是单线程的内存数据库,采用事件驱动模型来处理并发请求。它使用非阻塞的 I/O 多路复用机制来实现高性能的并发访问。数据库通常会将数据存储在内存中,这样可以提高数据读写的速度。此外,Redis 也支持将数据持久化到磁盘上,以防止数据丢失。采用基于内存的数据结构以及高效的数据存储和检索算法,从而提供快速的数据访问速度。
2024-03-07 20:09:47
1201
1
原创 springmvc的使用方法及运行原理
Spring MVC 是 Spring 框架中用于开发 Web 应用程序的一部分,它基于 MVC(Model-View-Controller)设计模式,提供了一种灵活且强大的方式来构建 Web 应用。
2024-03-06 19:14:05
1311
原创 JAVA设计模式——单例模式
单例模式是一种创建型设计模式,其主要目的是确保一个类只有一个实例,并提供一个全局访问点来访问这个实例。单例模式通常用于需要在整个应用程序中共享某个资源或控制某个独占性资源的情况。在单例模式中,通常会将类的构造函数设为私有(private),以防止外部直接实例化该类。同时,类内部会维护一个静态成员变量来保存唯一的实例,并提供一个静态方法来获取或创建这个实例。单例模式有多种实现方式,包括懒汉式、饿汉式、双重检查锁等,需要注意的是,在多线程环境下,需要考虑线程安全性,确保单例模式能够正确地工作。
2024-03-04 20:36:19
1000
1
原创 反射的概念及应用
在 Java 中,反射机制允许程序在运行时获取类的信息、调用类的方法、访问类的属性,而无需提前知道类的具体名称。尽管反射提供了强大的动态操作能力,但也应该注意到反射会带来一定的性能损耗,并且会降低代码的可读性和安全性,因此在使用反射时需要谨慎考虑。:通过反射机制,可以在运行时动态加载并实例化类,而无需在编译时确定类的类型。:可以在运行时访问和修改类的字段,包括私有字段,从而实现对类的动态操作。:可以在运行时动态调用类的方法,包括私有方法,从而实现灵活的逻辑控制。方法,以及访问并修改了类的私有字段。
2024-03-03 19:31:21
467
原创 同步阻塞io、同步非阻塞io、异步阻塞io和异步非阻塞io详解和区别
同步阻塞 I/O 简单易用,但可能导致性能问题;同步非阻塞 I/O 可以减少阻塞等待的时间,但需要频繁轮询状态;异步非阻塞 I/O 在高并发环境下表现优秀,但编程复杂度较高。
2024-03-02 08:45:28
2987
2
原创 I/O流详解
I/O(Input/Output)流是 Java 编程中用于处理输入和输出操作的一种机制。在计算机编程中,输入指的是从外部获取数据的过程,输出则是将数据发送到外部的过程。I/O 流提供了一种统一的方式来处理不同类型的数据输入和输出,无论是文件、网络连接、内存等,都可以通过 I/O 流进行读写操作。I/O 流中常用的是字节流和字符流,它们用于处理不同类型的数据:字节流用于处理二进制数据,字符流用于处理文本数据。
2024-03-01 20:10:25
1285
1
原创 HTTP协议、HTTPS协议、TCP协议和UDP协议详细讲解
总而言之,HTTPS是在HTTP基础上加入了SSL/TLS协议进行加密和身份认证,提供更高级别的安全保护。对于涉及敏感信息或需要保护用户隐私的场景,使用HTTPS是更为安全和可靠的选择。总的来说,TCP提供了可靠的数据传输和流量控制,适用于对数据完整性和顺序性要求高的场景;而UDP则更适合对实时性要求高、能够容忍一定数据丢失的场景。
2024-03-01 08:03:52
4502
1
原创 OSI模型与TCP/IP协议详解
OSI模型和TCP/IP协议是两种不同的网络通信体系结构,它们各自描述了计算机网络通信的层次结构和协议规范。在实际应用中,TCP/IP协议更为广泛地被采用,并成为了互联网的基础协议。
2024-02-29 20:05:32
1292
原创 JAVA集合详解
在Java中,集合(Collection)是一种用来存储和操作一组对象的容器类。Java提供了丰富的集合框架,位于 java.util 包中,用于满足不同的需求和场景。
2024-02-29 19:45:21
880
原创 String和Stringbuffer、 Stringbuilder的区别
在 Java 中,String、StringBuffer 和 StringBuilder 都用来表示字符串,但它们之间有一些重要的区别。
2024-02-29 19:18:25
353
原创 JAVA八大基本数据类型
JAVA中基本数据类型分为八个,分别是整型四个byte(字节型)、short(短整型)、int(整型)和long(长整型),浮点型两个float(单精度)、double(双精度),布尔型一个boolean,字符型一个char。
2024-02-29 18:59:43
464
原创 接口与抽象类的区别
抽象类是abstract修饰的,是一种特殊的类。抽象类里面可以用抽象方法、实际方法以及属性变量,实际方法为具体处理代码的方法,抽象方法表现为只有方法的声明,没有方法体。抽象类拥有构造方法,但是无法被实例化出来,构造方法的作用是为其子类提供初始化操作。包含抽象方法的一定是抽象类,但抽象类不一定有抽象方法,抽象方法只能是public或者protected修饰的,默认为public。如果一个子类需要继承抽象类,则需要实现父类所有的抽象方法,如果子类同样是抽象类,可以不实现父类的抽象方法。
2024-02-26 20:24:08
538
1
原创 重写和重载的区别
重写一般发生在子类与父类关系中,子类继承父类后,父类原本的方法无法支持子类的业务时,就需要进行重写。重写后子类的方法名不可变,参数类型以及个数、返回值都不可变,可以修改的仅包括方法中的代码。为了保持程序的和一致性,子类重写父类方法后,修饰符需要大于父类的修饰符。重载发生在同一个类中,主要用于实现代码的的多样化使用。即同一个方法名,但传入不同的参数类型、个数,就会调用不同的方法。重载的方法名相同,参数个数、参数类型和返回值皆可不同。
2024-02-24 10:00:48
444
原创 java的特性,封装、继承、多态、抽象
接口不能被继承,可以被实现,接口是多实现的,可扩展型强,抽象类是单继承的。抽象类是使用abstract修饰的,里面可以有属性,抽象方法和实际方法,实际方法是具体实现代码的方法,而抽象方法仅有方法名,没有具体代码对方法的实现。实现多态需要三个必要条件,继承、重写、向上转型。抽象是把一类事物的共同特性或特征抽取出来,封装到一个类中,是面对对象的基础逻辑,在面对对象编程中,抽象分为抽象类和接口。重写:子类必须继承父类的方法,父类有的方法子类也要有相同的方法,方法名相同,参数类型和个数相同,返回值相同。
2024-02-23 10:43:54
426
2
原创 面向对象和面向过程的区别
面对过程是以实现功能的函数开发为主,面对过程可以采用线性思维去解决,但面向对象事务比较复杂,无法通过线性思维处理。面向对象可以帮助我们从宏观上把握事物之间的复杂关系,方便分析整个系统,但是具体到微观上,仍然需要使用面向过程的方式进行处理。
2024-02-23 07:56:53
478
空空如也
idea启动失败,怎么启动成功
2024-04-16
poi导出pdf怎么实现
2024-03-25
TA创建的收藏夹 TA关注的收藏夹
TA关注的人