自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 JavaEE从入门到起飞(九) ~Activiti 工作流

当一道流程逻辑需要用到`多个表单的提交和多个角色的审核共同完成`的时候,就可以使用工作流。工作流一般使用的是第三方技术,也就是说别人帮你`创建数据库表和service层、mapper层,你只需要注入工具接口即可使用。`原理:`一切操作都是sql语句,第三方做好,你只要按照它们的规范,即可完成工作流。`

2024-08-22 21:09:03 1711

原创 JavaEE从入门到起飞(八) ~ Git

顺序: add-------开发----commit到本地----->pull代码(可能出现代码冲突, 需要merge代码)-------->push代码。这个命令的意思是将本地的 master 分支推送到远程仓库 origin 中对应的 master 分支。版本切换通常指的是在不同的分支之间切换,以便于在不同的功能开发、修复bug或维护版本之间进行切换。4)再通过idea将idea中的代码推送到远程仓库,再推送的过程中,就会出现下面的错误。同一个仓库可以有多个分支,各个分支相互独立,互不干扰。

2024-08-15 17:07:23 1791 1

原创 JavaEE从入门到起飞(七) ~ Maven进阶

什么时候pom不要写版本号?版本锁定是指在项目中固定特定依赖的版本,以避免因依赖升级而导致的问题。被springboot-dependencies中的所管理的不需要声明版本,一般国内产品需要写版本或,比如Spring Boot 默认使用 Logback 作为日志框架。如果你希望使用其他的日志框架,比如 Log4j2,那么你需要在 pom.xml 中进行相应的配置。

2024-08-15 16:58:30 1073

原创 Java前端必备知识~vue基础

概念: Browser Object Model: 浏览器对象模型, 浏览器的每一个组成部分封装成了一个JS对象,可以让程序员通过调用方法的方式操作浏览器BOM对象:Window对象的常用方法:0.2 JS中的DOM模型概念: Document Object Model- 文档对象模型, js把浏览器显示的每一个html文档的每一个组成部分都封装成对应的对象, 方便程序员通过代码的方式来操作文档,程序员经常可以借助于DOM模型,对html文档做增删改查的操作DOM对象:Document对象常用方法:El

2024-08-13 00:34:22 805

原创 Java开发必备前端知识~html+css+js

自己参照文档完成…概念: hyper text markup language: 超文本标记语言​ 超文本:不仅仅包含文本,还包含多媒体数据​ 标记: 写一些字符(标签),会有特点的效果入门:​ 1.html语言写的文件的后缀名 .html / .htm​ 2.标签: 自闭合标签, 围堵标签 ​ 3.属性: ​ 4.标签需要正确的嵌套​ 5.html文档中,有且仅有一个根标签html​ 6.一个html文档中,必须要有的标签:

2024-08-13 00:27:23 1143

原创 JavaEE从入门到起飞(六) ~ mysql

SQL是用来操作数据库的一种语言,通过sql可以实现数据库、数据表、数据记录的增删改查我们一般把增删改查称为CRUD:create创建、retrieve 检索、update 修改、delete删除SQL可以单行书写,也可以多行书写, 它以;结束一条SQL语句在windows环境中SQL语句是不区分大小写的在SQL中可以使用注释,一般有两种:单行注释-- 注释内容和 多行注释/* 注释内容 */

2024-08-12 01:30:59 1244

原创 JavaEE从入门到起飞(五) ~ Mybatis-Plus

Builder//生成一个静态内部类,帮助我们链式调用设置属性值@Data@TableId(type = IdType.AUTO) //主键自增,设置主键生成策略@JsonProperty(value = "username")//指定 JSON 键名,默认通过 getter 方法的名称来确定 JSON 键名。@TableField(value = "username") //设置数据库的字段名称@TableField(select = false)//查询不可见。

2024-08-12 01:18:13 825

原创 JavaEE从入门到起飞(四) ~Redis

Spring对Redis客户端进行了整合,提供了,在SpringBoot项目中还提供了对应的starter,即spring-boot-starter-data-redisSpringDataRedis是Spring的一部分,对Redis底层开发包进行了高度封装,提供了一个高度封装的类:RedisTemplate,用于操作各种数据类型:简单K-V操作SetOperations: set类型数据操作ZSetOperations: zset类型数据操作。

2024-08-10 16:25:18 854

原创 JavaEE从入门到起飞 (三) ~AOP

在现代软件开发中,面向切面编程(Aspect-Oriented Programming,AOP)是一种重要的编程范式,它提供了一种有效的方式来解决横切关注点(cross-cutting concerns)的问题。本文将介绍AOP的概念、其主要组成部分以及如何在Java应用程序中应用AOP技术。AOP是一种软件开发技术,它允许开发人员将横切关注点(如日志记录、事务管理、安全性、缓存等)从应用的核心逻辑中分离出来。

2024-08-08 22:02:11 1742

原创 Java从入门到精通(十五) ~ IO流

当我们做java开发时,需要在内存,磁盘,网络中传输数据时,可能要一次性要传输的数据很大,而我们的内存空间有限,无法完成大文件的批量传输,这时候我们就可以使用IO流,IO流传输数据就是像流水一样缓缓的流动传输。IO流是用于处理设备之间的数据传输的机制,Java中的IO流主要分为两大类:输入流和输出流。输入流用于从源读取数据,输出流用于向目标写入数据。流的概念可以看作是数据在源和目标之间的传输管道,数据可以是字节或字符。输出流:以内存为基准,将内存中的数据以字节或者字符的形式写到磁盘或者网络中的流。

2024-08-03 16:59:51 1454

原创 JavaEE 从入门到精通(二) ~SpringMVC 接收请求和设置响应

数据传输在前后端分离项目中至关重要,它通过优化网络传输量和延迟、增强系统可扩展性、提高安全性、优化用户体验、支持多平台访问以及简化维护和测试,显著提升了整体系统的效率和可靠性。根据请求数据,计算响应数据。一、获取请求数据在Web应用程序开发中,浏览器向服务器发送的请求可以包含多种类型的数据,这些数据对于执行业务逻辑至关重要。为了有效地处理和操作这些数据,开发人员通常需要使用各种参数来接收和映射前端的请求数据。

2024-08-01 23:58:02 1260 1

原创 JavaEE 从入门到精通(一) ~ Maven

在软件开发的日常工作中,有效的项目管理是确保项目成功的关键。Maven 是一个强大且广泛使用的项目管理工具,不仅仅是 Java 项目,它已经成为许多其他语言项目的选择。本文将深入探讨 Maven 的核心概念、工作原理及其在现代软件开发中的重要性。Maven 是一个基于项目对象模型(Project Object Model, POM)的构建工具,它主要用于自动管理和构建Java项目。通过 Maven,开发人员可以更轻松地管理项目的构建、报告和文档生成。来源于apache使用Java语言实现的。

2024-07-31 23:45:47 1269

原创 Java从入门到精通(十四) ~ 多线程

在软件开发中,多线程编程是一项重要的技能,特别是在处理并发问题和提升程序性能方面起到关键作用。本文将探讨Java中多线程编程的基础知识、常见应用场景以及一些最佳实践。当多线程切换时间片的速度非常快时,会给人一种多个任务同时进行的感觉。比如,视频播放实际上是由一帧一帧的图片组成的,但由于切换速度很快,用户无法感知到图片之间的切换。这种体验使得用户可以在玩游戏的同时听歌、收到QQ消息,极大地提升了用户的体验。因此,多线程的重要性不言而喻。概念: 使用一个容器(数组|集合),存放了多个线程对象。

2024-07-29 23:57:13 1357 1

原创 Java每日一题 ~ 盛最多水的容器

暴力法的思路是对所有可能的容器组合进行穷举,计算它们能容纳的水量,并找出最大的水量。双指针法是一种优化的方法,通过从容器的宽度最大开始逐渐减小的方式,来求解问题。本题的要求就是:给定数组索引之间的差值为宽,元素值中小的为边长求面积。我们往里面寻找的时候,宽肯定减小。双指针法的时间复杂度为。暴力法的时间复杂度为。

2024-07-29 22:33:41 658 1

原创 Java从入门到精通(十三)~ 枚举和注解

枚举和注解都是 Java 中重要的语言特性,枚举用于定义常量集合和类型安全,而注解是元数据的一种形式,可以在代码中添加元数据信息,用来提供给编译器和其他工具进行特定的处理。通过合理使用枚举和注解,可以提高代码的可读性、灵活性和功能性。注解是给程序看的注释,注解离开了反射什么也不是。一、枚举枚举是一种特殊的数据类型,用于定义一组命名的常量集合。1.1 枚举的概念1. 类被public final修饰,默认继承Enum类,因此不能被继承也不可继承。

2024-07-28 21:03:17 1013 1

原创 Java从入门到精通(十二)~ 动态代理

无反射无Java,无动态代理无框架。动态代理可以帮助在不修改原始类代码的情况下,对原始类的方法进行增强、添加额外的处理逻辑或者拦截某些操作。动态代理实现的关键在于利用反射动态生成代理类或者代理对象,这些代理对象可以拦截对真实对象方法的调用,并在调用前后执行额外的逻辑。动态代理是一种在运行时动态生成代理类的技术,它允许在不事先创建实际实现类的情况下,创建一个实现了特定接口或一组接口的代理类。一、什么是类加载器?

2024-07-28 02:04:52 902

原创 Java从入门到精通 (十一) ~ 操作系统、进程和线程

操作系统:计算机背后的智慧大脑,本质是一个软件在当今数十亿台设备上运行的软件背后,存在一个关键的、却常被忽视的技术支柱 —— 操作系统。操作系统是计算机系统中的核心软件,它负责管理和协调计算机硬件资源,并为用户和应用程序提供服务和接口。无论是个人电脑、智能手机,还是大型服务器,都依赖于操作系统的顺畅运行。进程:计算机运行的基本单位在计算机科学中,进程(Process)是操作系统中的一个核心概念,它代表了正在运行的程序的实例。

2024-07-26 23:21:02 896

原创 Java从入门到精通 (十) ~ 计算机是如何工作的呢 ?

这篇博客中,我们会从软件工程师的角度解释计算机是如何工作的,对于开发人员,我们的主要目标既不是可以造出自己的计算机,也不是介绍如何编程,而是希望让我们了解计算机的核心工作机制后,打破计算机的神秘感,并且有利于理解我们平时编程时的一些行为、动作的历史渊源。大家可以配合​​​​​​下述​视频做更详尽的学习和了解。【计算机科学速成课】[40集全/精校] - Crash Course Computer Science_哔哩哔哩_bilibili软件的发展编程语言实际就是用来创造应用软件的。

2024-07-26 15:58:51 959

原创 你真的了解回调函数吗?ajax回调函数的原理你知道吗?

函数的名字作为参数即为回调函数。public static int f(方法名,int x, int y){return 方法名(x, y);在项目开发中主要用于异步请求的通知作用。Axios 的回调函数是特定于其提供的异步 HTTP 请求功能的,用于处理请求结果。而监听器是一个更广泛的概念,可以应用于各种事件驱动编程场景,允许多个函数监听和响应事件或状态的变化。在 Axios 中,你使用回调函数来处理单一请求的成功或失败,而监听器模式可以用于更复杂的事件管理和状态变化监听。

2024-07-26 00:40:59 1089

原创 JavaSE从零开始到精通(九) - 双列集合

Java 中的双列集合主要指的是可以存储键值对的集合类型,其中最常用的包括Map接口及其实现类。这些集合允许你以键值对的形式存储和管理数据,提供了便捷的按键访问值的方式。

2024-07-25 23:51:43 640

原创 JavaSE从零开始到精通(八) - 单列集合类

集合类是一种用于存储对象的容器,Java 提供了一组预定义的集合类,它们位于java.util包中。这些集合类提供了各种数据结构,包括列表、集合、队列、映射等,每种数据结构都有其独特的特性和用途。Java 中的集合类是开发中不可或缺的重要部分,它们提供了一种管理和操作数据集合的有效方式。无论是简单的数组还是复杂的映射结构,Java 的集合框架都提供了广泛的选择,以满足不同场景下的需求。

2024-07-24 23:51:52 1262

原创 算法从零到精通 (一) ~ 快慢双指针

快慢双指针是一种常用的算法技巧,通常用于解决涉及链表或数组的问题。它的基本思想是使用两个指针,一个移动速度快(快指针),一个移动速度慢(慢指针),来解决特定的问题。这两个指针通常从序列的起始位置开始,并以不同的步伐向前移动,直到达到特定的条件为止。快慢双指针是指在算法处理过程中,使用两个指针,分别从序列的起始位置出发,按照不同的步伐向前移动,直到满足某种条件。通常快指针的移动速度比慢指针快,这样可以加快算法的执行速度。判断链表是否有环。

2024-07-24 22:03:42 1334

原创 数据结构从入门到精通二 ~ 数组和链表

在计算机科学和软件工程领域,数据结构是指在计算机中组织和存储数据的方式,数组和链表是其中最基础也是最常用的两种数据结构之一。数组(Array):是一种线性表数据结构,它使用连续的内存空间来存储一组相同类型的数据。数组提供了快速随机访问元素的能力,但插入和删除操作可能比较耗时,因为需要移动大量元素。链表(Linked List):也是一种线性表数据结构,但不同于数组,链表中的元素(节点)通过指针相互连接。每个节点包含数据和指向下一个节点的指针。

2024-07-23 23:10:36 530

原创 JavaSE从零开始到精通(七) - Stream流

Java 8引入了Stream API,它提供了一种高效且易于使用的处理集合数据的方式。Stream流可以被认为是一种高级的迭代器,允许我们在集合上进行复杂的操作,例如过滤、映射、排序、归约等,而这些操作可以链式调用,形成流水线。Stream流采用惰性求值的策略,只有当终端操作被调用时才会执行中间操作,这种特性可以提高性能,避免不必要的计算。流的来源流可以从集合(如List、Set、Map等)、数组、I/O资源等数据源创建。返回值:Stream中间操作中间操作是流的一部分,允许对流进行转换。

2024-07-23 22:01:30 1121

原创 hashCode()误区分析

hashCode方法在Java集合框架中扮演了重要角色,它不仅提供了快速查找和比较对象的一种手段,还保证了集合中对象存储和操作的正确性和高效性。理解和正确实现hashCode方法是Java开发中不可或缺的基础知识之一。重写hashCode方法:在Java中,hashCode方法不是直接返回对象的内存地址,而是根据对象的内容计算出的一个哈希码(hash code)。这个哈希码用于在集合类中确定对象在内存中的存储位置,以及在进行查找和比较时的效率。对象打印。

2024-07-22 21:30:21 807

原创 深入理解 Java 中的 String

如果字符变量c1的值为’a’,c2的值为’b’,则在变量中存放的是’a’的ASCII码97,‘b’ 的ASCII码98。)直接赋值给一个String变量时,Java编译器会将这个字符串字面量放入字符串常量池(String Pool)中,并且会优化代码以使用字符串常量池中的引用。String是一个final类,为了防止程序员通过继承重写String类的方法的手段来使得String类是 "可变的" 的情况。在Java中,String类的字面量赋值实际上是通过编译器特殊处理而非直接的赋值操作。

2024-07-22 21:03:22 831

原创 Java面向对象笔试题,99%的Java程序员面试时都会做错的笔试题

结果1: 你觉得输出20,那就是你没有想到子类在构造的时候,会先帮父类构造,没有写显示的super(),会送你一个隐藏的super()。答案会输出 0 20,你的结果对了吗!这个题会输出什么结果?

2024-07-21 23:54:17 494 6

原创 数据结构从入门到精通一 前言

由我看来数据结构是非常重要的。我们一定经常听到程序=数据结构 + 算法。数据结构:计算存储、组织数据的方式,是指数据相互之间是以什么方式排列在一起的。算法:通过执行一系列精确定义的步骤来解决问题或完成任务。数据结构:存储数据算法:处理数据。

2024-07-21 20:06:30 1017

原创 JavaSE从零开始到精通(六) - 多态

现实中的多态:同一个对象在不同时刻展现出的不同形态!编程中的多态:对于具体的类型和调用的方法,在编程时并不确定,而是在程序运行期间才确定,这样,不用修改源程序代码,就可以让引用变量绑定到各种不同的类实现上,这样,不用修改源程序代码,就可以让引用变量绑定到各种不同的类实现上,即不修改程序代码就可以改变程序运行时所绑定的具体代码,让程序可以选择多个运行状态,这就是多态性。核心:允许在编译时使用父类类型,而在运行时使用子类类型的实现。调用成员变量:编译看左边,运行看左边。

2024-07-20 22:03:18 828

原创 JavaSE从零开始到精通(五) - 反射

反射(Reflection)在计算机科学中指的是一种能够在运行时检查类或对象的能力,并获取其相关信息(如属性、方法、构造器等),甚至可以在运行时修改它们的行为的特性。反射的基本原理是在运行时动态地获取和操作类的信息。编译时期异常主要用来提醒程序员检查错误,而文件的异常就是本地电脑是否有这个环境,让你去检查的,就是读取本地文件的时候,提醒程序员检查本地的信息。注意:对于多态这种方式获取的是子类的class对象,返回的是对象phone的实际运行时类型。可以动态修改配置文件,来切换对象的创建和方法的执行。

2024-07-20 08:00:00 728

原创 JavaSE从零开始到精通(四) - 内部类

Java中的内部类是指定义在另一个类或方法内部的类。它允许一个类在另一个类的内部定义,这样可以更好地封装和组织代码。内部类可以分为静态内部类和非静态内部类(成员内部类)、局部内部类和匿名内部类,每种类型都有其独特的特性和用途。内部类:包含自定义数据类型,但是该自定义数据类,不依赖与该类它并没有实际意义,因此就可以不必创建一个新的类,而定义成内部类。比如:人这个类,其中包含心脏,心脏有自己的属性,但心脏需要依赖于人,失去人将不会有任何意义。// 外部类:人类// 内部类实例作为外部类的成员。

2024-07-19 10:25:48 412

原创 JavaSE从零开始到精通(四) - 继承和抽象类和接口

不具体的类,被abstract关键字修饰的类。格式:权限修饰符 abstract 返回值类型 方法名(参数列表);注意:抽象方法所在的类,必须是抽象类,也就是必须被abstract修饰。//抽取cat类和dog类中共性的内容//如果一个类中包含了抽象方法,那么该类必须是抽象类System.out.println("睡觉觉~");System.out.println("喝水水~");//吃//定义动物的吃的方法时: 1.动物都有吃的行为, 2.不知道这个行为的具体方案。

2024-07-19 00:43:37 1123

原创 AVL树(自平衡的二叉搜索树)

自平衡二叉搜索树:AVL 树是一种自平衡的二叉搜索树,它保持了在进行插入和删除操作后树的高度尽可能小,从而确保各种操作(如查找、插入、删除)的时间复杂度始终保持在 O(log n) 级别,其中 n 是树中节点的数量。平衡条件:AVL 树的平衡条件是其核心概念之一。具体而言,对于任意节点,其左子树和右子树的高度差不超过 1。这种平衡条件使得 AVL 树在动态更新时能够通过旋转操作快速调整树的结构,以保持平衡性。旋转操作:AVL 树通过四种基本的旋转操作(左旋、右旋、左右旋、右左旋)来维护平衡。

2024-07-18 08:21:19 336

原创 JavaSE从零开始到精通(三) - 面向对象

作用: 如果一旦一个引用类型的变量的值为null,那么证明该引用类型的变量将不指向堆中的任何内存,此时不能通过该引用做任何操作,否则会报错, NullPointerExceotion(空指针异常)。面向对象是基于面向过程的一种程序设计思想,核心思想:把现实中的事物抽象成对象,通过对象之间的信息传递来实现通信和交互。如果定义类的时候,没有提供构造方法, 那么编译器会自动的赠送一个空参数构造, 如果提供了,将不再赠送。private修饰成员方法的作用:只在合适的上下文中被调用,避免了不必要的外部访问和误用。

2024-07-17 18:16:17 848

原创 JavaSE从零开始到精通(二) - 方法

概念:方法是一段代码的集合,用于完成指定的功能。作用:代码的复用。可以在程序的任意地方通过调用方法的方式,进行使用该段代码。封装性。可以隐藏具体实现的细节,只暴露出方法的名称,参数和返回值即可。用户可以只需要知道该方法,你给他什么,他会给你搞好返给你结果。比如:Math.max(),我们只需要知道给该方法两个数(参数),他就会帮你算好最大值返回给你。模块化。方法允许将程序分解为更小的、可管理的部分。位置:类中,其他方法外。

2024-07-17 11:43:42 405

原创 Java的数组

概念:用于存储同一数据类型的多个元素[容器]声明格式:数据类型[] 变量名;

2024-07-16 22:51:56 211

原创 JavaSE从零开始到精通

IntelliJ IDEA是一款功能强大的集成开发环境,被广泛认为是Java开发的首选工具之一,同时也支持多种其他语言和技术的开发,为开发人员提供了高效、智能和友好的开发体验。Ctrl + D : 快速复制当前行Ctrl + B : 源码跟踪Ctrl + Shift + Z : 前进↑: 代码向上移动一行↓: 代码向下移动一行下面两个是重点对于跟踪源码的时候可以快速切换类关系:: 回到光标上一次所在的位置: 光标移动到下一次的位置Alt + 回车 : 选择提示解决报错。

2024-07-16 20:41:47 1333

原创 Mybatis的面试题

MyBatis是一款优秀的持久层框架,它提供了一级缓存和二级缓存来提高数据库访问性能。

2024-06-16 21:53:42 1153 1

原创 AtomicInteger

AtomicInteger是Java中的一个原子整数类,它提供了一种在多线程环境下进行原子性操作的方法。所谓原子性操作是指不会被线程调度机制打断的操作;这些操作可以在可能被其他线程影响的情况下作为一个不可分割的整体执行。在并发编程中,如果多个线程同时对同一个变量进行读取和写入操作,会存在竞态条件(Race Condition),导致数据不一致或错误。为了解决这种问题,Java提供了一系列的原子类,其中包括AtomicInteger。

2024-06-16 13:12:33 736

原创 Java反射

Java反射是指在程序运行时动态获取类的信息、调用对象方法、修改字段值等操作的能力。通过反射,我们可以在运行时分析和操作类的成员信息,这为编写灵活、通用的代码提供了可能性。Java反射是一项强大的特性,提供了在运行时检查和操作类信息的能力。然而,反射也会降低代码的性能和安全性,因此在使用反射时需要慎重考虑。希望本文对您了解Java反射有所帮助,欢迎留言分享您的想法和经验。

2024-06-12 20:57:09 361

空空如也

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

TA关注的人

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