十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
您好,提问者:
环县网站制作公司哪家好,找成都创新互联公司!从网页设计、网站建设、微信开发、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) {
...
}
这个判断句的条件固定为“假”,括号里面的部分就完全跑不进去了。