自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java分析线程信息-入门版

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录jps+stack实例分析jps+stackjps:jdk提供的一个查看当前java进程命令参数含义jps端口号+进程名jps -l端口号+应用程序main class的完整package名 or 应用程序的jar文件完整路径名jps -vjvm参数jstack:查看jvm栈信息jstack -l pidtid指Java Thread id。nid指native线程的id。p.

2022-12-14 20:27:48 121 1

原创 Java基础(16)——Java注解

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录元注解 @Target @Retention @Documented @Inherited 自定义注解元注解作用:负责注解其他注解,Java定义了4个标准的元注解类型 ,用来对其他注解作以说明。如下 @Target指定当前注解的作用域1、用法:// ElementType.METHOD 指定了当前注解是作用在 方法 上的@Target(ElementType.METHOD)如图,作用在方法上的自定义注解,放在类上

2022-01-13 17:18:49 165

原创 黑科技——软件安装文档

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录安装使用安装1、MongoDB官网2、3、自定义安装目录4、取消可视化安装步骤5、创建db目录6、启动MongoDBmongod -dbpath D:\MongoDB\data\db7、登录mongo使用1、创建新用户...

2021-10-21 17:28:38 86

原创 设计模式(10)——原型模式

文章目录前言原型模式前言本系列博客仅是本人在复习中所记录原型模式定义:是一种对象型创建模式,通过复制原型实例来创建新的对象。模式对象:抽象原型类:定义克隆自己的方法的接口具体原型类:实现具体的克隆业务,并返回一个新的克隆对象客户类:定义一个原型对象,通过调用该对象的克隆方法来得到更多新的对象。优点:通过已有实例对象,提高新实例对象的创建过程的效率。动态的增加或减少具体原型类缺点:克隆方法需要对类的功能进行通盘考虑,这对于全新的类不是很难,但对于已有的类不一定容易。特别当一

2021-10-20 13:58:15 74

原创 设计模式(8)——装饰模式

文章目录前言装饰模式前言本系列博客仅是本人复习时所记录装饰模式定义:动态的给一个对象增加一些额外的职责。对于给一个类增加功能来说,装饰模式比继承这个类添加方法更加灵活。场景:一部手机可以给它贴膜,也可以套手机壳,也可以又贴膜又套手机壳。这些装饰并不影响手机本身的使用,不要这些装饰得话手机也能用,而是多了一些更加舒适的体验。模式角色:抽象构件既然要装饰,那么装饰以后的东西必须存在装饰前的东西。所以抽象构件作为具体构件和抽象装饰类的父类,声明了具体构件中的业务方法,使得客户端以一致的方式处理

2021-10-20 13:56:58 77

原创 设计模式(7)——适配器模式

文章目录适配器模式适配器模式定义:将一个接口转换成客户希望的另一个接口,适配器模式使得接口不兼容的一些类可以一起工作。主要解决在软件系统中,常常要将一些"现存的对象"放到新的环境中,而新环境要求的接口是现对象不能满足的。角色:适配器模式具有如下角色:目标抽象类:定义客户需要使用的特定领域的接口适配器类:对目标抽象类和适配者类进行适配适配者类:定义了已经存在的接口,包含了实际的业务逻辑方法。客户类:针对目标抽象接口进行编程说明:给定一个场景:现在Target目标类中定义方法名字为me

2021-10-20 13:56:15 146

原创 设计模式(5)——代理模式

文章目录代理模式静态代理动态代理JDK实例讲解CGLib实例讲解代理模式定义:是一种结构型的代理模式。给某一个对象提供一个代理对象,由代理对象控制对原对象的引用。用户可通过远程代理对象来实现对远程原对象的操作。模式角色:抽象主题角色:声明了真实主题和代理主题的共同接口,保证了任何使用真实主题的地方都可以使用代理主题。客户端针对抽象主题进行编程。代理主题角色:内部包含着真实主题对象作为属性成员,用于调用真实主题对象中的操作。不仅如此,还会在此基础上执行一些代理主题独有的操作。真实主题角色:实现

2021-10-20 13:55:22 96

原创 设计模式(4)——策略模式

文章目录策略模式策略模式定义:策略模式对某一个问题,有多种不同的算法,并将每个算法独立的封装起来。它们之间可以相互替换,此模式使得算法的变换不会影响到最终得到的结果。优点:避免了if-else的使用,(如果不用策略模式我们可能会使用多重条件语句,不利于维护)遵循开闭原则,扩展性好,实现代码的解耦合。扩展新的算法时,只需要增加类实现接口,不需要修改源核心业务代码。遵循单一职责,每个算法子类只完成一项工作。缺点:所有的策略类都需要对外暴露,客户端必须知道所有的策略类,并自行决定使用哪一个策

2021-10-20 13:54:26 101

原创 设计模式(3)——模板方法模式

文章目录模板方法模式模板方法模式定义:指在父类中定义了一个主要算法的骨架流程,并且允许子类可以不改变算法的结构为一个或者多个个性化步骤提供实现,算法的流程执行顺序是由父类掌控的,子类只能配合。实际上是封装了一个固定流程,该流程由几个步骤组成,具体步骤可以由子类进行不同实现,从而让固定的流程产生不同的结果。优点:封装不变,扩展可变:父类封装了具体流程以及实现部分不变行为,其它可变行为交由子类进行具体实现;流程由父类控制,子类进行实现:框架流程由父类限定,子类无法更改;子类可以针对流程某些步骤进行具

2021-10-20 13:53:40 97

原创 设计模式(2)——单例模式

文章目录单例模式单例模式简单实例饿汉式单例类懒汉式单例类双重检查锁单例模式静态内部类单例模式枚举类单例模式单例模式定义:单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类称为单例类,它提供全局都可以该实例的访问方法。注意:单例类只能有一个实例。单例类必须自己创建自己的唯一实例。单例类必须给所有其他对象提供这一实例。优点:在内存里只有一个实例,减少了内存的开销,尤其是频繁的创建和销毁实例避免对资源的多重占用缺点:无抽象层,扩展难单例类职责过重,

2021-10-20 13:52:44 238

原创 设计模式(1)——工厂模式

文章目录概述简单工厂模式工厂方法模式抽象工厂模式概述尝试理解以下概念,有助于学习工厂模式。产品族:一个或多个具有相同特征关联产品的集合。简单工厂 一个总工厂,可以生产任意产品族的产品。工厂方法 :将总工厂进行细分,不同类型工厂,生产其对应产品族的一个类型产品。抽象工厂:不同类型的工厂,生产其对应产品族的多个类型产品。简单工厂模式注意:简单工厂模式不属于GoF设计模式定义:工厂根据传入的参数即可返回客户所需的对象,客户而不需要知道具体类的类名字。客户端只需传入相应的参数,就可以得到相应的对

2021-10-20 13:51:32 88

原创 知识点(6)——开发SDK、API

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言前言API:Application Programming Interface,应用程序接口。SDK:Software Development Kit ,软件开发工具包。SDK是对完整功能的实现的封装,对外部提供了多个API,用户可以调用API来使用这些功能。你可以把SDK想象成一个虚拟的程序包,在这个程序包中有一份做好的软件功能,这份程序包几乎是全封闭的,只有一个小小接口可以联通外界,这个接口就是API。...

2021-10-20 13:01:52 138

原创 Java并发(10)——Semaphore

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录作用使用设计思想源码分析总结作用对访问某个资源的线程数量进行控制,若访问线程数量大于规定数量,后面来的全部阻塞。例如:厕所一共只有10个坑位。。那么只能同时10个人用着,后面来的人都得等着(阻塞),如果走了2个人,那么又可以进去2个人使用Semaphore 维护最大访问线程数量为2,一个创建5个线程。只有2个能加锁执行,剩余3个等待。直到加锁线程释放锁 。public class Main{ public sta

2021-09-12 08:40:24 48

原创 Java并发(9)——CountDownLatch

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录使用设计思路源码分析使用作用:使线程A等待其他线程各自执行完毕后再执行,类似 Thread.join()。用法:线程A 调用CountDownLatch.await()开始等待,其他线程执行完毕后 依次调用 CountDownLatch.countDwon(),表示已经执行完毕。声明CountDownLatch需要指定当前线程等待线程的个数 final CountDownLatch countDownLatch

2021-09-11 22:51:11 66

原创 Java并发(8)——ReentrantLock

ReentrantLock 1、可重入锁、排他锁、公平锁或非公平锁 内部实现了 AQS的独占方式。(1)如下可以看出ReentrantLock是排他锁,在线程1未释放锁之前,线程2是不能持有锁的。public static void main(String[] args) { final ReentrantLock lock = new ReentrantLock(); Thread t1 = new Thread("t1") { publ

2021-09-09 19:14:19 96

原创 TCP连接相关知识

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言前言TCP三次握手的过程中,操作系统内核会维护两个队列半连接队列,syn队列全连接队列,accept队列服务端收到客户端发起的 SYN 请求后,内核会把该连接存储到半连接队列,并向客户端响应 SYN+ACK接着客户端会返回 ACK,服务端收到第三次握手的 ACK 后,内核会把连接从半连接队列移除,然后创建新的完全的连接,并将其添加到 accept 队列,等待进程调用 accept 函数时把连接取出来。a

2021-08-21 13:53:20 47

原创 Java集合(2)——Map

文章目录HashMapTreeMapHashMapTreeMap

2021-01-30 15:44:25 41

原创 数据结构——从0到1构建平衡二叉搜索树

文章目录前言平衡二叉搜索树前言此博客仅是本人复习时所记录平衡二叉搜索树平衡二叉搜索树(Balanced binary search tree),顾名思义,兼顾了 平衡二叉树 的性质与 二叉搜索树 的性质。这里简单提及一下两种树形结构的性质。二叉搜索树它或者是一棵空树,或者是具有下列性质的二叉树:若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值;若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值;它的左、右子树也分别为二叉搜索树。作为一种经典的数据结构,它既有

2020-11-21 14:03:28 499

空空如也

空空如也

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

TA关注的人

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