自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 资源 (1)
  • 收藏
  • 关注

原创 git合并分支

当使用Git合并分支时,通常有两种主要的合并方法:合并(merge)和合并重播(rebase)。这两种方法在合并分支时有不同的特点和应用场景。提示:以下是本篇文章正文内容,下面案例可供参考注意:在实际开发中,可能会出现冲突,特别是在多人协作时。如果在合并分支时出现冲突,Git会提示你手动解决冲突,并在解决后继续合并过程。确保在合并分支之前,最好先拉取最新的代码,并在合并之前运行测试,以确保代码的质量和稳定性。这样有助于避免不必要的问题和错误进入主分支。

2023-08-07 13:58:57 7864

原创 java中stream流详细使用操作

在Java中,Stream是一种用于对集合数据进行操作的API。它提供了一种函数式编程的方式来处理集合,使得代码更加简洁、优雅且易于并行化处理。Stream API允许你通过一系列的中间操作和终端操作来对集合数据进行处理。

2023-08-03 10:18:44 1853

原创 java中使用mdc以及与traceid的联系

(Mapped Diagnostic Context)和TraceID都是用于在分布式系统中跟踪和诊断日志的重要概念,它们之间有一定的关系。MDC是一个在Java应用程序中广泛使用的机制,它允许你在一个线程中设置一些上下文信息,并在整个线程的执行过程中保持不变。MDC通常用于在日志中传递诊断信息,如请求ID、用户ID、IP地址等,在多线程环境下,确保日志输出的信息与实际业务操作相关联。MDC信息是线程局部的,不同的线程之间不会互相影响,因此适用于多线程并发环境。

2023-08-03 09:56:07 2735

原创 在springboot中使用xxl-job

xxl-job 是一个分布式任务调度框架,它可以帮助开发者快速实现分布式定时任务。xxl-job提供了Web管理界面,可以方便地配置和监控定时任务的执行情况。

2023-08-02 18:43:54 402

原创 动态代理--java

NewProxyInstance中需要传入三个参数,分别是类加载器,所有的接口,以及拦截器,由于我们是实现的InvocationHandler,所以这个类的本身就相当于一个拦截器,直接传入this本身即可。和jdk代理类似,唯一区别是由于我们的cglib是通过生成目标类的子类来实现的,所以我们在转换时,要注意是转换成我们的代理类,而不是代理类的接口。动态代理就是在程序运行期间,创建目标对象的代理对象,并对目标对象中的方法进行功能性的增强的一种技术,有两种实现方式。3,定义构造方法,入参为需要代理的对象。

2023-01-31 01:12:19 343 1

原创 线程面试题

线程池将线程进行解耦,线程是线程,任务是任务,同一个线程可以从阻塞队列中不断的获取新任务来执行,其核心原理在于线程池对Thread进行了封装,并不是每次执行任务都调用start方法来创建新线程,而是让每个线程去执行一个循环任务,在这个循环任务中,不断的检索是否有新任务需要被执行,如果有则执行,即调用任务中的run方法。它并不能只单独服务于某个线程。如果线程池中的线程数大于corePoolSize,且线程等待时间超过了keepAliveTime,线程将被终止,这样,线程池可以动态的调整线程池中的线程数。

2022-08-22 17:20:45 145

原创 JVM的详解

标记成功后就会采用复制算法,把存活的对象复制到幸存区To中,复制到幸存区TO之后,会让幸存对象的寿命加1,剩余在伊甸园的对象就可以进行全部的回收,然后再让幸存区From和幸存区To进行交换,至此第一次垃圾回收就完成了,此时伊甸园的空间又充足了,就可以继续向伊甸园分配对象。

2022-08-21 10:16:27 260

原创 git的远程仓库的搭建

一,原理正在上传…重新上传取消一,创建一个gitee账户二,新建一个仓库创建完成之后打开自己的一个工作区间:

2022-05-28 12:27:26 1590

原创 Git的认识和基本操作

一,版本管理简介在我们项目的开发过程中,项目每开发到一个节点我们就应该对其进行备份,这个备份就是一个项目的版本,当我们继续开发到一个新节点对其再进行备份是,就又是一个新版本。 --多个版本的集合就是项目的版本库。在项目开发过程中,我们可以收到进行管理,但是存在一些问题。1,需要手动维护版本的更新日志,记录每个版本的变化。2,需要手动查找历史版本,当历史版本比较多的时候,查找工作繁琐。3,当我们需要回退到某个版本时,只能够手动的通过IDE工具手动打开。...

2022-05-27 23:54:32 93

原创 适配器模式

一,模式定义:将一个接口转换成客户希望的另一个接口,适配器模式使接口不兼容的那些类可以一起工作,其别名为包装器。适配器模式既可以作为类结构型模式,也可以作为对象结构型模式二,适配器模式的角色包括:(1)Target(目标抽象类)目标抽象类定义客户要用的特定领域的接口,可以是个抽象类或接口,也可以是具体类;在类适配器中,由于Java不允许多继承,它只能是接口。(2)Adapter(适配器类)适配器类可以调用另一个接口,作为一个转换器,对Adapter和Target进行适配。适配器Ada

2022-05-11 18:44:35 121

原创 原型模式。

类型:创建型模式定义:用原型实例指定创建对象的种类,并且通过复制这些原型创建新的对象。原型模式允许一个对象再创建另外一个可定制的对象,无须知道任何创建细节。类图:Prototype(抽象原型类): 抽象原型类是定义具有克隆自己的方法的接口,是所有具体原型类的公共父类,可以是抽象类,也可以是接口。ConcretePrototype(具体原型类):具体原型类实现具体的克隆方法,在克隆方法中返回自己的一个克隆对象。Client(客户类):客户类让一个原型克隆自身,从而创建一个新的对象,在客

2022-05-11 00:32:52 146

原创 单例模式。

单例模式,饿汉式,懒汉式

2022-05-09 00:45:42 92

原创 自学reids第二天--持久化策略

Redis中的持久化策略分为两种(RDB,AOF)RDB 原理,AOF原理

2022-04-06 20:49:23 427

原创 自学reids第二天

一,reids中有5种数据类型 分别是String,hash表,list,set,sorted set。Key中的常用方法key * 返回所有键exists 判断某个键是否存在expire key time 给某个键设置过期时间 时间单位是秒ttl key 查看键的过期时间 如果永久保存则返回 -1 已过期返回 -2type key 返回键的类型persist key // 移除key的过期时间 永久保存keydel key 删除指定的keyString中的常用方法

2022-04-06 20:26:32 117

原创 基于MVC的Html视频弹幕

MVC模式下的DanmuPlayer.js html视频弹幕

2022-04-06 00:01:24 349

原创 自学Redis第一天

Redis边路缓存,什么是Redis

2022-04-05 23:16:44 426

原创 java处理Base64存到服务器中(html控制摄像头拍照)

java解密前端发来的base64数据上传到服务器(调用摄像头,二维码上传)

2022-04-04 19:33:41 1323

原创 MVC模式

MVC模式的流程

2022-04-03 23:30:24 262

原创 Oracle学习(2.0)

一,序列的创建create sequence <序列名> start with <起始值> increment by <步长>maxvalue n | nomaxvalue 序列的最大值minvalue n | nominvalue 序列的最小值nextval --生成下一个序列值currval --获取当前的序列值...

2021-10-24 23:30:50 1544

原创 Oracle小结一

一首先我们要知道数据的完整性约束。1实体完整性实体完整性约束即指主键,主键的要求是唯一且非空2域完整性即我们用户自己定义的一些约束,如检查约束(check)默认约束(default)非空约束(null)3引用完整性即外键约束,在主外键应用中被应用的表为主表,应用的表为从表,但两个表之间存在主外键引用时需要注意如下问题:1,当主表中没有对应的记录是,不能将记录添加到子表中2,不能更改主表中的值而导致子表中的记录孤立3,子表存在与主表对应的记录,不能从主表中删除该行4,删

2021-10-19 11:02:53 50

原创 API考试错题集

1 关于null和“”说法正确的是( ) A. null是常量 B. “”是字符串对象 C. null可以调用方法 D. “”可以调用方法 看这道题,就是要我们明白null和“”的区别,null在java中是一个关键字,他可以赋给任何的object对象,他的指向是空的...

2021-10-14 00:05:31 145

原创 建造者模式

建造者模式的定义:它是将一个复杂的对象的构建与它的表示进行分离,使得同样的构建过程可以创建不同的表示。建造者模式是一步一步创建一个复杂的对象,它允许用户只通过指定复杂对象的类型和内容就可以构建它们,用户不必知道内部的具体构建细节。它属于创建型模式。模式结构:这里我们实例化一个人类来举例。1 product这是我们的产品角色,即我们的复杂对象,我们建造者模式就是为了将其简单化。它一般都包含了多个组成元素。(我们先定义好人所具备的组件)2 Builder我们的抽...

2021-10-12 00:20:34 75

原创 java中的IO流

首先我们得知道什么是IO流,I表示输入,O表示输出,在java中输入流就是从某地方进行数据读取,然后输出到某个地方。其实就可以理解为I就是读(reader)O就是写(write).一:File类File file = new File("")//""号里面填写我们想访问的文件File类中比较常见的一些方法:getName()//获取文件名字createNewFile()//创建一个文件exists()判断此文件是否存在mkdir()创建一个文件夹mkdirs()创建一个多级文件.

2021-10-11 00:50:30 65

原创 java中的方法重载与重写

一: 方法的重载:是指方法名相同,但参数列表不同(参数个数不同,参数类型不同,参数顺序不同,这个顺序不同要注意,是得两个参数类型不同时,顺序不同才有意义),构造方法是可以构成方法重载的,且父类和子类之间是可以构成方法重载的。还有重载和返回类型是无关的,如图:二:方法的重写方法的重写是java多态的表现,大多是发生在父类与子类之间,即子类重写父类中的方法。重写要求方法名相同,访问权限不能低于父类,说到访问权限,那我们就来稍加复习一下访问权限的大小,public(所有类都可以访问得到) >..

2021-10-09 21:03:58 1207

原创 java中静态块 构造块 构造 普通方法块

一:静态块静态块是在类第一次实例化的时候执行一次,且仅仅是执行一次。这里我们可以考虑将一个程序中只需要创建一次的对象放在这里,如jdbc中的连接对象。(表示形式:static { //代码})如图:二:构造块构造块是每次类被实例化的时候都会被调用一次,它的作用是将所有对象进行统一初始化。表现形式:{ //代码}如图:三:构造方法它是类每被实例化一次就执行一次。构造方法是紧随构造块之后执行的,作用是对 对应的对象初始化,构造方法与类名相同,不含返回值,且可以重载,没写的情况下.

2021-10-09 20:29:06 626

原创 java中的集合Collection结构分析

首先Collection继承自Iterable,Iterable中有个迭代器对象,所有的集合元素都是可迭代的,可遍历的。Collection和Iterator是关联关系,Iterator中主要有hasnext(),next(),remove()方法,hasnext是判断集合中还有没有下一个节点,next则是返回下一个节点值,remove则是移除当前节点的值。List,Set都继承自Collection,SortedSet继承自Set,还有就是Collection,List,Set,SortedSet都是接口

2021-10-09 00:21:18 205

原创 今日错题(10.6)

以下程序会输出什么:public class Passer{ static final int X=5; public static void main(String [] args){ new Passer().go(X); System.out.print(X); } void go(int X){ System.out.print(X++)...

2021-10-06 23:52:33 182

原创 错题分析two

public class Example{ String str = new String("good"); char[ ] ch = { 'a' , 'b' , 'c' }; public static void main(String args[]){ Example ex = new Example(); ex.change(ex.str,ex.ch); System.out.print(ex.str + " and ");...

2021-10-05 23:37:57 85

原创 你真的了解java中方法执行时的内存变化嘛?

首先我们要知道java中的jvm主要有三块内存空间:栈,堆,方法区(当然除了这三个还有别的,这里我们只讨论这三个。)首先我们来说说方法区:类加载器会将硬盘上的.class字节码文件装载到jvm的时候,会将字节码文件存放到方法区当中,就是说方法区存放的是代码片段。(因为类需要加载,所以方法区当中最先有数据)栈:当我们的方法被调用的时候,该方法需要的内存空间就会在栈中分配(没有调用的时候就还是老实的呆在方法区当中)。栈这种数据结构的特点是先进的后出,如图:知道这些之后我们可以来看一道程序..

2021-10-04 23:51:49 282

原创 今天没了解复习或学习新知识,刷了点题,记录一下错题

以下程序的输出结果为class Base{ public Base(String s){ System.out.print("B"); }}public class Derived extends Base{ public Derived (String s) { System.out.print("D"); }public static void main(String[] args){ new Derived("C"); }...

2021-10-03 23:50:57 166

原创 Java 中的反射原理

一:首先java的反射机制是指在运行时获取一个类的变量和方法信息。然后通过获取到的信息来创建对象,调用方法的一种机制,由于这种动态性,可以极大的增强程序的灵活性,程序不用在编译期就完成确定,在运行仍然可以扩展。二:我们如果想要通过反射去使用一个类的话,我们首先就先要获取该类的字节码文件对象,也就是类型为Class类型的对象。jdk提供了我们三种方式获取Class类型的对象。1使用类的class属性来获取对应的class对象如图,我们先创建一个学生类这里我们可以看到返回的是true,代表.

2021-10-02 23:48:39 713

原创 java工厂模式

首先我们要了解软件设计模式的六大原则:一:开闭原则开闭原则的大概意思就是对待修改代码为闭,对待增加实体类为开。二:单一职责原则:即一个类只负责一种责任(功能)。三:里氏替换原则:即一个子类能够替换父类且能够出现在父类出现过的地方。四:依赖倒置原则:高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。五:接口隔离原则:类不应该依赖于他们不需要的接口六:迪米特法则:一个软件实体应该尽可能少的与其他软件实体发生相互作用,这样子,当

2021-10-01 23:32:32 74

原创 Java 中的StringBuffer类

一:StringBuffer有四个构造方法:StringBuffer sbf = new StringBuffer();//无参构造,会设置最开始的容量为16个字节 StringBuffer sbf2 = new StringBuffer("hhq");//String类型,会设置最开始的容量为16+输入的 String值的容量 StringBuffer sbf3 = new StringBuffer(2000);//int类型,设置最开始的容量为这个i...

2021-09-30 12:35:20 2096

原创 Java String类的一些常用方法

String str = "hhq123A"; String str1 = "aH"; String str2 = "A"; char[] s = str.toCharArray();//将指定字符串转换成字符数组 System.out.println(Arrays.toString(s)); System.out.println(str.charAt(2));//返回指定索引的值 System...

2021-09-29 23:16:32 101

原创 java中byte(129)= -127?分析

我们都知道byte的取值范围是-128到127。但是我如果定义一个变量,值为129,强转成byte的情况下,会输出什么?如图所示,是-127?!其实在我们java中负数是以补码的形式表示的。那么到这里我们就先复习一下子原码 反码 补码。正数的原码 反码 补码都是一样的。负数的反码是原码除第一位符号位之外,其余位取反,即1变0,0变1。补码就是反码+1。我们直接看上面这题吧。由于byte只有1个字节。8位。所以129的原码就是1000 0001。它的第一位是1即负数,所以我们应该用补码的形式.

2021-09-28 23:23:16 2300 2

原创 java中的八种原始数据类型

java中的的原始数据类型可分为4大类:整数型(byte,short,int,long),浮点型(float,double)布尔型(boolean)字符型(char)。首先我们先要知道它们的各自取值范围(大概记住byte short int char就行),如图:我们也可以自己推出来byte类型的范围。因为1byte表示1字节即8个比特位。即01111111,第一位为符号位。通过二进制算法可以知道2^7-1即127。其他类型道理一样。1,8种基本数据类型当中除了布尔类型之外剩下的..

2021-09-28 00:02:08 4095

原创 java api中的异常处理

首先我们要知道java中异常分为编译时异常和运行时异常。这里的编译时异常可以理解为错误,即一些基本的语法错误。无法通过编译的,这里我们一般不做深究。我们的主角还是--运行时异常。首先我们要知道最基本的就是如何来处理异常。一异常的捕获。try catch finally便是我们处理异常的方法。我们将可能出现异常的代码放在try块。将出现异常后处理的代码放在catch块。finally则是无论是否有异常产生,都会执行的。我们现在可以来讨论一下它们的执行顺序。当try块中的代码块有异常时会即刻停.

2021-09-26 22:41:09 548

空空如也

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

TA关注的人

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