08 2020 档案
摘要:使用python实现简易计算器-支持加减乘除和括号 priority_dict = { # 操作符优先级字典 "+": 1, "-": 1, "*": 2, "/": 2 } operands_dict = { # 操作符函数字典 "+": lambda x, y: x + y, "-": lamb
阅读全文
摘要:模块的介绍 python中的一个.py文件就是一个模块,一个package也是一个模块,模块有内置模块,第三方模块,自定义模块3种。 def my_sum(*args): return sum(args) 定义一个util.py模块 import util print(util.my_sum(45,
阅读全文
摘要:介绍 ByteBuddy也是一个代码生成和操作的类库,可以在运行时动态创建和修改class,底层也是ASM库,相比于cglib,javassist,Bytebuddy在性能上具有优势,Hibernate的懒加载和mockito测试框架都使用到了Bytebuddy。官网 实现动态代理 maven依赖
阅读全文
摘要:文本文件复制 with open("test.txt", "r", encoding="utf-8") as rf, \ open("test_copy.txt", "w", encoding="utf-8") as wf: arr_len = 1000 while True: val = rf.r
阅读全文
摘要:介绍 Javassist 也是一个字节码框架,和其他字节码框架不同的是,它提供了两种层级的API,源层级和字节码层级,源层级不需要对字节码规则了解太多就可以操作。Hibernate的懒加载就使用到了Javassist。官网 使用Javassist提供的动态代理接口实现 maven依赖 <depend
阅读全文
摘要:解构赋值 a, b, c = [1, 2, 3] # 列表解构 print(a, b, c) a, b, c = (1, 2, 3,) # 元组解构 print(a, b, c) a, b, c = {1, 2, 3} # 集合解构 print(a, b, c) a, b, c = range(1,
阅读全文
摘要:介绍 cglib是一个强大的,受欢迎的,高性能的代码生成类库,它的底层就是asm(字节码框架),可以用来动态修改class和创建class,Spring AOP实现动态代理的一种方式就是cglib,hibernate使用cglib对持久化对象创建代理。 实现动态代理 引入maven依赖 <depen
阅读全文
摘要:整体介绍 python有以下几种基本类型,int,float,str,range,slice,bool,list,tuple,dict,set 详细介绍 int int表示整型数字,不管多大的数字都可以用int表示,整合了java中的byte,short,int,long。 将其他类型转换成int类
阅读全文
摘要:1、 使用while循环输入 1 2 3 4 5 6 8 9 10 while (True): index = int(input('please num: ')) if (index > 10): exit() if (index != 7): print(index) index += 1 in
阅读全文
摘要:介绍 ASM是一个java字节码操纵和分析框架,它可以直接以二进制的形式修改class或动态生成class。官网 使用 接下来我们使用asm框架实现一个和JDK动态代理同样的功能。 引入maven依赖 <dependency> <groupId>org.ow2.asm</groupId> <arti
阅读全文
摘要:介绍 代理是一种设计模式,提供了对目标对象另外的访问方式,通过代理对象来访问目标对象,这样可以扩展目标对象的功能,对目标对象功能做控制。 类图如下 静态代理 定义一个目标对象和代理对象都需要实现的接口 /** * 可以唱歌的 */ public interface Singable { /** *
阅读全文
摘要:本地变量类型推断 public class Client { public static void main(String[] args) { var name = "lisi"; System.out.println(name); List<String> names = Arrays.asLis
阅读全文
摘要:错误日志 控制台错误 Traceback (most recent call last): File "C:\Program Files\JetBrains\PyCharm 2019.1.4\helpers\pydev\pydevd.py", line 15, in <module> from _p
阅读全文
摘要:介绍 MapStruct是一个可以生成类型安全的,高性能的且无依赖的 JavaBean 映射代码的注解处理器,可以在编译期生成对应的mapping,既没有BeanUtils等工具使用反射的性能问题,又免去了自己写映射代码的繁琐。 使用 简单转换 maven依赖 <dependency> <group
阅读全文