重慶分公司,新征程啟航
為企業提供網站建設、域名注冊、服務器等服務
為企業提供網站建設、域名注冊、服務器等服務
您好,提問者:
環縣網站制作公司哪家好,找成都創新互聯公司!從網頁設計、網站建設、微信開發、APP開發、成都響應式網站建設公司等網站項目制作,到程序開發,運營維護。成都創新互聯公司自2013年起到現在10年的時間,我們擁有了豐富的建站經驗和運維經驗,來保證我們的工作的順利進行。專注于網站建設就選成都創新互聯公司。
你的代碼是正確的!
解決辦法:
1、javac Test1.java //編譯成Test1.class
2、java Test1 //運行Test1
問題出在:你的Test1.class就沒有,所以才會報這個錯誤。(請注意大小寫問題)
因為第二個for循環的第二個分號表示沒有條件,無限循環,死循環
所以邏輯一直死在這里,無法運行下面的代碼,故而第三個for不可達
我想就不用代碼來說明了
首先靜態方法的調用是類調用,而不是對象,在虛擬機中加載類的時候會把靜態方法和靜態塊都放在代碼存儲塊的內存區域里
而實例變量和方法是某個對象的,調用它當然是對象調用
所以當然不可以直接訪問
從內存分析來看,當你把一個類new出來的時候虛擬機會會在內存堆棧中給你分配空間來存儲地址的引用和值,
而你直接訪問的是在內存中的代碼存儲塊里的數據(這個區域里裝的都是static的)所以你當然不可以訪問new出來的屬性,一句話,連內存中都還沒的東西你怎么可以訪問呢
double[][] m = new double[x][z];
for(;i xz; i++)
{
m[i/z][i%z] = 0;
for(int j = 0; j y; j++)
{
m[i/z][i%z] += m1[i/z][j] + m2[j][i%z];
}
}
這里有很明顯的錯誤。
double[][] m = new double[x][z];
這是new一個二維數組,而每個一維數組都要new的。
這樣改,你領悟一下
double[][] m = new double[x][z];
for(;i xz; i++)
{
m[i] = new double[z];//加如的地方。
m[i/z][i%z] = 0;
for(int j = 0; j y; j++)
{
m[i/z][i%z] += m1[i/z][j] + m2[j][i%z];
}
}
不可達代碼就是按照你寫的程序邏輯,在什么情況下都運行不到那段代碼。
比如
if (false) {
...
}
這個判斷句的條件固定為“假”,括號里面的部分就完全跑不進去了。