Java中9大内置基本数据类型Class实例和数组的Class实例
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。
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());//trueSystem.out.println(s1.getClass() == s3.getClass());//trueSystem.out.println(s2.getClass() == s3.getClass());//trueString[][] s4 = {{"1","2"}};Class zz = s4.getClass();System.out.println(s2.getClass() == zz);//falseClass zz1 = i.getClass();System.out.println(s2.getClass() == zz1);//false
}
作者:老勇
链接:https://www.jianshu.com/p/58976c8bf1e1
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
Java中9大内置基本数据类型Class实例和数组的Class实例相关推荐
- Java中9大内置基本数据类型Class实例和数组的Class实例(转载)
https://www.jianshu.com/p/58976c8bf1e1 转载于:https://www.cnblogs.com/sunlightstoyou/p/10312264.html
- java 字符串是对象吗_解析Java中的String对象的数据类型
解析Java中的String对象的数据类型 2007-06-06 eNet&Ciweek 1. 首先String不属于8种基本数据类型,String是一个对象. 因为对象的默认值是null,所 ...
- JAVA中如何将大数字或字符串放进数组
JAVA中如何将大数字或字符串放进数组 在JAVA学习过程中字符串.数组.数字之间的 的转换经常用到,记录一些非常基础的转换. 1.将数字转换为字符串:String str = String.valu ...
- Java Web 九大内置对象(一)
在Jsp 中一共定义了九个内置对象,分别为: *request HttpServletRequest; *response HttpServletRespons ...
- java中标识符,关键字,数据类型
什么是标识符? 在java语言中用来给一个类,变量或方法命名的符号 标识符的命名规则 标识符可以由字母.数字.下划线(_).美元符($)组成,但不能包含 @.%.空格等其它特殊字符,不能以数字开头. ...
- 6.Java中的变量(定义)和数据类型(划分)
1.变量概述 变量:在程序的执行过程中,其值改变的量! 2.必须有一个限定,规定数据类型 (1) 基本数据类型 , 分为4类八种 ...
- Java中的八种基本数据类型
Java中主要有八种基本数据类型:byte.short.int.long.float.double.boolean.char. 各种数据类型作用: 1.byte: 8位.有符号的以二进制补码表示的整数 ...
- java中的八种原始数据类型
java中的的原始数据类型可分为4大类:整数型(byte,short,int,long),浮点型(float,double)布尔型(boolean)字符型(char). 首先我们先要知道它们的各自取值 ...
- 在Java中使用分隔符(拆分的对立面)连接数组元素的快速简便方法
本文翻译自:A quick and easy way to join array elements with a separator (the opposite of split) in Java [ ...
最新文章
- mysql data文件夹下的ibdata1 文件作用
- Struts2中的OGNL详解
- 使用JMeter创建数据库(Mysql)测试
- eslint 中文解释
- STM32移植freemodbusRTU(hal库)从机
- vs 下如何调试js
- gulp mysql_关于MySQL索引的一点小见解
- Eclipse调试时Application XXX is waiting for the debugger to attach的提示
- qnap自带有mysql吗_关于威联通QNAP NAS应用—Container Station 容器套件
- Android应用程序组件Content Provider的启动过程源代码分析(5)
- 深入.NET编程 第十一章 影院售票系统
- 找不到/boot目录grub命令行启动以及/boot分区移动
- mcgscom口针脚定义_触摸屏制作的速成篇(MCGS入门篇)
- 转:杰克·韦尔奇:我的生命应该如何度过?
- Activity毛玻璃背景效果
- 《2019腾讯区块链白皮书》全文发布,13次提及Facebook加密项目Libra(附下载)
- 深度强化学习:从像素玩Pong!
- 97年黑客设计大赛中冠军作品
- Pascal VOC数据集 下载 百度云
- [2019.3.17]BZOJ1109 [POI2007]堆积木Klo
热门文章
- java 酒店预定 app_Android应用源码酒店在线预定app项目全套
- 怎么查询共享使用人_企业微信微盘怎么共享使用?企业微信如何设置微盘权限?...
- 一些网站github等无法连接服务器的解决办法
- 【JS 逆向百例】W店UA,OB反混淆,抓包替换CORS跨域错误分析
- php跨域session共享,PHP中利用COOKIE与SESSION联合实现SESSION跨域
- 【POJ - 3026】Borg Maze(bfs预处理 + 最小生成树,建图)
- 【CodeForces - 205B 】Little Elephant and Sorting (思维)
- 【CF#801 A.】 Vicious Keyboard(字符串查找,水题)
- mysql innodb 全表锁,Mysql InnoDB行锁及表锁分享
- mnesia mysql性能,Mnesia数据库的存储容量是多少?