优惠码 第106页

鸿蒙OS 方舟注释概述

提供利用 Java 的注释机制注释所需变量和类型的类,从而消除循环引用并提高性能。 相关的类如下:常驻,Unowned,UnownedLocal,UnownedOuter和弱。 注释类型摘要 注释类型 描述 常驻 注释持久性内存对象。 无人 注释没有所有权的对象以消除循环引用。 本地无人 注释方法或单个局部变量。 无主外层 注释一个类以消除循环引用。 弱 注释弱参考对象。

鸿蒙OS 外层UnownedOuter

注释一个类以消除循环引用。 注释内部类意味着删除其对引用的外部对象的所有权,从而使引用不包括在引用计数中。匿名内部类可以使用内部方法进行注释。 此类可以解决无法注释外部类实例的字段的问题,因为当 Java 内部类隐式捕获该字段时,没有提供显式声明。如果内部类不能定义为静态嵌套类,则必须使用外部类实例,并且可以使用 UnownedOuter 注释内部类以消除循环引用。 此类的不正确使用可能导致与未拥有相同的结果,从而导致引用对象的早期释放。 请参考以下示例代码: class Outer{ @UnownedOuter private class Innert { ...; } Private Runnable r = new Runnable() { @Override @UnownedOuter Public void run() { ...; } } }

鸿蒙OS Unowned

注释没有所有权的对象以消除循环引用。 如果注释了字段成员或局部变量,则它们将不具有对引用对象的所有权,并且它们的引用也将不包括在引用对象的引用计数中。 此类支持以下常见数据结构的注释:双链表,TreeMap 和 Linked HashMap。 此类的不正确使用可能会导致早期释放引用的对象。 以 TreeMap 数据结构为例,可以将父节点标注为“无主”,而不能标注左右节点: static final class TreeMapEntry<K,V> implements Map.Entry<K,V> { K key; V value; TreeMapEntry<K,V> left; TreeMapEntry<K,V> right; @Unowned TreeMapEntry<K,V> parent; boolean color = BLACK; ...; }

鸿蒙OS 常驻

注释持久性内存对象。 您可以使用此类在新语句中将一个对象注释为持久性内存对象,这样该对象将不会被 Ark 编译器的 RC 回收。 以“ Integer.java”文件中的“ Integer cache”为例: 私有静态类IntegerCache { 静态最终INT 低= - 128 ; 静态final int 高; 静态最终整数缓存[]; 静态{ ...; for (int k = 0 ; k < 缓存。长度; k ++) 缓存[ k ] = new @Permanent Integer (j ++); ...; } ...; }