营收|藏在Java数组的背后,你可能忽略的知识点( 四 )
在Java语言层面上 , arrS
是数组也是一个对象那么它的类型应该是String[
, 这样说是合理的 。 但是在JVM
中 , 他的类型为[java.lang.String
。 顺便说一句普通的类在JVM里的类型为 包名+类名 , 也就是全限定名 。 同一个类型在Java
语言中和在虚拟机中的表示可能是不一样的 。
Java中数组的继承关系上面已经验证了 , 数组是对象 , 也就是说可以以操作对象的方式来操作数组 。 并且数组在虚拟机中有它特别的类型 。 既然是对象 , 遵循Java语言中的规则 -- Object是上帝 ,也就是说所有类的顶层父类都是Object 。 数组的顶层父类也必须是Object , 这就说明数组对象可以向上直接转型到Object , 也可以向下强制类型转换 , 也可以使用instanceof关键字做类型判定 。这一切都和普通对象一样 。 如下代码所示:
【营收|藏在Java数组的背后,你可能忽略的知识点】//1\t\t在test1()中已经测试得到以下结论: 数组也是对象 数组的顶层父类是Object 所以可以向上转型int[
a = new int[8
;
Object obj = a ; //数组的父类也是Object可以将a向上转型到Object//2\t\t那么能向下转型吗?int[
b = (int[
)obj; //可以进行向下转型//3\t\t能使用instanceof关键字判定吗?if(obj instanceof int[
){ //可以用instanceof关键字进行类型判定
System.out.println(\"obj的真实类型是int[
\");
推荐阅读
- Java|淘宝商家要小心了!取消的“中差评”体系又回来啦!
- 少年帮|不畏惧微信、支付宝,一年营收30000亿!中国最另类支付巨头
- javascript|游戏开发之旅-JavaScript重新介绍
- Java|java多线程并发小demo
- Java|java程序猿如何才能走远,怎么做自己的职业规划
- 趣味科技秀|华为“功不可没”,超120亿美元营收!台积电传来好消息
- 营收|深圳公司实力大比拼:世界500强企业有八家,华为在当地排老二
- 蚂蚁花呗|血亏!阿里P8轻易把总结了近一年的java高级特性笔记送人了
- 百度|Java高级进阶多线程学习之路(七)ThreadLocal
- 科创板日报|40 亿欧元 交付 10 台 EUV 设备 最新规格拟明年中期发货,ASML:三季度营收