自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 二叉树数据结构详解及java使用二叉树示例代码

二叉树是一种常见的树形数据结构,它由节点组成,每个节点最多有两个子节点,分别称为左子节点和右子节点。

2024-04-25 20:05:15 422

原创 java中线程池的简介及使用方法

线程池是一种并发编程的技术,用于管理和复用多个线程以执行异步任务。它通常由两部分组成:任务队列和一组线程。任务队列用于存储待执行的任务,而线程池则负责管理一组预先创建的线程,这些线程可以从任务队列中获取任务并执行。

2024-04-24 10:00:00 1153

原创 java中线程的生命周期和线程安全

线程安全是指在多线程环境中,对共享资源的访问不会导致数据的不一致或者程序的异常行为。常见的情况包括等待I/O操作的完成、等待获取锁或者同步块的许可等。方法中的代码,或者因异常而结束时,线程进入终止状态。与等待状态类似,但是可以指定一个超时时间,在超时时间之后线程会自动恢复到就绪状态。方法后,线程进入就绪状态。处于就绪状态的线程已经具备了运行的条件,等待系统调度执行。线程处于等待状态时,它需要等待其他线程的通知或者某个条件的满足。当线程获得了CPU资源后,它就进入了运行状态,开始执行。

2024-04-23 09:00:00 756 1

原创 java中多线程的创建方式及常用的方法

常见的创建线程的方式包括:继承Thread类、实现Runnable接口和实现Callable接口。

2024-04-22 19:20:56 458

原创 mybatis中$和#的区别以及各自的使用场景

在 MyBatis 中,$ 和 # 都是用于参数绑定的,但它们之间存在明显的差异,主要体现在参数的预处理方式和安全性上。

2024-03-14 16:46:57 773

原创 SpringMVC拦截器的作用及使用方法

拦截器在Spring MVC中扮演着非常重要的角色,它可以用于实现诸多与请求处理相关的功能,包括权限控制、日志记录、数据处理、性能监控等,从而实现更加灵活和高效的Web应用程序开发。

2024-03-13 08:06:14 601

原创 Mabatis缓存详细介绍

MyBatis缓存分为一级缓存和二级缓存,是 MyBatis 中用于提高性能的两种缓存机制。

2024-03-12 08:00:00 573

原创 MyBatis详解

在 MyBatis 中,需要编写 SQL 映射文件来定义 SQL 查询、更新、插入和删除操作。这些映射文件通常包含 SQL 语句以及映射到 Java 对象的结果集处理方式。-- 根据用户ID查询用户信息 --></select></mapper>

2024-03-11 11:59:49 2274

原创 nacos的原理及使用方法

Nacos是一个开源的动态服务发现、配置管理和服务管理平台。Nacos支持多种编程语言,包括Java、Go和Python等,并提供了丰富的特性,如动态服务发现、服务状态管理、动态配置管理、动态 DNS 服务和流量管理等。

2024-03-10 19:02:10 980

原创 Maven的含义以及使用方法

Maven 是一个项目管理工具,它主要用于 Java 项目的构建、依赖管理和项目信息管理。下面是一些 Maven 的核心含义及作用:

2024-03-09 19:06:28 1063

原创 2024 年 AI 辅助研发趋势

随着人工智能技术的不断进步,AI辅助研发已成为科技界和工业界的焦点。无论是在医药研发、汽车设计、软件开发还是材料科学领域,AI正在逐步渗透并改变传统的研发模式。通过提升研发效率、降低成本,并在一定程度上解决复杂问题,AI辅助研发正推动着科技的进步。随着AI技术的不断成熟,我们将更加明显地看到AI辅助研发的趋势,并其潜力也将得到更广泛的挖掘和应用。

2024-03-08 16:53:59 1060

原创 Redis运行原理及基本数据类型

Redis 是一个开源的、基于内存的数据存储系统,它通过键值对的方式存储数据。是单线程的内存数据库,采用事件驱动模型来处理并发请求。它使用非阻塞的 I/O 多路复用机制来实现高性能的并发访问。数据库通常会将数据存储在内存中,这样可以提高数据读写的速度。此外,Redis 也支持将数据持久化到磁盘上,以防止数据丢失。采用基于内存的数据结构以及高效的数据存储和检索算法,从而提供快速的数据访问速度。

2024-03-07 20:09:47 1071 1

原创 springmvc的使用方法及运行原理

Spring MVC 是 Spring 框架中用于开发 Web 应用程序的一部分,它基于 MVC(Model-View-Controller)设计模式,提供了一种灵活且强大的方式来构建 Web 应用。

2024-03-06 19:14:05 1203

原创 线程池运行原理及核心参数、饱和策略

线程池是一种用于管理线程的技术,它可以有效地重用线程、控制线程的数量,从而提高程序的性能和效率。

2024-03-05 09:45:06 1045

原创 JAVA设计模式——单例模式

单例模式是一种创建型设计模式,其主要目的是确保一个类只有一个实例,并提供一个全局访问点来访问这个实例。单例模式通常用于需要在整个应用程序中共享某个资源或控制某个独占性资源的情况。在单例模式中,通常会将类的构造函数设为私有(private),以防止外部直接实例化该类。同时,类内部会维护一个静态成员变量来保存唯一的实例,并提供一个静态方法来获取或创建这个实例。单例模式有多种实现方式,包括懒汉式、饿汉式、双重检查锁等,需要注意的是,在多线程环境下,需要考虑线程安全性,确保单例模式能够正确地工作。

2024-03-04 20:36:19 865 1

原创 反射的概念及应用

在 Java 中,反射机制允许程序在运行时获取类的信息、调用类的方法、访问类的属性,而无需提前知道类的具体名称。尽管反射提供了强大的动态操作能力,但也应该注意到反射会带来一定的性能损耗,并且会降低代码的可读性和安全性,因此在使用反射时需要谨慎考虑。:通过反射机制,可以在运行时动态加载并实例化类,而无需在编译时确定类的类型。:可以在运行时访问和修改类的字段,包括私有字段,从而实现对类的动态操作。:可以在运行时动态调用类的方法,包括私有方法,从而实现灵活的逻辑控制。方法,以及访问并修改了类的私有字段。

2024-03-03 19:31:21 393

原创 同步阻塞io、同步非阻塞io、异步阻塞io和异步非阻塞io详解和区别

同步阻塞 I/O 简单易用,但可能导致性能问题;同步非阻塞 I/O 可以减少阻塞等待的时间,但需要频繁轮询状态;异步非阻塞 I/O 在高并发环境下表现优秀,但编程复杂度较高。

2024-03-02 08:45:28 2025 1

原创 I/O流详解

I/O(Input/Output)流是 Java 编程中用于处理输入和输出操作的一种机制。在计算机编程中,输入指的是从外部获取数据的过程,输出则是将数据发送到外部的过程。I/O 流提供了一种统一的方式来处理不同类型的数据输入和输出,无论是文件、网络连接、内存等,都可以通过 I/O 流进行读写操作。I/O 流中常用的是字节流和字符流,它们用于处理不同类型的数据:字节流用于处理二进制数据,字符流用于处理文本数据。

2024-03-01 20:10:25 1198 1

原创 HTTP协议、HTTPS协议、TCP协议和UDP协议详细讲解

总而言之,HTTPS是在HTTP基础上加入了SSL/TLS协议进行加密和身份认证,提供更高级别的安全保护。对于涉及敏感信息或需要保护用户隐私的场景,使用HTTPS是更为安全和可靠的选择。总的来说,TCP提供了可靠的数据传输和流量控制,适用于对数据完整性和顺序性要求高的场景;而UDP则更适合对实时性要求高、能够容忍一定数据丢失的场景。

2024-03-01 08:03:52 1759 1

原创 OSI模型与TCP/IP协议详解

OSI模型和TCP/IP协议是两种不同的网络通信体系结构,它们各自描述了计算机网络通信的层次结构和协议规范。在实际应用中,TCP/IP协议更为广泛地被采用,并成为了互联网的基础协议。

2024-02-29 20:05:32 1098

原创 JAVA集合详解

在Java中,集合(Collection)是一种用来存储和操作一组对象的容器类。Java提供了丰富的集合框架,位于 java.util 包中,用于满足不同的需求和场景。

2024-02-29 19:45:21 810

原创 String和Stringbuffer、 Stringbuilder的区别

在 Java 中,String、StringBuffer 和 StringBuilder 都用来表示字符串,但它们之间有一些重要的区别。

2024-02-29 19:18:25 319

原创 JAVA基本数据类型转换与自动装箱、拆箱

在Java中,基本数据类型的转换主要分为两种:自动类型转换(隐式转换)和强制类型转换(显式转换)。

2024-02-29 19:06:38 332

原创 JAVA八大基本数据类型

JAVA中基本数据类型分为八个,分别是整型四个byte(字节型)、short(短整型)、int(整型)和long(长整型),浮点型两个float(单精度)、double(双精度),布尔型一个boolean,字符型一个char。

2024-02-29 18:59:43 367

原创 ==和equals的区别

在编程中,"==" 和 "equals()" 都用于比较对象之间的相等性,但它们有不同的用法和含义。

2024-02-29 08:00:00 457

原创 值传递和引用传递的区别

值传递通常适合于函数不改变实际参数的情况,引用传递适合于需要函数改变实际参数的情况。

2024-02-28 08:00:00 433 1

原创 JAVA修饰符详解

修饰符是改变类、方法、变量或常量特性的关键字,通常分为访问权限修饰符和非访问权限修饰符。

2024-02-27 15:34:16 825

原创 接口与抽象类的区别

抽象类是abstract修饰的,是一种特殊的类。抽象类里面可以用抽象方法、实际方法以及属性变量,实际方法为具体处理代码的方法,抽象方法表现为只有方法的声明,没有方法体。抽象类拥有构造方法,但是无法被实例化出来,构造方法的作用是为其子类提供初始化操作。包含抽象方法的一定是抽象类,但抽象类不一定有抽象方法,抽象方法只能是public或者protected修饰的,默认为public。如果一个子类需要继承抽象类,则需要实现父类所有的抽象方法,如果子类同样是抽象类,可以不实现父类的抽象方法。

2024-02-26 20:24:08 510

原创 重写和重载的区别

重写一般发生在子类与父类关系中,子类继承父类后,父类原本的方法无法支持子类的业务时,就需要进行重写。重写后子类的方法名不可变,参数类型以及个数、返回值都不可变,可以修改的仅包括方法中的代码。为了保持程序的和一致性,子类重写父类方法后,修饰符需要大于父类的修饰符。重载发生在同一个类中,主要用于实现代码的的多样化使用。即同一个方法名,但传入不同的参数类型、个数,就会调用不同的方法。重载的方法名相同,参数个数、参数类型和返回值皆可不同。

2024-02-24 10:00:48 412

原创 java的特性,封装、继承、多态、抽象

接口不能被继承,可以被实现,接口是多实现的,可扩展型强,抽象类是单继承的。抽象类是使用abstract修饰的,里面可以有属性,抽象方法和实际方法,实际方法是具体实现代码的方法,而抽象方法仅有方法名,没有具体代码对方法的实现。实现多态需要三个必要条件,继承、重写、向上转型。抽象是把一类事物的共同特性或特征抽取出来,封装到一个类中,是面对对象的基础逻辑,在面对对象编程中,抽象分为抽象类和接口。重写:子类必须继承父类的方法,父类有的方法子类也要有相同的方法,方法名相同,参数类型和个数相同,返回值相同。

2024-02-23 10:43:54 385 2

原创 面向对象和面向过程的区别

面对过程是以实现功能的函数开发为主,面对过程可以采用线性思维去解决,但面向对象事务比较复杂,无法通过线性思维处理。面向对象可以帮助我们从宏观上把握事物之间的复杂关系,方便分析整个系统,但是具体到微观上,仍然需要使用面向过程的方式进行处理。

2024-02-23 07:56:53 448

空空如也

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

TA关注的人

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