当前位置:网站首页>Accéder aux variables locales dans une classe interne anonyme
Accéder aux variables locales dans une classe interne anonyme
2022-07-18 22:15:00 【J'attaque le lion de siège】
Un.、Lire et modifier les variables locales externes dans une classe interne anonyme
Une variable externe est accessible dans une classe interne anonyme,Mais l'action qui ne peut pas modifier la variable externe,Parce que les classes internes anonymes accèdent aux variables externes,L'équivalent de la variable externe estfinalMots clés à modifier.

2.、Champ d'application des variables locales
Portée des variables locales:Les variables locales sont définies dans une méthode,Une fois la méthode terminée,Les variables locales disparaissent..【Les variables locales sont attribuées àJVMDans la pile de machines virtuelles de,Cette partie de l'espace mémoire est automatiquement récupérée avec l'exécution du programme】,C'est - à - dire:Le champ d'application de la variable locale est “Dans le cadre de la méthode”.
Mais,Quand(Local)Accès interne à la classe Variables locales Heure,Cela élargira la portée des variables locales.Voir l'exemple suivant:
public class Test {
public static void main(String[] args) {
final String str = "hello world";
new Thread(new Runnable() {
@Override
public void run() {
try {
Thread.sleep(50);
} catch (InterruptedException e) {
e.printStackTrace();
}
for(int i = 0; i < 10; i++)
System.out.println(str);
}
}).start();
System.out.println("main thread finished");
}
}
Les résultats sont les suivants:
Trois、Résumé
- 1No4Oui.main Une variable locale est définie dans la méthode str,No6 La ligne définit une classe interne locale Thread, Et dans les classes internes locales ThreadVisite à mi - parcours str.
- Vu les résultats de l'opération,Lorsque le programme est exécuté jusqu'à19Oui.,main()La méthode est terminée,C'est - à - dire:Le fil principal est terminé. Et le fil principal se termine ,Variables localesstr Le cycle de vie de .
- Mais,ThreadLe thread n'est pas terminé,InThread Il est également possible d'imprimer des Parties dans le thread strValeur de.Cela montre:Variables locales str La portée a été élargie .
- Donc,, Si la variable locale n'est pas utilisée final Modification,On pourrait juste(Local) Modifier la valeur de la variable locale au hasard dans la classe interne ,Et c'est Ces valeurs modifiées sont visibles en dehors de la portée de cette variable locale .Cela peut causer des problèmes.
- Donc,,JAVADispositions(Local)Accès interne à la classe De Les variables locales doivent utiliser finalModification, Pour éviter de changer la valeur de la variable locale . Bien qu'il n'y ait pas de déclaration et final, Parce que c'est une déclaration implicite , La méthode définie pour l'interface est par défaut à publicC'est pareil.Si, Après décompiler, vous trouverez toujours finalMots clés.
边栏推荐
- Neutral energy optimization of transport layer triple handshake
- [UCOS III source code analysis] - time slice rotation
- Publication en niveaux de gris istio: déploiement du projet de microservice bookinfo
- Today, I went to oppo for an interview and was asked numbly
- Leetcode 1309. 解码字母到整数映射(可以,一次过)
- How does MySQL execute SQL statements
- MP1655GG-Z MPS/美国芯源 MOSFET 的开关模式转换器 资源 方案
- Characteristics and usage of Ni MH battery (FDK Ni MH battery charging mechanism)
- 栓Q了,大厂被强制毕业,空窗一个月死背八股文,还好拿到了Offer
- Application of Apache E8 industrial computer minipicecan card in Construction Robot
猜你喜欢

传输层 三次握手中性能优化

Information system project manager must recite the core examination site (44) planning risk response

Swin transformer, the best paper model of iccv 2021, finally started with video!

Network basic VLAN configuration (ENSP, Cisco)

8080端口被占用怎么解决?Win11 8080端口被占用解决方法

Spark streaming Programming Guide

Towhee 每日模型周报

Publication en niveaux de gris istio: déploiement du projet de microservice bookinfo

【C语言对数据文件的顺序读写】

Which brand of Bluetooth headset has good noise reduction? Top 10 active noise reduction headphones
随机推荐
Leetcode 1309. 解码字母到整数映射(可以,一次过)
SFF1602-MHCHXM超快恢复二极管SFF1602
What are the main RPA manufacturers in the current mainstream
图像、视频、3D 数据一把抓,不挑食的 AI 模型 Omnivore !
Swin transformer, the best paper model of iccv 2021, finally started with video!
RPA ecosystem revealed, supporting the life source of RPA enterprises' billions of valuation
网络基础VlAN配置 Trunk技术(eNSP、Cisco)
深入剖析多重背包问题(下篇)
降噪蓝牙耳机哪款好?性价比最高的主动降噪蓝牙耳机
MySQL 5.7.37 database download and installation tutorial (no installation required for Windows)
One person builds the digital system solution of the whole group with a low code development platform
ThoughtWorks现代企业架构框架白皮书 笔记
Flutter 文字上下滚动切换 用于公告消息提示
Leetcode 1331. Array sequence number conversion
In depth analysis of multiple knapsack problem (Part 2)
Leetcode 1342. Number of operations to change the number to 0
Which is a good noise reduction Bluetooth headset? Bluetooth headset noise reduction recommendations
What is the future of digital employees? Review the application cases of RPA in eight industries
剑指offer 44【数字序列中的某一位】【100%,100%】
TimeSformer: 只靠 Transformer 就能理解视频?注意力机制的又一次进击!