- 博客(160)
- 收藏
- 关注
原创 python:__set_name__使用
在Python中,我们可以通过__set_name__方法来实现一些特殊的操作。该方法是在定义类的时候被调用,用于设置属性的名称。这样一来,我们就可以在类定义中动态地获取属性的名称,从而更好地完成一些操作。
2024-05-26 00:38:26
494
原创 python:__class_getitem__使用以及cached_property源码分析
当使用类型标注时,使用 Python 的方括号标记来形参化一个 generic type 往往会很有用处。例如,list[int] 这样的标注可以被用来表示一个 list 中的所有元素均为 int 类型。一个类通常只有在定义了特殊的类方法 __class_getitem__() 时才能被形参化。我们知道,一个list对象,可以通过索引下标取值,即形如a[0],是因为有__getitem__方法的实现,而__class_getitem__() 即针对类的,也就是上述的类名[xx]的形式用法,调用类名[xx]时
2024-05-24 22:44:17
946
原创 python:函数形参列表中的斜杠(/)是什么意思?
函数参数列表中的斜杠表示在它之前的形参都是仅限位置形参。仅限位置形参没有可供外部使用的名称。在调用接受仅限位置形参的函数时,参数将只根据其位置被映射到形参上。
2024-05-17 14:03:42
1223
原创 python:functools.partial和functools.wraps使用
python内置的functools模块,提供了一些非常好用的类或者方法,其中functools.partial和functools.wraps的使用频率较高,本文将针对其分析使用。
2024-05-16 14:03:46
1063
原创 python:__new__和__init__
在Python中,每个对象都有两个特殊的方法:__new__和__init__。这两个方法在对象的创建和初始化过程中起着重要的作用,但它们的功能和用法有所不同。
2024-05-14 08:29:50
923
1
原创 python:lastIndexOf方法实现
python没有类似java的获取字符串的某个字符最后出现的索引的方法,故而需要我们自行实现。我们可以根据python提供的string.index()方法来实现python的lastIndexOf方法。
2024-05-12 11:03:50
458
1
原创 python:枚举类
python实际开发中,需要定义类型时,一般是使用一组整数或者字符串来表示。如果使用常规的定义方式,非常容易被外部修改,Python3.4后,增加了枚举类的使用,就是为了解决这种场景而设计的。python枚举适用场景:值有限且固定(不希望被轻易或随意修改)的数据类型。Java也有枚举类的使用,使用关键字enum实现,而python一般是通过提供的Enum类继承实现的(python类支持多继承,java为类单继承)。
2024-05-10 14:25:56
1085
1
原创 python:map、filter、reduce函数使用
Python的map、filter、reduce函数使用说明。高阶函数概念:把函数作为参数传入,这样的函数称为高阶函数,函数式编程就是指这种高度抽象的编程范式。
2024-05-09 14:35:32
463
原创 python:鸭子类型使用场景
鸭子模型是Python中的一种编程哲学,也被称为“鸭子类型”。它来源于一句话:“如果它走起路来像鸭子,叫起来也像鸭子,那么它就是鸭子。”这个哲学思想强调对象的行为比其具体类型更重要。与C++、Java等编译型语言不一样的是,Python作为解释器语言,其语言层面的设计理念有独特之处,鸭子模型便是其中之一。在面向对象的世界中,编译型语言判断一个对象是否隶属于某个类,依靠的是类的继承机制,换句话说,即使一个对象实现了某个类的所有方法也不行;
2024-05-09 11:23:54
920
原创 java:EasyExcel使用(一)读excel
EasyExcel相比于传统使用poi进行excel文件读写,编程使用操作上更加方便快捷,且对于内存溢出进行了优化处理。本文是EasyExcel读excel操作。
2024-05-01 17:58:41
2329
1
原创 typescript:vscode的settings配置文件配置ts语法提示
vscode的settings配置文件,配置ts语法提示打开或者关闭。
2024-04-27 21:31:54
1114
原创 java:观察者模式
观察者模式,又被称为发布-订阅(Publish/Subscribe)模式,他定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态变化时,会通知所有的观察者对象,使他们能够自动更新自己。
2024-04-23 21:31:50
1141
1
原创 javascript:call()、apply()、bind()的区别和使用
javascript的call、apply、bind方法绑定this的区别以及使用。call、apply、bind的区别:2 使用(2.1)call方法:可以传递两个参数。第一个参数是指定函数内部中this的指向,也就是函数执行时所在的作用域:(1)参数值为null或undefined或者this,则等同于指向全局对象(2)但不能为空第二个参数是函数调用时需要传递的参数,需要一个一个的传入(…param, 这里的param指多个参数)上述call方法,传入的第二个参数时,是多个参数传的,
2024-04-12 13:38:30
443
原创 node:nvm下载使用与node版本管理
nvm(Node Version Manager)是一款用于管理Node.js版本的工具,支持在一个系统中切换和安装多个Node.js版本。使用nvm可以方便升级或降低Node.js版本,也可以在同一台机器上同时使用多个版本的Node.js。
2024-04-11 14:38:20
541
原创 node:ReferenceError: XMLHttpRequest is not defined
1 前言node执行如下代码:报错提示:ReferenceError: XMLHttpRequest is not defined2 解决2.1 可能原因是没有安装xmlhttprequest使用淘宝镜像源安装成功:package-lock.json:2.2 安装xmlhttprequest后需要引入上述直接定义方式为如下:安装后node执行依然报错提示:ReferenceError: XMLHttpRequest is not defined,是因为还需要引入使用。使用node命令,那么需要使用C
2024-03-31 21:27:01
1235
原创 java:Druid工具类解析sql获取表名
alibaba的druid连接池除了sql执行的功能外,还有sql语法解析的工具提供,可据此自定义实现sql语句表名的替换功能。
2024-03-12 18:22:01
1713
原创 Spring:FactoryBean预加载逻辑以及自定义实现Mybatis的接口扫描
Spring:FactoryBean预加载逻辑以及自定义实现Mybatis的接口扫描1 前言参考Mybatis框架的@Mapper注解扫描Mapper接口的业务逻辑,其中集成Spring的逻辑里使用到了Spring框架的FactoryBean拓展点,本文针对Spring FactoryBean的加载流程进行分析和理解。本文参考源码依赖:<parent> <artifactId>spring-boot-starter-parent</artifactId>
2024-03-03 14:13:11
1128
原创 java:java.util.StringTokenizer实现字符串切割
java.util工具包提供了字符串切割的工具类StringTokenizer,Spring等常见框架的字符串工具类(如Spring的StringUtils),常见此类使用。
2023-10-18 15:48:37
557
原创 mybatis:mybatis-generator插件使用
mybatis-generator插件配置文件:mybatisGenerator.xml。
2023-10-08 15:52:02
417
原创 java:JDBC ResultSet结合Spring的TransactionTemplate事务模板的查询方式
一般业务开发中,数据库查询使用mybatis框架居多。mybatis底层将结果赋予到实体类,使用的是反射方式(如org.apache.ibatis.reflection.Reflector类等逻辑),常和Spring的编程式事务TransactionTemplate一同使用。当然,Spring的TransactionTemplate也可以和JDBC的ResultSet联合使用,这里采用根据Spring asm所创的工具类,来将数据库查询结果赋予到实体类(和mybatis底层使用反射有所区别,反射调用实体
2023-10-08 15:47:14
530
原创 java:java.util.MissingResourceException: Cant find bundle for base name解决方式
因为ResourceBundle.getBundle是从classpath路径下读取资源,即target-classes目录下(或者lib),资源文件需放在resources目录下,如果resouces目录下有文件夹目录,那么资源文件名称带上目录即可,并且资源文件名后缀需为properties,但是getBundle的baseName参数不要带上后缀.properties,否则也会抛出MissingResourceException,正确示例如下:
2023-09-23 12:54:13
3999
原创 java:asm实现ResultSet结果映射到实体类
1 前言Spring-core包中提供了许多方便的工具类,其中org.springframework.cglib.beans下的BeanCopier工具类,主要用于bean之间的属性拷贝,性能上优于Spring-beans包下的org.springframework.beans.BeanUtils的copyProperties方法属性拷贝。因为BeanCopier的属性拷贝,本质上是通过asm,即java字节码来动态生成bean的get、set赋值的方法,相比于BeanUtils的copyPropertie
2023-09-20 14:04:09
501
原创 Spring:六、ProxyFactory使用
Spring提供了编程式AOP代理方式,而不依赖于Spring Ioc,即ProxyFactory。使用此种方式可以很方便的使用JDK动态代理或CGLIB代理,且支持Advisor chain的使用,可以通过advisor链,增强需要代理的对象方法。
2023-05-29 13:57:20
1081
原创 java:AutoCloseable接口使用
AutoCloseable接口,在try-with-resources代码块退出时,会自动调用接口的close方法,避免资源耗尽的异常等情况。
2023-04-17 13:57:21
566
1
原创 java:new ArrayList<String>(){{add(“xxx“);}}
HashMap和ArrayList等常见双花括号的写法,本质是匿名内部类 + 实例代码块(即构造代码块)的写法。
2023-04-13 14:03:38
1014
原创 java:非静态内部类中的Filed:this$0
通过反射方法getDeclaredFields()获取类Class的全部字段时,会发现内部类(非静态)的字段中,存在父类的实例字段,修饰为final,属性名为this$0。若此非静态内部类需要调用父类的实例方法,那么使用parent class.this即可。
2023-04-10 13:44:23
349
原创 java:classLoader.loadClass() 和 Class.forName()
Java虚拟机把描述类的数据,从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的java类型,这个过程被称为虚拟机的类加载机制。- 《深入理解java虚拟机》
2023-04-05 17:41:48
2069
原创 java:接口请求重试
接口请求重试的思路,采用循环 + try \ catch的方式,若接口请求失败或超时,则根据设置的重试次数再次发起请求重试。
2023-03-25 16:51:20
2634
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人