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
<span class="hljs-built_in">String</span>[][] s4 = {{<span class="hljs-string">"1"</span>,<span class="hljs-string">"2"</span>}};
Class zz = s4.getClass();
System.out.println(s2.getClass() == zz);<span class="hljs-comment">//false</span>
Class zz1 = i.getClass();
System.out.println(s2.getClass() == zz1);<span class="hljs-comment">//false </span>

}

</pre></code>

原文地址:https://blog.csdn.net/spy19881201/article/details/23995267

Java中9大内置基本数据类型Class实例和数组的Class实例的更多相关文章

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

    https://www.jianshu.com/p/58976c8bf1e1

  2. Java中的8种基本数据类型

    JAVA中的8种基本数据类型:byte short int long float double char boolean 特别说明: 1)char类型占2个字节,可以表示汉字.汉字和英文字符都占2个字 ...

  3. java 入门之八大内置基本类型

    本文采用eclipse 工具演示,如果您对eclipse 工具不了解,请先学习下 eclipse 工具的使用,这个里面只是简单的介绍下输出和注释: 安装完成eclipse 以后,双击进入 后一次点击 ...

  4. JSP中9大内置对象类型

    JSP中九大内置对象为: request            请求对象                 类型 javax.servlet.ServletRequest        作用域 Requ ...

  5. core java 1~4(HelloWorld & 标识符|关键字|数据类型 & 表达式|流程控制 & 数组)

    MODULE 1 Java的编译和运行----------------------------编译:javac -d bin src\HelloWorld.java -d:指定编译后的class 文件 ...

  6. Java中方法的定义与使用,以及对数组的初步了解。

    方法 方法的含义 定义: 方法就是用来完成解决某件事情或实现某个功能的办法. 方法实现的过程中,会包含很多条语句用于完成某些有意义的功能——通常是处理文本,控制输入或计算数值. 我们可以通过在程序代码 ...

  7. java中static、this、super、final用途、用法及实例

    一.static 请先看下面这段程序: public class Hello { public static void main(String[] args){ //(1) System.out.pr ...

  8. Java中存储金额用什么数据类型?

    转自:https://blog.csdn.net/u011277123/article/details/70214630 很早之前, 记得一次面试, 面试官问存储金钱用什么数据类型? 当时只知道8种数 ...

  9. java中 引用传递、值传递的理解(数组,自定义类,基本数据类型,String类)

    代码部分: public static void main(String[] args) { testInt(); testString(); testArray(); testX(); } publ ...

随机推荐

  1. IDEA工具下Mybaties框架快速入门程序

    本篇文章介绍在IDEA工具下mybatis快速入门程序分为以下五步 ​ 1 添加依赖包 ​ 2 编写pojo对象 ​ 3 编写映射文件 ​ 4 编写核心配置文件 ​ 5 测试框架 详细如下 建立Mod ...

  2. css属性大全(基础篇)

      什么是CSS? CSS全称为Cascading Style Sheets,中文翻译为“层叠样式表”,简称CSS样式表,所以称之为层叠样式表(Cascading Stylesheet)简称CSS.在 ...

  3. composer(作曲家)安装php-ml

    刚开始我用的是up5.6版本php命令安装composer 后来使用composer时发现命令行会提示php版本太低 于是我下载了wamp,使用7.1版本的php重新安装了composer,因为php ...

  4. Flume详解

    Flume是一种分布式,可靠且可用的服务,用于有效地收集,聚合和移动大量日志数据.它具有基于流数据流的简单灵活的架构.它具有可靠的可靠性机制和许多故障转移和恢复机制,具有强大的容错性.它使用简单的可扩 ...

  5. [JZOJ 5804] 简单的序列

    思路: 似乎和某次培训的题很像啊... 将左括号记为1,右括号记为-1,那么最终一定加和为0,然后再求最小前缀和. 用dp解决即可. #include <bits/stdc++.h> us ...

  6. Java 并发总结(三)

    锁优化及注意事项 有助于提高锁的性能 减小所持有时间:例如不要对方法直接加锁,而是在方法中对具体访问临界资源的代码加锁 减小锁粒度:如ConcurrentHashMap 用读写锁代替独占锁 锁分离:如 ...

  7. axios全局拦截响应

    在系统开发过程中,若遇到长时间未操作,则需要将页面跳转到登录页面.因为现在都是前后端分离的开发模式,路由跳转都交给前端,而后端只返回一个报错信息,例如"errorMsg":&quo ...

  8. 新工具Scapy

    新工具 Scapy 1.环境: 命令: pip install scapy 启动终端: 看这花里胡哨的界面那就成功啦! 注意上图中的INFO信息,如果没有安装可选包,部分功能不可用,在需要的时候单独安 ...

  9. java oop遍历List和Map的几种方法

    一.list的遍历 import java.util.*; public class ListTest { public static void main(String[] args) { List& ...

  10. 2018-10-8-Win10-使用-GHO-安装出现-UWP-软件打开闪退-应用商店无法安装软件

    title author date CreateTime categories Win10 使用 GHO 安装出现 UWP 软件打开闪退 应用商店无法安装软件 lindexi 2018-10-8 18 ...