前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。

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实例相关推荐

  1. Java中9大内置基本数据类型Class实例和数组的Class实例(转载)

    https://www.jianshu.com/p/58976c8bf1e1 转载于:https://www.cnblogs.com/sunlightstoyou/p/10312264.html

  2. java 字符串是对象吗_解析Java中的String对象的数据类型

    解析Java中的String对象的数据类型 2007-06-06 eNet&Ciweek 1. 首先String不属于8种基本数据类型,String是一个对象. 因为对象的默认值是null,所 ...

  3. JAVA中如何将大数字或字符串放进数组

    JAVA中如何将大数字或字符串放进数组 在JAVA学习过程中字符串.数组.数字之间的 的转换经常用到,记录一些非常基础的转换. 1.将数字转换为字符串:String str = String.valu ...

  4. Java Web 九大内置对象(一)

    在Jsp 中一共定义了九个内置对象,分别为: *request            HttpServletRequest; *response          HttpServletRespons ...

  5. java中标识符,关键字,数据类型

    什么是标识符? 在java语言中用来给一个类,变量或方法命名的符号 标识符的命名规则 标识符可以由字母.数字.下划线(_).美元符($)组成,但不能包含 @.%.空格等其它特殊字符,不能以数字开头. ...

  6. 6.Java中的变量(定义)和数据类型(划分)

    1.变量概述 变量:在程序的执行过程中,其值改变的量! 2.必须有一个限定,规定数据类型 (1) 基本数据类型   ,  分为4类八种                                 ...

  7. Java中的八种基本数据类型

    Java中主要有八种基本数据类型:byte.short.int.long.float.double.boolean.char. 各种数据类型作用: 1.byte: 8位.有符号的以二进制补码表示的整数 ...

  8. java中的八种原始数据类型

    java中的的原始数据类型可分为4大类:整数型(byte,short,int,long),浮点型(float,double)布尔型(boolean)字符型(char). 首先我们先要知道它们的各自取值 ...

  9. 在Java中使用分隔符(拆分的对立面)连接数组元素的快速简便方法

    本文翻译自:A quick and easy way to join array elements with a separator (the opposite of split) in Java [ ...

最新文章

  1. mysql data文件夹下的ibdata1 文件作用
  2. Struts2中的OGNL详解
  3. 使用JMeter创建数据库(Mysql)测试
  4. eslint 中文解释
  5. STM32移植freemodbusRTU(hal库)从机
  6. vs 下如何调试js
  7. gulp mysql_关于MySQL索引的一点小见解
  8. Eclipse调试时Application XXX is waiting for the debugger to attach的提示
  9. qnap自带有mysql吗_关于威联通QNAP NAS应用—Container Station 容器套件
  10. Android应用程序组件Content Provider的启动过程源代码分析(5)
  11. 深入.NET编程 第十一章 影院售票系统
  12. 找不到/boot目录grub命令行启动以及/boot分区移动
  13. mcgscom口针脚定义_触摸屏制作的速成篇(MCGS入门篇)
  14. 转:杰克·韦尔奇:我的生命应该如何度过?
  15. Activity毛玻璃背景效果
  16. 《2019腾讯区块链白皮书》全文发布,13次提及Facebook加密项目Libra(附下载)
  17. 深度强化学习:从像素玩Pong!
  18. 97年黑客设计大赛中冠军作品
  19. Pascal VOC数据集 下载 百度云
  20. [2019.3.17]BZOJ1109 [POI2007]堆积木Klo

热门文章

  1. java 酒店预定 app_Android应用源码酒店在线预定app项目全套
  2. 怎么查询共享使用人_企业微信微盘怎么共享使用?企业微信如何设置微盘权限?...
  3. 一些网站github等无法连接服务器的解决办法
  4. 【JS 逆向百例】W店UA,OB反混淆,抓包替换CORS跨域错误分析
  5. php跨域session共享,PHP中利用COOKIE与SESSION联合实现SESSION跨域
  6. 【POJ - 3026】Borg Maze(bfs预处理 + 最小生成树,建图)
  7. 【CodeForces - 205B 】Little Elephant and Sorting (思维)
  8. 【CF#801 A.】 Vicious Keyboard(字符串查找,水题)
  9. mysql innodb 全表锁,Mysql InnoDB行锁及表锁分享
  10. mnesia mysql性能,Mnesia数据库的存储容量是多少?