java foreach循環(huán)為什么不能賦值的講解
更新時間:2021年09月27日 08:43:59 作者:魅離兒
這篇文章主要介紹了java foreach循環(huán)為什么不能賦值的講解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
foreach循環(huán)為什么不能賦值
直接上代碼
public class test4 {
public static void main(String args[]){
int [] a=new int[3];
for(int j:a){
j=55;
}
}
}
代碼很簡單
下面是java編譯后的字節(jié)碼
public class test4 {
public test4();
Code:
0: aload_0
1: invokespecial #8 // Method java/lang/Object."<init>":()V
4: return
public static void main(java.lang.String[]);
Code:
0: iconst_3 //將int型3推送至棧頂
1: newarray int //創(chuàng)建一個指定原始類型的數(shù)組,并將其引用值壓入棧頂
3: astore_1 //將棧頂引用型數(shù)值存入第二個本地變量
4: aload_1 //將第二個引用類型本地變量推送至棧頂
5: dup //復(fù)制棧頂數(shù)值并將復(fù)制值壓入棧頂
6: astore 5 //將棧頂引用型數(shù)值存入指定本地變量,此處將數(shù)組引用放在第六個本地變量里
8: arraylength //獲得數(shù)組的長度值并壓入棧頂
9: istore 4 //將棧頂int型數(shù)值存入指定本地變量。
11: iconst_0 //將int型0推送至棧頂
12: istore_3 //將棧頂int型數(shù)值存入第四個本地變量
13: goto 27 //跳轉(zhuǎn)到27
16: aload 5 //將指定的引用類型本地變量推送至棧頂
18: iload_3 //將第四個int型本地變量推送值棧頂
19: iaload //將int型數(shù)組指定索引的值推送至棧頂
20: istore_2 //將棧頂int型數(shù)值存入第三個本地變量
21: bipush 55 //將單字節(jié)的常量值(-127~128)推送至棧頂
23: istore_2 //將棧頂int型數(shù)值存入第三個本地變量
24: iinc 3, 1 //將指定int型變量增加指定值
27: iload_3 //將第四個int型本地變量推送至棧頂
28: iload 4 //將指定的int型本地變量推送至棧頂
30: if_icmplt 16 //比較棧頂兩int型數(shù)值的大小,當(dāng)結(jié)果小小于0時跳轉(zhuǎn)
33: return //從當(dāng)前方法返回void
}
我們只需要關(guān)注6,16~23行就可以,可以發(fā)現(xiàn)這幾句代碼是將數(shù)組引用副本中的值取出放在棧頂,然后從棧頂取出變量放在本地變量3中,然后把55放在棧頂,再把55取出放在本地變量3中,從始至終的操作都是在本地局部變量中的,并沒有對原來的數(shù)值產(chǎn)生任何影響。
foreach循環(huán)賦值問題
foreach ($list as $key=>$val){
$data=array();//這一個一定要加上不然循環(huán)后,modify_one,modify_two都會賦值
if ($val['id']!=1){
$link = explode("801",$val['p_link']);
if (isset($link['1'])){
if ($val['times']%2==0){
$data['modify_two']=$ftp->time($link['1']);
}else{
$data['modify_one']=$ftp->time($link['1']);
}
$admin->edit_modify($val['id'],$data);
$admin->addTimes($val['id']);
}
}
}
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java異常java.lang.UnsatisfiedLinkError: no opencv_ja
這篇文章主要介紹了Java異常java.lang.UnsatisfiedLinkError: no opencv_java320 in java.library.path的解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-12-12
SpringCloud GateWay動態(tài)路由用法
網(wǎng)關(guān)作為所有項目的入口,不希望重啟,因此動態(tài)路由是必須的,動態(tài)路由主要通過RouteDefinitionRepository接口實現(xiàn),其默認(rèn)的實現(xiàn)是InMemoryRouteDefinitionRepository,即在內(nèi)存中存儲路由配置,可基于這個map對象操作,動態(tài)路由的實現(xiàn)方案有兩種2024-10-10
java算法題解Leetcode763劃分字母區(qū)間示例
這篇文章主要為大家介紹了java算法題解Leetcode763劃分字母區(qū)間示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-01-01
idea 2023.1字體設(shè)置及自動調(diào)整大小的圖文教程
這篇文章主要介紹了idea 2023.1字體設(shè)置及自動調(diào)整大小的教程,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),需要的朋友可以參考下2023-07-07

