自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Spring Boot 实现动态数据源配置

快速在Spring Boot 项目上实现动态数据源配置......

2024-06-05 10:17:33 620

原创 Token令牌技术

Token在计算机科学和网络安全中,指的是一种代表特定身份或权限的数据结构,通常用于确认用户身份并授权其访问特定资源。在互联网环境中,Token的运作主要涉及到服务器和客户端之间的交互。通过这种方式,Token在服务器和客户端之间建立了一种安全、可靠的通信机制。同时,由于Token不包含用户的敏感信息,如密码,因此它比直接传递用户信息更安全。请注意,Token的安全性取决于其生成、存储和验证过程中的多个因素。因此,在实际应用中,需要采取适当的安全措施来保护Token,防止其被窃取或滥用。

2024-05-02 12:17:17 332

原创 Spring 统一功能处理

为什么要有统一功能处理?我们在进行数据的返回的时候,不同的方法返回的数据类型也不一样,但是我们前端有时候期望拿到是一样的数据类型。就好比买菜的时候期望最后是用一个大的塑料袋进行包装的。那么我们可以在HTTP进行响应的之前,做一些事情,让我们返回的数据统一。目录。

2024-04-10 09:04:27 790 1

原创 MyBatis强大的动态Sql功能

如果只有单个参数并且是 List , 那么collection 的 id 属性必须是list , 如果是其他 需要进行重命名。不重命名 , 那么 collection 所对应的值 需要改为 list 因为单元测试类中使用的是 List。根据需求 , 动态的拼接SQL。用户有的信息是必须输入,但有的不是必须进行输入。比如在填写注册信息的时候,有时候密码是一定要填写的,而银行卡号不是必须填写的。如果使用的是 String[ ] 之类的,就需要使用 array。需求一般是需要根据特定的字段显示特定的内容。

2024-04-03 21:08:12 745

原创 Bean 注解

学习Spring MVC 的过程肯定少不了注解 , 那么我们使用 Spring 来进行存储对象的时候 , 需要按照一定的规范进行存储,不能一股脑的全都使用一个注解存到一个地方。那么本篇博客就介绍了注解的使用规范。

2024-03-26 17:48:35 304

原创 浅谈HTTP 和 HTTPS (中间人问题)

前言由于之前的文章已经介绍过了HTTP , 这篇文章介绍 HTTPS 相对于 HTTP 做出的改进开门见山:HTTPS 是对 HTTP 的加强版主要是对一些关键信息 进行了加密。

2024-03-13 09:33:15 2051 1

原创 应用层协议--HTTP

这个升级的过程是很快的,新的浏览器诞生之后,并不是立即就占领市场,而是在相当一部分时间里,新浏览器和旧浏览器并存的。如果使用同一个TCP进行连接,传输多个HTTP数据包,此时多个HTTP数据包就会在TCP的接收缓冲区中挤在一起。是一个键值对结构的数据,每个键值对都独占一行,键和值之间通过 :空格来区分。也是按照硬盘文件的方式进行保存的,但是浏览器把操作文件进行了封装,网页。,在广告界面,可以进行抓包,看到这个广告网页时从什么网站跳转过来的。后来,网页的内容开始丰富了,随之浏览器的功能也开始逐渐升级。

2024-03-07 22:46:01 1110

原创 DNS-应用层协议

前言DNS是域名解析系统主要的作用就是使用IP地址来描述设备在网络上的位置。

2024-02-29 18:50:21 440

原创 TCP/IP的五层网络模型

此处使用UDP协议,针对这个数据报进行解析。拿到载荷,去掉报头,把载荷的数据交给上层(应用层)IP协议,再根据网络层数据报文进行解析,去掉报头,拿到载荷。此时做的数据就是进行分割,可以根据自身需要进行分割,比如通过逗号。此时就可以把应用层的数据通过操作系统api,交给传输层。这个解析就会解析出报头 和 报尾,已经中间的载荷。只是把刚才的应用层数据,基础拼接上传输层的报头。把载荷部分,进一步的再交给网络层的协议来处理。通过以太网协议,针对以太网数据报文进行解析。把上述的数据,转成 2 进制的 01数据。

2023-12-29 09:59:24 808 5

原创 JavaEE - 网络编程之回显服务器

回显服务器是网络编程中一个简单的代码示例,回显的意思就是客户端发给服务器什么东西,服务器就返回给客户端什么东西。此处我们使用UDP来进行编写回显服务器。既然此处我们要使用UDP来编写回显服务器,那么我们就有必要去了解UDP是什么?

2023-12-29 09:58:34 1808 2

原创 JavaEE:CAS详解

CAS:全称,字面意思:”比较并交换,一个CAS涉及到以下操作:我们假设内存中的原数据V,旧的预期值A,需要修改的新值B。我们来进行操作:1. 比较 V 和 A 是否相等。(比较)2. 如果比较是相等的,将B 写入 V。(交换)3. 返回操作是否成功。这个就大概介绍了CAS的工作流程。

2023-12-23 22:58:09 548 4

原创 常见的锁策略

在多线程编程中,锁的策略是极其重要的一个概念。因为锁往往是和线程安全相挂钩的,所以在这里了解锁的策略是非常有必要的。

2023-12-23 22:03:03 102 2

原创 计算机专业英语结课论文:操作系统概述(全英)

计算机专业英语。

2023-12-18 14:41:58 352 3

原创 JavaEE:线程池精讲

简单来说,线程池就好比一块鱼塘,鱼塘中的每条鱼就是一个线程。那么为什么要有这个线程池呢?就好比 一个“渣女\渣男”,当他和A在一起的时候,如果想和B在一起,那么就需要先想办法和A分手,再和B搞好关系,最终和B在一起。如果她和A谈的时候,已经找好了B C D,此时就可以直接拿来无缝衔接~~其实线程池也就大概这个作用,里面存放一些线程,需要用的时候直接拿来使用。

2023-12-18 14:38:11 485 1

原创 JaveEE:手动实现定时器精讲

前言。

2023-12-15 20:24:39 232 2

原创 生产者-消费者模型详解

生产者-消费者模式是多线程编程中常见的一种模式,它用于解决生产者和消费者之间的协作问题。生产者负责生成数据,消费者负责处理数据,通过合理的协作,可以实现高效的数据处理。本文将详细介绍 Java 生产者-消费者模式,包括其基本概念、常见用法以及注意事项。

2023-12-13 12:54:38 913 1

原创 JavaEE:单例模式(饿汉模式和懒汉模式)精讲

那么,单例模式又分成“饿汉”和“懒汉”两种、

2023-12-12 10:45:30 654 9

原创 Java中的wait和notify

前言完成这个协调工作, 主要涉及到四个方法wait() / wait(long timeout): 让当前线程进入等待状态.notify() / notifyAll(): 唤醒在当前对象上等待的线程。

2023-12-12 08:53:50 889

原创 JaveEE:volatile 内存可见性问题

运行结果:代码解读:1.这段代码有两个线程分别是 t1 和 t2 , 其中 t1 的作用是循环等待,如果flag == 0 ,就一直循环。t2 是在控制台输入一个整数来改变 flag 的值。2. 执行代码,理想的状况是 t2 线程输入一个不为零的整数之后,flag 的值被改变, t1 线程会执行“ t1 循环结束” 的语句。3. 执行代码,输入一个不为零的整数,发现循环并没有结束。

2023-12-10 17:00:36 61 1

原创 Java中引入synchronized关键字讲解

我们先来看以下代码:在count++操作中,其实还可以拆分为三步,分别是 load ,add ,save, 正常情况之一如下图,如果这三步是按照如下操作执行的,那么最终的值一定时 10w,可是事与愿违。肯定会有情况不是按照如下的步骤执行的。如果是按照如下结构执行,那么就会出问题:我们会发现最后的结果为 1 ,原因就是 t2 线程的 add 加了 t1 线程还没有 save 到内存的值。当我们在add方法前加上 synchronized 关键字之后,运行代码发现运行的结果正确。代码解读:加入synchr

2023-12-10 00:10:28 58 2

原创 Thread 类常见属性

一.举例示范常见属性二.中断一个线程(interrupt)1. 不执行中断2.立即执行中断3. 稍后再执行中断三. 等待一个线程(join)四.线程的状态 (state)ID是线程的唯一标识,不同线程不会重复名称是各种调试工具用到状态表示线程当前所处的一个情况,下面我们会进一步说明优先级高的线程理论上来说更容易被调度到是否存活,即简单的理解,为run方法是否运行结束了是否被中断,重点,下面会详细介绍。

2023-12-06 16:41:16 215 1

原创 Java线程创建的五种方式

一个线程就是一个执行流".每个线程之间都可以按照顺讯执行自己的代码多个线程之间同时执行着多份代码.常用方法如下:1.为什么要有线程?首先,并发编程成为刚需。最根本的原因就是单核CPU的算力遇到了瓶颈,需要多核CPU。而并发编程能够更充分的利用多核CPU的资源。其次,虽然多进程也可以实现并发编程,但是线程比进程更轻量主要体现在以下三个方面:创建线程比创建进程更快销毁线程比销毁进程更快调度线程比调度进程更快。

2023-12-05 12:31:02 751 1

原创 Java匿名内部类

匿名内部类在Java中有着广泛的使用,其设计的初衷就是为了简化代码编写,提高开发效率。

2023-12-03 15:20:48 38 2

原创 JavaEE前话--->进程的知识(操作系统)

前言在学习JavaEE之前,我们是很有必要学习一些进程的知识的。虽然我们经常听到一些高并发、多线程、持久化等高大上的名词,其实都与进程息息相关。相信整理一遍进程的知识,以后进行JavaEE的学习,能够更加高效和方便。再者,找工作的时候,如果面试官问到了进程相关知识,我们就不会手忙脚乱了。

2023-12-01 09:51:40 950 2

原创 IDEA中连接MySql数据库

JDBC 是一种用于执行 SQL 语句的 JavaAPI。可以访问任何类型的表格数据,尤其是存储在关系数据库中的数据。JDBC 在各种平台上与 Java 一起工作,例如 Windows、Mac OS 和各种版本的 UNIX。Java程序猿要想进行数据库开发,就需要在项目中导入对应数据库的驱动包。众所周知,数据库有很多,比如Navicat Premium ,Oracle,MySQL等。那么就有问题了,就拿这三家来说,每一家提供的底层代码都不一样,那么应该如何在Java中连接数据库,并且都能适配这三家呢?

2023-11-28 11:24:31 2637 1

原创 Java中的Map和Set

引言Map和Set是一种专门用来进行搜索的容器或数据结构,其搜索的效率与其具体化实现的子类有关。我们在以前常见的搜索方式有1.直接遍历,这中时间复杂度比较高,需要进行元素的比较,如果元素非常多,那么它的复杂度就很高。2.二分查找 时间复杂度为O(log2N) 但是要求数据必须是有序的而且以上这种方法适用于静态数据,就是一般不会对区间进行插入和删除操作了。但是现实中根据姓名查询考试成绩,或者输入名字显示身份证号码。

2023-11-09 20:12:19 63 3

原创 Java哈希表详解

中,元素关键码与其存储位置之间没有对应的关系,因此在。,搜索的效率取决于搜索过程中元素的比较次数。所以需要一个查找效率比较快的结构如果有一种结构 不需要数据的比较就能够找到搜索的元素,那么这种结构就是我们理想的结构,它的查找的时间复杂度为O(1)。对元素的关键码进行同样的计算,把求得的函数值当做元素的存储位置,在结构中按此位置取元素比较,若关键码相等,则搜索成功。该方式即为哈希散列方法,

2023-11-09 15:26:15 231 2

原创 Java中TOP-K问题

解释:之所以建立大根堆是因为 大根堆的堆顶元素是最小的,如果在数组 k个元素后面遍历的时候遇到比堆顶元素还要小的值,那么就没必要入堆。第三步 遍历剩下的k - 1 个,每次和栈顶元素进行比较,新元素比栈顶元素小不入堆,反之入堆。也就是堆顶元素本来就很小了,来了个比它还要小的,那么我入它干嘛对不对。第二步 遍历数组的前k个元素,将这前k个元素建立成小根堆。首先,求前k个最大的元素 是建立大根堆还是小根堆呢?本篇文章以 求前k个最大的元素 为例。首先给前三个元素建立大根堆 也就是。

2023-11-02 09:48:21 68 1

原创 Java精讲建立小根堆问题

大根堆实际上就是一组数据 可以按照二叉树的逻辑结构进行建立,并且进行相关的算法。

2023-11-02 09:08:26 205 2

原创 StringBuilder和StringBuffer

比如:如果在循环中使用+号对字符串进行拼接,加入循环100次,就要创建100个临时对象,然后进行拼接,这种效率是极其低下的。答案是 第一个会创建2个对象,一个是常量池ab对象 ,一个是在堆上的对象。但是这种方式不推荐使用,因为其效率非常低,中间创建了好多临时对象。既然有问题,那么我们就可以解决他,也就是想办法将效率提高。第二个会创建5个对象。如果要想互相转换,可以采用如下原则。频繁修改字符串的情况考虑使用。StringBuilder变为。

2023-09-25 13:07:34 46 1

原创 Java当中的String类

在Java当中,深入学习String类是很有必要的,首先字符串在日常开发中经常使用,其次在我们的代码编写过程中经常要使用到String类提供的各种方法,比如字符串比较、获取字符串的长度、字符串大小写转换、字符串拼接等。综上所述,学习String字符串类是很有必要的二.String类常用的方法。

2023-09-25 12:43:10 45 1

原创 Cloneable接口和深拷贝

我们的既然可以克隆Person对象,那么也可以克隆money对象,这样就可以实现两个独立的money对象了,此时修改money的值,另一个对象中的值便不会被修改了。修改代码如上,接入了Cloneable,并且重写了其中的clone方法,此时就可以克隆money对象了。所以此时使用peson1来修改money的值,那么person中money的值也会被修改。也就是说在克隆Person对象时,对其中的Money对象也进行了克隆。此时两个对象是独立的,但是他们的m都执行了同一个money对象。

2023-09-18 13:15:42 34

原创 接口的使用实例之重写comparable方法

此时就发生了向上转型。但是如果我们要使用Student类中的属性,就需要对o进行强转,使其变成Student类型,也就是向下转型。我们知道,上面的代码中,最主要的就是排序方法,他对我们的数组进行了排序。2.this.age 是谁调用的这个方法,而o.age是传入的参数,具体实现可以去参考compareTo的源码。我们的Student类使用了comparable接口,重写了comparable中的compareTo方法。1. 它的参数Object是所有类的父类,使用sort方法时,并且按照年龄进行了排序。

2023-09-18 12:50:29 146

原创 Java当中的接口

在我们的现实生活中,接口的例子比比皆是,比如笔记本电脑上的USB接口,电源插座等---电脑的USB口上,可以插:U盘、鼠标、键盘...所有符合USB协议的设备电源插座插孔上,可以插:电脑、电视机、电饭煲...所有符合规范的设备。

2023-09-18 12:12:22 51

原创 Java当中的多态

向上转型:实际就是创建一个子类对象,将其当成父类对象来使用。语法格式:父类类型 对象名= new子类类型()Animal animal = new Cat("小猫咪",2);Animal是我们的父类,cat是我们的子类,此时就发生了向上转型也就是可以通过父类的引用,可以创建一个子类对象~~~animal是父类类型,但可以引用一个子类对象,因为是从小范围向大范围的转换。看图片可能更看理解:(二)使用场景1.直接赋值Animal animal = new Cat("小猫咪",2);

2023-09-13 12:29:23 78 2

原创 Java当中的继承

我们来思考一个问题,Java当中使用类来对现实世界中的实体进行描述,但是现实世界中总有一些事情存在关联。比如:猫和狗都是一个动物那么我们就可以设计出这样的代码我们发现,猫和狗都有一个共同的特点,那就是吃饭和睡觉(人也一样哈哈哈~~)那能否将这些共性抽取呢?。二.继承的概念:是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特 性的基础上进行,这样产生新的类,称。继承呈现了面向对象程序设计的层次结构, 体现了由简单到复杂的认知过程。

2023-09-12 11:02:16 57 1

原创 Java当中的static成员

因为需要使用这些信息来描述 具体的学生。而现在要表示学生上课的教室,这个教室的属性并不需要每个学生对象中都存储一份,而是需要让所 有的学生来共享。二.定义引出定义:

2023-09-11 19:37:36 43

原创 Java当中的构造方法

通过前面的知识,我们知道在Java中定义一个局部变量时,必须要初始化,否则会报错。但是我们在创建对象的时候,即使没有给成员变量赋值,依然可以通过编译。比如int型输出的是0,String类型输出的是null(有没有发现跟数组挺像?我们在初始化对象时,如果不直接赋值,那么需要调用setDate方法才可以给成员变量赋值以此,就出现了一个问题:每次对象创建好后,都需要调用setDate方法来设置日期,比较麻烦。那么,有没有一种方法,在创建对象的时候就可以给此对象赋初值?🈶!那就是构造方法,也叫做构造器。

2023-09-11 13:27:39 42

原创 Java当中的this引用

先来看定义:this引用指向当前对象(调用该成员方法的对象),在成员方法中所有成员变量的操作,都是通过该引用去访问。总结:this引用的是调用成员方法的对象。比如d1调用了set方法,那么在传参的时候,d1的地址也被以一种隐蔽的方式传到了set方法中(下面讲解),那么set就知道是谁调用的自己了。三.this引用的特性1.那个对象调用,就是那个对象的引用类型。2.this只能在成员方法中使用3.在成员方法中,this只能引用当前对象,不能引用其他对象4.

2023-09-11 13:00:59 94 1

原创 Java中类和对象

我的理解是这样的: 我们日常生活中的每个东西都可以看成是一个对象,比如手机、洗衣机等,而这些东西又都有自己的属性。类中包含的内容称为类的成员。属性主要是用来描述类的,称之为类的成员属性或者类成员变量。比如手机有:硬件配置信息、出厂日期、内存、品牌。洗衣机有: 出厂日期、品牌 等等等~~~,描述完成后计算机就可以识别了。具有哪些功能,称为类的成员方法。类名注意采用大驼峰定义。一.什么是类和对象?

2023-09-08 00:40:48 50 1

空空如也

空空如也

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

TA关注的人

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