Java中9大内置基本数据类型Class实例和数组的Class实例
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java中9大内置基本数据类型Class实例和数组的Class实例,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2281字,纯文字阅读大概需要4分钟。
内容图文
![Java中9大内置基本数据类型Class实例和数组的Class实例](/upload/InfoBanner/zyjiaocheng/736/4b26f9b1e53046ffb3f664c632ecd81c.jpg)
1、Java中9大内置几本数据类型:
对于对象来说,可以直接使用对象.getClass()
或者Class.forName(className);
、类名.class
都可以获取Class实例.
但是我们的基本数据类型,就没有类的权限定名,也没有getClass
方法.
问题:那么如何使用Class
类来表示基本数据类型的Class
实例?
byte
,short
,int
,long
,char
,float
,double
,boolean
,void
关键字
上述8种类型和void
关键字,都有class
属性.
表示int
的Class对象: Class clz = int.class
;
表示boolean
的Class对象: Class clz = boolean.class
;
表示void
的Class对象:Class clz = void.class
;
所有的数据类型都有class属性,表示都是Class对象.
思考:
int
的包装类是Integer
Integer.class ==?== int.class
相等吗????
结果是false
,说明是两份字节码.
Integer 和int是同一种数据类型吗? 不是
但是在八大基本数据类型的包装类中都有一个常量:TYPE,
TYPE表示的是该包装类对应的基本数据类型的Class实例.
如:<pre><code>
Integer.TYPE----->int.class
Integer.TYPE==int.class;//YES
Integer.TYPE == Integer.class;//ERROR</pre></code>
摘自jdk源码:基本数据类型包装类TYPE
的实现。
/** The {@code Class} instance representing the primitive type
* {@code int}.
*
* @since JDK1.1
*/
public static final Class<Integer> TYPE = (Class<Integer>) Class.getPrimitiveClass("int");
/** Return the Virtual Machine's Class object for the named
* primitive type.
*/
static native Class getPrimitiveClass(String name);
2、数组类型的Class实例
每个数组属于被映射为 Class 对象的一个类,所有具有相同元素类型和维数的数组都共享该 Class 对象(摘自JDK原话)。
数组的Class实例:
String[] sArr1 ={"A","C"};
String[] sArr2 = {};
String[][] sArr = {};
int[] sArr = {};
表示数组的Class实例:
String[] sArr1 = {"A","C"};
Class clz = String[].class;
//此时clz表示就是一个String类型的一位数组类型
所有具有相同元素类型和维数的数组才共享同一份字节码(Class对象);
注意:和数组中的元素没有一点关系.
eg:<pre><code>
public static void main(String[] args) {
String[] s1 = {};
String[] s2 = {"A"};
String[] s3 = {"A","b"};
int[] i ={};
System.out.println(s1.getClass() == s2.getClass());//true
System.out.println(s1.getClass() == s3.getClass());//true
System.out.println(s2.getClass() == s3.getClass());//true
String[][] s4 = {{"1","2"}};
Class zz = s4.getClass();
System.out.println(s2.getClass() == zz);//false
Class zz1 = i.getClass();
System.out.println(s2.getClass() == zz1);//false
}
</pre></code>
原文地址:https://blog.csdn.net/spy19881201/article/details/23995267内容总结
以上是互联网集市为您收集整理的Java中9大内置基本数据类型Class实例和数组的Class实例全部内容,希望文章能够帮你解决Java中9大内置基本数据类型Class实例和数组的Class实例所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。