A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© zhaihao 中级黑马   /  2014-9-20 20:29  /  1095 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

public class Test {
        public static void main(String[] args) {
                int[] a1=new int[3];
                int[] a2=new int[4];
                int[][] a3=new int[2][3];
                String[] a4=new String[3];
                System.out.println(a1.getClass()== a2.getClass());//true
                System.out.println(a1.getClass()== a4.getClass());//false
                System.out.println(a1.getClass()== a3.getClass());//false

                System.out.println(a1.getClass().getName());//[I

        }

}
为什么会报错????

5 个回复

倒序浏览
上图、、、、、、、、、、、、、、

QQ图片20140920202932.jpg (113.61 KB, 下载次数: 0)

QQ图片20140920202932.jpg
回复 使用道具 举报
zhaihao 发表于 2014-9-20 20:30
上图、、、、、、、、、、、、、、

同类型、同维数的数组的字节码是同一份,要同时满足这两个条件才能说明两个数组类型的字节码相同
回复 使用道具 举报
贾浩田 发表于 2014-9-20 21:05
同类型、同维数的数组的字节码是同一份,要同时满足这两个条件才能说明两个数组类型的字节码相同 ...

你说的我知道,我想问的是,我的代码编译的时候就报错了,这是什么情况
回复 使用道具 举报
zhaihao 发表于 2014-9-20 22:53
你说的我知道,我想问的是,我的代码编译的时候就报错了,这是什么情况 ...

这个。。。只能说编译器比较强大吧
回复 使用道具 举报
一楼正解,另外关于编译与运行可以参考一下我的回复(非原创):
当你一段代码写完之后一般会经历两个阶段:
1、编译阶段
使用指令:javac
这个阶段,Java编译器(也就是JVM:java虚拟机,后称JVM),首先把你的代码加载完成,然后开始检查语法。如果出现语法错误则提示错误。这个阶段提示的错误我们一般称为编译器错误!
2、运行阶段
使用指令:java
这个阶段,JVM将执行java代码,这个时期出现的错误我们一般称为运行期错误!

编译器错误一般都是语法错误!运行期错误一般都是程序内部(或者程序逻辑)错误!
你说的这个错误就是语法错误!
java规定了在静态方法中不能调用非静态的方法。这个错误已经被整合到了语法错误里面!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马