自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 RocketMQ原理浅析

rocketMQ架构、基本概念、原理及简单应用

2022-12-13 17:48:46 516 1

原创 Maven父子工程包管理问题记录

问题描述:使用maven创建父子项目时,子项目中依赖父项目导入的包(由父工程统一管理子工程中版本),子项目中提示依赖包后有unknown标识或jar包missing。显示信息:工程目录:解决方式:(1)查看maven仓库发现有unknown文件夹,以为是包没有下载下来,删除maven仓库中的包重新导入,问题并未解决。(2)仔细回顾了父子工程的创建过程,发现问题是父工程没有统一管理子工程中的版本。也就是在父工程的<dependencies></dependenc.

2022-03-30 21:50:52 413

原创 JDK动态代理(通俗白话)

首先要明确一点:代理的对象是一件事情!如何理解这句话?举个栗子:我是某一个地区白酒经营的总代理。说白了就是我是一个卖酒的,我代理的是一件事,那就是帮别人卖酒。我从白酒生产厂家那里获得白酒,并把它卖出去,我从中赚取差价。(在生活中只要不是生产商去直接销售,中间商都简称代理,实际上代理指的是某一件具体的事) 上面说了比较多的废话主要想说明代理是什么?那么代理的关系又是什么呢?其实代理就可以简单理解为是中间商。它不需要亲自去生产制造,只要专心做某一件事就好了。还是白酒,不需要去酿酒,只需要把酒卖...

2021-07-26 21:12:21 1148

原创 双亲委派机制

双亲委派机制是存在于类加载时的一种机制,为了避免开发者自己创建的包与java的核心类库包同名而造成的类加载时的错误。比如常用的String类在java.lang包下。如果一个开发者自己命名一个包名也叫java.lang包,而这个lang包下也有一个类叫做String类。那这个时候需要加载String类的时候是加载核心类库中的String还是加载自定义的String呢?双亲委派机制就是解决此类问题的。即使开发者自己定义了同样的包名和类名,JVM也是先加载核心类库中的文件而不是自定义的文件。双亲委派机制的工

2021-06-28 19:34:50 264

原创 重写HashCode()和equals()方法的必要性

HashMap使用Key对象的hashcode()和equals()方法去决定key-value对的索引。无论是往HashMap中存放键值对还是从HashMap中取出键值对都需要用到hashcode()和equals()方法。如果这些方法没有被整

2021-06-26 14:52:57 81

转载 Spring的IOC原理[通俗版]

学完spring框架回顾整理的时候总感觉spring的IoC机制概念不是那么清楚,查资料的时候发现一位大佬写的文章,看完感觉清晰了许多,在此保留分享。1. IoC理论的背景我们都知道,在采用面向对象方法设计的软件系统中,它的底层实现都是由N个对象组成的,所有的对象通过彼此的合作,最终实现系统的业务逻辑。图1:软件系统中耦合的对象如果我们打开机械式手表的后盖,就会看到与上面类似的情形,各个齿轮分别带动时针、分针和秒针顺时针旋转,从而在表盘上产生正确的时间。图1中描述的就是这样的一个齿轮组,它拥有

2021-06-25 16:25:41 315

原创 Java创建线程池

java创建线程池主要分为两大类:1、使用Executors工厂类创建线程池2、自定义创建线程池使用Executors工厂类创建线程池的三种方式第一种方式:底层是用一个长度为Integer.MAX_VALUE队列来存储还未执行的任务量,只有一个线程在工作,这个线程完成一个任务之后继续去做下一个任务,所以执行时间较长。当任务量很大时,可能会产生OOM(内存溢出)ExecutorService executorService = Executors.newSingleThread

2021-06-25 16:20:20 673

原创 关于Java中的变量

java中的变量名叫法较多,以致于笔者总是搞混淆。所以决定将这些变量和叫法都总结如下:变量总分为两大类:局部变量和全局变量下面用图来表示:java中就没有全局变量的说法(如果非要说全局变量的话那就是成员变量),成员变量分为类变量和实例变量。成员变量:类变量(静态变量):定义在类中,有static修饰,如果不赋值的话有默认值可以使用。实例变量:定义在类中,没有static修饰,如果不赋值的话有默认值可以使用。局部变量:形参(形式参数):作用域在方法中有效,没有默认值,在方法被调

2021-06-24 11:16:41 95

原创 Java线程的生命周期及常用方法

线程的生命周期:线程有五大状态:新建、就绪、运行、阻塞、消亡。新建:采用new完成了对象的创建就绪:执行start方法之后运行:占用CPU的时间阻塞:执行了wait()、sleep()和等待某个对象的锁,等待输入的场合终止:退出run()方法线程的生命周期执行过程:线程的调度与控制:分时调度模型:所有线程轮流使用 CPU 的使用权,平均分配每个线程占用 CPU 的时间片抢占式调度模型:优先级高的线程获取 CPU 的时间片相对多一些,如果线程的优先级相同,那么.

2021-06-23 15:10:52 322

原创 Idea工具中maven的配置(不需要下载模板速度较快)

Idea创建maven项目在File------Settings------Bulid,Execution,Deployment---Build Tools----Maven中设置Runner中设置选择好JRE的版本后在VM Opions中设置:-DarchetypeCatalog=internal创建maven项目的时候maven会默认联网去下载模板文件,这个设置是让maven使用内部的文件不去下载使得创建maven项目的速度更快一些。在File----Other S.

2021-05-06 10:38:17 619

原创 java中的构造方法

构造方法:1、构造方法又称为构造函数/构造器/Constructor2、构造方法的语法结构:【修饰符列表】构造方法名(形参列表){构造方法体}3、对于构造方法来说,“返回值类型”不需要指定,并且也不能写void,只要写上void就变成了普通方法。4、对于构造方法来说,构造方法的方法名必须要和类名保持一致。5、构造方法的作用:构造方法的存在意义是,通过构造方法的调用可以创建对象6、构造方法的调用:普通方法调用:方法修饰符列表中有static时:类名.方法名方

2021-04-28 18:40:27 165

原创 TCP连接和释放过程(三次握手和四次挥手)

建立连接(三次握手):基于C/S模式客户机A主动与服务器B建立连接:第一步:客户机A先发送一个请求连接的数据包给服务器B,其中包含同步位SYN=1(只有在请求建立连接的时候才置为1,数据传输的时候置0),发送数据的序列号seq=x(可能不是从1开始,cpu有自己的序列号产生算法),这时候确认标志位ACK置为0,确认位置为0表示确认号ack无效。第二步:服务器B接收到客户机A发送的数据包后回复一个数据包,其中包含确认收到客户机A发送消息的回复和请求与客户端A建立连接。其中包含确认标志位ACK=

2021-04-28 18:33:27 908

原创 关于Idea中Debug出现Disconnected from the target VM, address: ‘127.0.0.1:xxxx‘, transport: ‘socket‘

关于Idea中Bebug出现Disconnected from the target VM, address: ‘127.0.0.1:xxxx‘, transport: ‘socket‘idea用的一直是正常的,然后今天debug突然出现这个问题,寻找了网上的解决办法都没有用(试过console)。由于是新手,只是在学习javaWeb中Servlet相关的知识还没有使用框架,服务器使用的是Tomcat。按照网上的方法没有解决我就开始读异常信息,发现一直说是1099端口出现的异常,显示1099端口

2021-03-29 11:28:36 3181

空空如也

空空如也

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

TA关注的人

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