自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 多线程之交替输出abc

【代码】多线程之交替输出abc。

2024-05-12 22:33:42 200

原创 中介者模式和访问者模式

封装一些作用于某种数据结构中的各元素的操作,它可以在不改变这个数据结构的前提下定义作用于这些元素的新的操作。

2024-05-08 00:15:00 1493

原创 状态模式和迭代器模式

提供一个对象来顺序访问聚合对象中的一系列数据,而不暴露聚合对象的内部表示。

2024-05-08 00:15:00 1251

原创 责任链模式和观察者模式

又被称为发布-订阅(Publish/Subscribe)模式,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态变化时,会通知所有的观察者对象,使他们能够自动更新自己。

2024-05-07 10:31:20 1059

原创 策略模式和命令模式

日常生活中,我们出去吃饭都会遇到下面的场景。将一个请求封装为一个对象,使发出请求的责任和执行请求的责任分割开。这样两者之间通过命令对象进行沟通,这样方便将命令对象进行存储、传递、调用、增加与管理。

2024-05-07 00:15:00 1317

原创 模板方法模式

定义一个操作中的算法骨架,而将算法的一些步骤延迟到子类中,使得子类可以不改变该算法结构的情况下重定义该算法的某些特定步骤。

2024-05-06 00:30:00 914

原创 享元设计模式

运用共享技术来有效地支持大量细粒度对象的复用。它通过共享已经存在的对象来大幅度减少需要创建的对象数量、避免大量相似对象的开销,从而提高系统资源的利用率。

2024-05-06 00:15:00 1134

原创 组合设计模式

又名部分整体模式,是用于把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合对象,用来表示部分以及整体层次。这种类型的设计模式属于结构型模式,它创建了对象组的树形结构。

2024-05-05 01:00:00 1607

原创 装饰者模式

指在不改变现有对象结构的情况下,动态地给该对象增加一些职责(即增加其额外功能)的模式。

2024-05-05 00:15:00 692

原创 桥接模式和外观模式

有些人可能炒过股票,但其实大部分人都不太懂,这种没有足够了解证券知识的情况下做股票是很容易亏钱的,刚开始炒股肯定都会想,如果有个懂行的帮帮手就好,其实基金就是个好帮手,支付宝里就有许多的基金,它将投资者分散的资金集中起来,交由专业的经理人进行管理,投资于股票、债券、外汇等领域,而基金投资的收益归持有者所有,管理机构收取一定比例的托管管理费用。又名门面模式,是一种通过为多个复杂的子系统提供一个一致的接口,而使这些子系统更加容易被访问的模式。

2024-05-05 00:15:00 823

原创 代理设计模式

由于某些原因需要给某对象提供一个代理以控制对该对象的访问。这时,访问对象不适合或者不能直接引用目标对象,代理对象作为访问对象和目标对象之间的中介。Java中的代理按照代理类生成时机不同又分为静态代理和动态代理。静态代理代理类在编译期就生成,而动态代理代理类则是在Java运行时动态生成。动态代理又有JDK代理和CGLib代理两种。代理(Proxy)模式分为三种角色:抽象主题(Subject)类: 通过接口或抽象类声明真实主题和代理对象实现的业务方法。

2024-05-04 03:45:00 1014

原创 适配器模式

将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类能一起工作。适配器模式分为类适配器模式和对象适配器模式,前者类之间的耦合度比后者高,且要求程序员了解现有组件库中的相关组件的内部结构,所以应用相对较少些。

2024-05-04 03:45:00 978

原创 原型模式和建造者模式

用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型对象相同的新对象。

2024-05-03 11:49:11 984

原创 简单工厂模式、工厂方法模式和抽象工厂模式

定义一个用于创建对象的接口,让子类决定实例化哪个产品类对象。工厂方法使一个产品类的实例化延迟到其工厂的子类。

2024-05-03 10:00:03 197

原创 单例设计模式

单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。

2024-05-02 13:47:44 507

原创 设计模式简介

设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了重用代码、让代码更容易被他人理解、保证代码可靠性。

2024-05-02 10:48:55 159

原创 HTTP 状态码常见总结

当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求。当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含 HTTP 状态码的信息头(server header)用以响应浏览器的请求。

2024-05-02 09:59:39 624

原创 Redis缓存介绍以及常见缓存问题:穿透、雪崩和击穿

缓存就是数据交换的缓冲区(Cache),是存贮数据的临时地方,一般读写性能较高。降低后端负载提高读写效率,降低相应时间数据一致性成本代码维护成本运维成本。

2024-04-29 21:11:52 1195

原创 Linux常用命令总结

把java.log 复制到/opt/logs/下并且改名为 aaa.log。

2024-04-29 20:57:16 547

原创 git常用命令总结

git add.

2024-04-28 13:30:46 1187

原创 springboot如何使用RedisTemplate

max-wait: 100ms # 连接池最大阻塞等待时间(使用负值表示没有限制)max-active: 8 # 连接池最大连接数(使用负值表示没有限制)password: 123456 #如果没有密码,可以不写这一行。max-idle: 8 # 连接池中的最大空闲连接。min-idle: 0 # 连接池中的最小空闲连接。--common-pool,用来配置redis连接池-->host: 127.0.0.1 #ip地址。port: 6379 #端口号。--reids依赖--># 配置连接池信息。

2024-04-26 18:24:00 314 4

原创 Java虚拟机(jvm)常见问题总结

虚拟机核心的组件就是执行引擎,它负责执行虚拟机的字节码,一般户先进行编译成机器码后执 行。“虚拟机”是一个相对于“物理机”的概念,虚拟机的字节码是不能直接在物理机上运行的,需要JVM 字节码执行引擎- 编译成机器码后才可在物理机上执行。

2024-04-25 22:32:04 1108

原创 java中的代理方法

Java中常见的代理方法主要有两种:静态代理和动态代理。

2024-04-23 23:29:56 281

原创 Java虚拟机类加载机制详细总结

的阶段,从概念上讲,这些变量所使用的内存都应当在方法区中进行分配,但必须注意到方法区本身是一个逻辑上的区域,在JDK 7及之前,HotSpot使用。

2024-04-23 23:28:52 782 1

原创 Java虚拟机垃圾收集器详细总结

Serial收集器是最基础、历史最悠久的收集器,曾经(在JDK 1.3.1之前)是HotSpot虚拟机新生代收集器的唯一选择。这个收集器是一个,但它的“单线 程”的意义并不仅仅是说明它只会使用一个处理器或一条收集线程去完成垃圾收集工作,更重要的是强 调在它进行垃圾收集时,必须暂停其他所有工作线程,直到它收集结束。

2024-04-22 23:33:52 1247 1

原创 Java虚拟机OutOfMemoryError异常:堆、栈、方法区、直接内存等

结果:抛出StackOverflowError异常,异常出现时输出的堆栈深度相应缩小。

2024-04-22 10:47:55 948

原创 Java虚拟机之对象的创建、内存布局及访问

Java是一门面向对象的编程语言,Java程序运行过程中无时无刻都有对象被创建出来。在语言层面 上,创建对象通常(例外:复制、反序列化)仅仅是一个new关键字而已,而在虚拟机中,对象的创建又是怎样一个过程呢?当Java虚拟机遇到一条字节码new指令时,首先将去检查这个指令的参数是否能在常量池中定位到 一个类的符号引用,并且检查这个符号引用代表的类是否已被加载、解析和初始化过。如果没有,那 必须先执行相应的类加载过程。在类加载检查通过后,接下来虚拟机将为新生对象分配内存。

2024-04-21 16:40:56 863

原创 MySQL数据库主从复制

主从复制是指将主数据库的DDL和DML操作通过二进制日志传到从库服务器中,然后在从库上对这些日志重新执行(也叫重做),从而使得从库和主库的数据保持同步。MySQL支持一台主库同时向多台从库进行复制,从库同时也可以作为其他从服务器上的主库,实现链状复制。MySQL复制的优点主要包含以下三个方面:主库出现问题,可以快速切换到从库提供服务。实现读写分离,降低主库的访问压力可以在从库中执行备份,以便面备份期间影响主库服务。

2024-04-18 17:15:38 384

原创 MySQL中InnoDB存储引擎详细介绍

InnoDB是一种兼顾高可靠性高和高性能的通用存储引擎,在MySQL5.5之后,InnoDB是默认的MySQL存储引擎。xxx.ibd:xxx代表的是表名,innoDB引擎的每张表都会对应这样一个表空间文件,存储该表的表结构、数据和索引。

2024-04-18 15:28:48 1050

原创 JVM垃圾回收与算法

在 Java 中,引用和对象是有关联的。如果要操作对象则必须用引用进行。因此,很显然一个简单 的办法是通过引用计数来判断一个对象是否可以回收。简单说,即一个对象如果没有任何与之关 联的引用,即他们的引用计数都不为0,则说明对象不太可能再被用到,那么这个对象就是可回收 对象。

2024-04-17 22:17:44 925

原创 JUC并发编程问题相关总结(二)

简单说一下AQS,AQS全称为AbstractQueuedSychronizer,翻译过来应该是抽象队列同步器。如果说java.util.concurrent的基础是CAS的话,那么AQS就是整个Java并发包的核心了, ReentrantLock、CountDownLatch、Semaphore等等都用到了它。

2024-04-16 23:17:28 873

原创 JUC并发编程问题相关总结(一)

线程安全就是说多线程访问同一段代码,不会产生不确定的结果。如果你的代码 在多线程下执行和在单线程下执行永远都能获得一样的结果,那么你的代码就是线程安全的。这个问题有值得一提的地方,就是线程安全也是有几个级别的:这个问题有值得一提的地方,就是线程安全也是有几个级别的:(1)不可变像String、Integer、Long这些,都是final类型的类,任何一个线程都改变不了它们的值,要改变除 非新创建一个,因此这些不可变对象不需要任何同步手段就可以直接在多线程环境下使用(2)绝对线程安全。

2024-04-16 22:10:59 757

原创 MySQL之锁:全局锁、表级锁、行级锁详细总结

锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除传统的计算资源(CPU、RAM、I/O)的争用外,数据也是一种供多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素。从这个角度来说,锁对数据库而言显得尤其重要,也更加复杂。

2024-04-15 15:30:12 977

原创 MySQL之sql优化:intsert、主键、order by、group by等

大批量插入数据如果一次性需要插入大批量地数据,使用insert语句插入性能较低,此时使用MySQL数据库提供地load指令进行插入下图第三条语句表示讲/root/sql.log通过load插入到表tb_user中,每个字段用‘,’分割,每行数据用‘\n’分割。

2024-04-14 20:47:29 662

原创 MySQL之索引失效、覆盖、前缀索引及单列、联合索引详细总结

如果索引了多列(联合索引),要遵守最左前缀法则,最左前缀法则指的是查询从索引的最左列开始,并且不跳过索引中的列。如果跳跃某一列,索引将部分失效(后面的字段索引失效)。联合索引中,出现范围查询(>,=,

2024-04-13 16:45:37 810 1

原创 MySQL之sql性能分析

MySQL客户端连接成功后,通过show[session|global]status命令可以提供服务器状态信息。通过如下指令,可以查看当前数据库的所有INSERT、DELETE、UPDATE、SELECT的访问频次。

2024-04-12 11:58:58 1035

原创 MySQL之约束详细总结

类似于 RESTRICT,但是在约束动作上没有实际行为。约束是作用于表中字段上的规则,用于限制存储在表中的数据。保证数据库中数据的正确性、有效性和完整性。

2024-04-10 23:14:28 1003

原创 MySQL之函数:字符串函数、日期函数、数值函数、流程函数

用于将多个字符串连接成一个字符串。用于截取字符串的子串。包前不包后,从1开始和用于将字符串转换为大写和小写。用于返回字符串的长度。用于去除字符串两侧的空格或指定字符。用于替换字符串中的指定子串。和用于从字符串的左边或右边截取指定长度的子串用于查找子串在字符串中的位置。用于查找子串在字符串中的位置,类似于INSTR函数。用于将字符串反转。用于将多个字符串使用指定分隔符连接成一个字符串。和用于在字符串左边或右边填充指定字符,使字符串达到指定长度。用于返回字符的ASCII码值;用于根据ASCII码值返回字符。

2024-04-09 22:55:56 1444

原创 TCP协议简单总结

TCP主要有三个步骤实现可靠传输:三次握手建立连接,传输数据进行确认,四次挥手断开连接。TCP的最终目的:要保证在不可靠的信道上实现可靠的传输。建立连接后会建立可靠的通信管道。特点:面向连接、可靠通信。三次握手建立可靠连接。TCP:传输控制协议。

2024-04-09 14:40:29 1018

原创 UDP简单总结

然后,我们创建了两个发送者线程,并将它们分别启动。然后,我们准备了要发送的消息字符串,并将其转换为字节数组。接着,我们获取了接收者的地址(本地主机)和端口号(8081),并创建了一个。最后,我们从接收的数据报包中获取消息字符串,并在控制台打印接收到的消息。不事先建立连接,数据按照包发,一包数据包含:自己的IP、程序端口、目的地IP、程序端口和数据(限制在64KB内)我们发送了数据报包,并在控制台打印了发送的消息。发送方不管对方是否在线,数据在中间丢失也不管,如果接收方收到数据也不返回确认,故不可靠。

2024-04-09 13:06:39 713

空空如也

空空如也

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

TA关注的人

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