逃逸分析
基本原理分析对象动态作用域,当一个对象在方法里面被定义后,它可能被外部方法所引用,例如作为调用参数传递到其他方法中,这种称为方法逃逸;甚至还有可能被外部线程访 问到,譬如赋值给可以在其他线程中访问的实例变量,这种称为线程逃逸;从不逃逸、方法逃逸到线程逃逸,称为对象由低到高的不同逃逸程度。 栈上分配如果确定一个对象不会逃逸出线程之外,可以对这个对象进行栈上分配。当然,这里给您提供另一个使用Java栈上分配的示例: 假设我们有一个方法,它需要创建大量的String对象并对它们进行操作。在常规情况下,每次创建String对象时都会在堆上分配内存,这可能会导致性能问题。 为了避免这种情况,我们可以使用Java栈上分配技术来优化代码。具体做法是将StringBuilder对象声明为局部变量,并在该对象上执行操作,最终将其转换为String对象并返回。以下是示例代码: 1234567public String buildString(int count) { StringBuilder builder = new StringBuilder(); for (int i...
设计模式的思想
封装变化的代码找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起。针对接口编程,而不是针对实现编程。 多用组合,少用继承使用组合建立系统具有很大的弹性,不仅可以将算法族封装成类,更可以在运行时动态的改变行为,只要组合的行为对象,符合正确的接口标准
ASM
计划 ASM架构 Class结构 解析类 生成类 转换类 移除类成员 添加类成员 转换链 类分析工具 方法结构 生成方法 转换方法 无状态转换 有状态转换 方法分析工具 参考资料 ASM4-guide
Linux学习计划
菜鸟教程 文件权限管理 文件目录管理 磁盘管理 文件的打包和压缩 vim基础 Bash 正则表达式 Shell Scripts
View的学习
Dialog Toast RecyclerView
python文本分类
要使用PyTorch训练文章分类AI,需要执行以下步骤: 准备数据集:首先要准备一个由多篇文章组成的数据集,每篇文章都带有它所属的分类标签,例如“科技”、“娱乐”、“体育”等等。数据集需要分为训练集、验证集和测试集。 数据预处理:对数据集进行处理,例如对文本进行分词、去除标点符号、停用词,将词汇转化为数值表示等等。 定义模型结构:使用PyTorch定义模型结构,例如使用卷积神经网络(CNN)或循环神经网络(RNN)等。 训练模型:使用训练集对模型进行训练,通过反向传播算法更新权重和偏差参数。 模型评估:使用验证集评估模型的性能,例如计算准确率、召回率和F1得分。 模型应用:使用测试集来测试模型的性能,例如使用一篇新的文章来测试模型对其分类的准确性。 以下是一个简单的PyTorch代码示例,用于训练文章分类AI: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960import...
正则表达式
正则表达式学习 正则表达式笔记
设计模式
策略模式 观察者模式 装饰模式
设计模式
策略模式对于类行为的处理,过去我们是将其抽象成一个接口,有相同行为的类实现同样的接口。这样做产生了一个问题,假设有一天你需要对行为作出修改,你需要对所有实现行为接口的类作出改变。 对此,我们应该将行为从类中剥离出来,抽象出单独的Behavior类去实现接口,在类中去依赖Behavior类即可。 这样即使我们需要新的行为实现,只需要替换Behavior类即可,不需要影响类本身的代码。 flowchart LR s([开始])-->f1{if条件} f1-->|true|n1[if语句块]-->e([结束]) f1-->|false|f2{else if条件} f2-->|true|n2[else if语句块]-->e f2-->|false|n3[else语句块]-->e 装饰模式开闭原则类应该对扩展开放,对修改关闭。