¿Qué es UnownedLocal?
Anotar métodos o variables locales individuales.
Anotar una sola variable local significa excluir referencias de instancia de esta variable del recuento de referencias. Anotar un método significa revocar la propiedad del método de todas las variables locales (explícitas o implícitas) del objeto referenciado y excluir las referencias a estas variables del recuento de referencias del objeto referenciado.
El propósito de UnownedLocal es reducir la sobrecarga de RC, no eliminar las referencias circulares.
Para el método inseguro HashMap.containsValue en modo multiproceso, otros subprocesos no pueden modificar el HashMap sincrónicamente. Por lo tanto, la lectura de tablas internas y nodos en HashMap no se incluye en el recuento de referencias, por lo que los objetos referenciados no se liberarán. En este caso, puede utilizar UnownedLocal para anotar el objeto en el método.
@UnownedLocal
public boolean containsValue(Object value) {
Node<K,V>[] tab;
V v;
if ((tab = table) != null && size > 0) {
for (int i = 0; i < tab.length; ++i) {
for (Node<K,V> e = tab[i]; e != null; e = e.next) {
if ((v = e.value) == value || (value != null && value.equals(v)))
return true;
}
}
}
return false;
}
public boolean containsValue(Object value) {
Node<K,V>[] @Unowned tab;
V @Unowned v;
if ((tab = table) != null && size > 0) {
for (int i = 0; i < tab.length; ++i) {
for (Node<K,V> e = tab[i]; e != null; e = e.next) {
if ((v = e.value) == value || (value != null && value.equals(v)))
return true;
}
}
}
return false;
}
Se prohíbe la reimpresión no autorizada
Para intercambios más técnicos, únase al grupo QQ
Nombre del grupo: harmonyos Hongmeng Technology Exchange
Group number: 856567895
Empiece de cero para aprender sobre el desarrollo de HarmonyOS Hongmeng 2.0
- Tutorial de introducción original de HarmonyOS Hongmeng 01 Entorno básico y herramientas de desarrollo (el tutorial incluye código fuente)
- Instalación original de herramientas de desarrollo HarmonyOS Hongmeng Development 02
- Tutorial de introducción original de HarmonyOS Hongmeng 03 Ejecute la herramienta de desarrollo para completar la configuración básica DevEco Studio (el tutorial incluye código fuente)
- Desarrollo original de HarmonyOS Hongmeng 04 Ejecute el primer hola mundo (tutorial con código fuente)
- Desarrollo original de HarmonyOS Hongmeng 05 Ejecute la primera página (tutorial con código fuente)
- Desarrollo original de HarmonyOS Hongmeng 06 Crear página Función Capacidad a través del código (el tutorial incluye el código fuente)
- Programación original de HarmonyOS Hongmeng Development 07 para realizar el salto de página (el tutorial incluye el código fuente)