网页
资讯
视频
图片
知道
文库
贴吧
地图
采购
进入贴吧
全吧搜索
吧内搜索
搜贴
搜人
进吧
搜标签
日
一
二
三
四
五
六
签到排名:今日本吧第
个签到,
本吧因你更精彩,明天继续来努力!
本吧签到人数:0
一键签到
可签
7
级以上的吧
50
个
一键签到
本月漏签
0
次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行
补签
。
连续签到:
天 累计签到:
天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
05月09日
漏签
0
天
java吧
关注:
1,302,546
贴子:
12,855,149
看贴
图片
吧主推荐
视频
游戏
首页
上一页
1
2
3
下一页
尾页
122
回复贴,共
3
页
,跳到
页
确定
<返回java吧
>0< 加载中...
回复:【驳】数组不是个类
只看楼主
收藏
回复
zzb12
淼淼淼淼
12
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
好吧我闲到蛋疼去翻了Java Language Specification……
4.3 里提到,引用类型分为类类型、接口类型、泛型参数类型和数组类型
4.3.1 里提到,一个对象是一个类的实例或者是一个数组
10 里提到,数组是对象,是动态分配的并可以赋值给Object类型的变量
10.1 里提到,Object, Cloneable和Serializable是数组类型的超类型
10.7 里提到,数组拥有public final的字段length,并且重写了Object里的clone方法
10.8 里提到,数组类型也抽象为Class对象来表示
结论大致就是数组不是类,至少不是我们传统认识的类。
现在我们可以开一个新贴讨论java.lang.Object是不是类了
IP属地:广西
16楼
2014-07-21 16:45
回复(18)
收起回复
疏樓龍宿步香塵
淼淼淼水
10
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
public class Main {
private String[] strs;
public static void main(String[] args) throws FileNotFoundException, IOException {
for(Field f : Main.class.getDeclaredFields()){
System.out.println(f.getType().getSuperclass());
}
}
}
17楼
2014-07-21 16:47
回复
收起回复
2026-05-09 18:20:21
广告
不感兴趣
开通SVIP免广告
夜轩浪
淼淼淼淼
12
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
Java 虚拟机中有三种引用类型:类类型(Class Types)、数组类型(Array Types)和
接口类型(Interface Types)。这些引用类型的值分别由类实例、数组实例和实现了某个接口
的类实例或数组实例动态创建。
根据虚拟机规范第7版 2.4节,类、数组、接口是被区分开来的,同属于引用类型。
但是数组的实例确实是对象。
在虚拟机规范这本书中,数组类型和类类型是区分开来的。
由此可见,数组确实不属于严格意义上的类类型。
但是在3.9节,数组中是这样描述的:
在 Java 虚拟机中,数组也使用对象来表示。数组由专门的指令集来创建和操作。newarray
指令用于创建元素类型为数值类型的数组。
明确指出了数组是使用对象来表示的,这也说了他为什么可以调用方法。
貌似在虚拟机规范中,除了基本数据类型,其他都被称作类。但是数组和严格意义上的类类型还是不同的,
总之,数组是类也不是类。·就这样吧
IP属地:浙江
18楼
2014-07-21 16:50
回复(3)
收起回复
XZ2b
淼沝
5
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
为啥纠结这些问题 类就是个oop思想里的抽象概念罢了 一个语言怎么实现数组 用类封装也好 直接底层实现也罢 都不是我们需要考虑的 另外 数组是数组 类是类 一个算是一种数据结构 一个是oop一些思想的体现 不要以为一个语言的一些暧昧的语言特性就把两者混为一谈了
IP属地:浙江
19楼
2014-07-21 17:21
回复(1)
收起回复
John丶Chan
淼淼淼沝
11
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
十五字十五字十五字十五字十五字
来自
Android客户端
20楼
2014-07-21 18:20
回复
收起回复
老衲法号劫色00
淼淼淼沝
11
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
一群大神冒出来了,吓死我了,
,总的来说,我学到的还蛮多的
,首先,数组是数组类型,不是一个类,是一种定义内存分配的一个存放数据的类型,length是数组的一个固有成员,还有一个疑问是,数组对象怎么instanceof object的值是true,既然是三个类型,接口instanceof object是false
IP属地:上海
来自
Android客户端
21楼
2014-07-21 18:44
回复(4)
收起回复
yizhuguyue0
淼淼淼
9
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
看了java jvm设计原理,你就知道为什么数组是一个类了
22楼
2014-07-21 19:06
回复
收起回复
霍壮宁
淼淼淼淼
12
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
楼主的手册是下载回来的还是网页直接看的
来自
Android客户端
23楼
2014-07-21 20:13
回复(1)
收起回复
2026-05-09 18:14:21
广告
不感兴趣
开通SVIP免广告
等待361
淼淼淼淼
12
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
IP属地:北京
来自
WindowsPhone客户端
25楼
2014-07-21 21:14
回复
收起回复
泥蝶
淼淼淼沝
11
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
int, double都是类型,有相应的class,系统也提供了对应的装箱类,但要注意的是它的底层实现操作都是native的,跟面向对象无关,是基于c或者汇编实现的,反射也是这样。所以可以取到class的是任何类型而不是类。而Class类的本身操作也都是native的,所以从这个意义上来说Object类本身也不是一个纯面向对象的类。
或者楼主跟Java的客服打个电话问问呗
?
IP属地:上海
27楼
2014-07-21 21:40
回复(3)
收起回复
sayji
淼淼淼淼
12
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
你认为他是他就是,认为他不是就不是。就如数据库中的一个表,你认为他是个类它就成了一个,认为他就是有行有列的表,那它就是一张表。
对于机器而言,根本就不知道什么类什么对象,甚至不知道0101(二进制数字也是一种抽象,数字本身就是一种抽象),机器只知道高电平低电平什么的--甚至高低电平这些概念,
也是人类自己为了自己理解方便而抽象出来的。反正概念的东西都是人类自己弄出来的,而这些人觉得方便,而对于一些人而言就是种困扰--比如LZ
——我喂自己袋盐
>>Opera/9.80 (Windows NT 6.1; WOW64; Edition IBIS) Presto/2.12.388 Version/12.17
28楼
2014-07-21 22:16
回复(4)
收起回复
第二旗舰
淼水
4
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
不应该是个结构么
IP属地:北京
29楼
2014-07-21 23:33
回复
收起回复
陈晨85241
淼淼沝
8
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
废话让你说完了 java基础你是怎么学的?
java 数据类型分类有两种
1、简单数据类型,也叫基本数据类型
2、引用数据类型 也分两个 叫做数组和类
再者 从命名规则就能看出 类是大写 数组 根本就没有特定的。
而且内存的存储也不一样 数据本就不是类
纠结个屁啊 只不过是一些特性比较像类而已
IP属地:辽宁
30楼
2014-07-22 00:00
回复(1)
收起回复
登录百度账号
扫二维码下载贴吧客户端
下载贴吧APP
看高清直播、视频!
贴吧热议榜
1
中国海军或将迎来核航母
2667180
2
能抗压!小钰直播间回应恶评
2246804
3
瓶皇开团辣仙:见硬茬秒溜
1759800
4
妥协了?韩国参加电竞国家杯
1461402
5
4只虾1035元,投诉者删评销号
1194336
6
DeepSeek睁眼,开放识图模式
1156450
7
Switch涨价1万,等等党输麻
994920
8
尘白bug扎堆,人物全和谐
936997
9
惊悚一幕!日本街头惊现丧尸
814968
10
萌战正式开打,吧友投票赢月卡
771603
贴吧页面意见反馈
违规贴吧举报反馈通道
贴吧违规信息处理公示