- 博客(11)
- 收藏
- 关注
原创 设计模式之适配器模式
适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作有两种适配器: 类的适配器和对象的适配器。
2024-07-15 11:14:32
629
原创 设计模式之工厂模式
工厂方法模式将工厂抽象化,并定义一个创建对象的接口。每增加新产品,只需增加该产品以及对应的具体实现工厂类,由具体工厂类决定要实例化的产品是哪个,将对象的创建与实例化延迟到子类,这样工厂的设计就符合“开闭原则”了,扩展时不必去修改原来的代码。单工厂模式提供专门的工厂类用于创建对象,实现了对象创建和使用的职责分离,客户端不需知道所创建的具体产品类的类名以及创建过程,只需知道具体产品类所对应的参数即可,通过引入配置文件,可以在不修改任何客户端代码的情况下更换和增加新的具体产品类,在一定程度上提高了系统的灵活性。
2024-07-12 09:44:12
901
原创 设计模式之单例模式
单例模式就是一个单一的类负责创建自己的对象同时确保 只有 单个对象被创建,这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。
2024-07-11 10:03:13
1114
原创 23种设计模式常见的面试题
4、模板方法模式:定义了一个算法的骨架,而将一些步骤延迟到子类种,模板方法使得子类可以在不改变算法的情况下,重新定义算法的步骤。2、synchronized可以保证变量的修改可见性和原子性。5、观察者模式:定义了对象之间的一对多的依赖。3、代理模式:代理模式分为静态代理和动态代理,动态代理有jdk动态代理和cglib动态代理。1、synchronized是修饰方法、代码块。动态代理的应用有:spring的aop,java注解对象的获取等。2、工厂模式(简单工厂、工厂方法):解耦合。
2024-07-10 09:04:21
271
原创 Redis的数据类型
bitmap类型的底层实现是SDS(simple dynamic string)和String类型相同,只是在操作时会将每个字节拆分成8个二进制位,是一种独特的String类型,它可以将一个String类型的值看做是一个由二进制组成的数组。georadiusbymember:返回指定成员为圆心的指定半径内的地理空间位置,可以指定返回坐标、距离、哈希值、数量、排序方式等,也可以将结果存储到另一个key中。优点是,在输入元素的数量或者体积非常非常大时,计算基数所需的空间总是固定 的、并且是很小的。
2024-07-06 14:22:43
1136
原创 MySql事务
一般是指要做的或所做的事情。在计算机术语中是指访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。事务由事务开始(begin transaction)和事务结束(end transaction)之间执行的全体操作组成。这些组成要么都执行要么都不执行。将对数据库的一系列操作封装到一个事务中,这些操作要么执行要么不执行。就是把多个要做的操作组合成一个整体,利用事务的特性来保证操作的安全性。如果一个事务做到一半出现任何错误,就会进行回滚操作,来恢复成最初的模样。脏读:读取了其它事务位提交的数据。
2024-07-05 10:04:52
1026
原创 Java线程安全问题
线程A拥有锁资源a,希望获取锁资源b,线程B拥有锁资源b,希望获取锁资源a。lock只能使用在代码块中,需要手动加锁和释放锁。注意释放锁必须要在finally中释放。synchronized可以使用代码块和方法上,会自动加锁和释放锁,不会出现由未释放锁造成的死锁问题。RUNNABLE=====就绪状态和运行状态 当调用start方法时线程进入到该状态。3、wait会释放锁资源,sleep不会释放锁资源。NEW====新建状态 即创建线程对象时线程的状态。TIMED_WAITING=======>超时等待。
2024-07-04 19:52:13
814
原创 Java线程
进程就是正在运行的程序,进程是系统分配资源的基本单位线程是进程中的一条执行路径,也是CPU的基本调度单位。如果一个程序在同一时间执行多个线程,代表着这个程序支持多线程多线程就是一个进程由多个组成,彼此间完成不同的工作(任务),同时执行,称为多线程。
2024-07-04 10:02:13
1163
原创 replace和repalceAll的区别
String replaceAll(String regex, String replacement) 其中String表示返回的类型是字符串,regex表示要替换的正则表达式也可以是典型的字符串,replacement表示替换的字符串。replaceAll支持正则表达式,因此会对参数进行解析(两个参数均是),如replaceAll("\\d", "a"),而replace则不会,replace("\\d","a")就是替换"\\d"的字符串,而不会解析为正则。
2024-07-02 16:58:20
331
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人