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());//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

原文地址:https://www.cnblogs.com/jpfss/p/11382043.html

时间: 2024-11-08 09:14:42

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

Java Web 九大内置对象(一)

在Jsp 中一共定义了九个内置对象,分别为: *request            HttpServletRequest; *response          HttpServletResponse; *session             HttpSession; page                  This(本jsp页面): *application        ServletContext; config                 ServletConfig; exc

Java——JSP/九大内置对象/四大域对象

一.JSP:(java service pages):是JavaWeb服务器端的动态资源: //它与html页面的作用是相同的,显示数据和获取数据: 二.JSP代码组成:html + Java脚本(代码片段) + JSP动态标签: 三.JSP三大指令:<%@ 指令 属性名="值" %> 1.page:<%@ page language="java" contentType="text/html; charset=UTF-8" p

开发java中常用的几种数据类型

JAVA中常用的数据结构(java.util. 中) java中有几种常用的数据结构,主要分为Collection和map两个主要接口(接口只提供方法,并不提供实现),而程序中最终使用的数据结构是继承自这些接口的数据结构类.其主要的关系(继承关系)有:  (----详细参见java api文档!) Collection---->Collections                                                                          

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

MODULE 1 Java的编译和运行----------------------------编译:javac -d bin src\HelloWorld.java -d:指定编译后的class 文件的存放路径 若在此 .java文件的类中,调用了另一个文件的类,则需先编译被调用的类,然后输入 javac -d bin -cp bin src\HelloWorld.java 或者编译所有 .java文件 javac -d bin src\*.java 运行:java -cp bin com.br

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

方法 方法的含义 定义: 方法就是用来完成解决某件事情或实现某个功能的办法. 方法实现的过程中,会包含很多条语句用于完成某些有意义的功能——通常是处理文本,控制输入或计算数值. 我们可以通过在程序代码中引用方法名称和所需的参数,实现在该程序中执行(或称调用)该方法.方法,一般都有一个返回值,用来作为事情的处理结果. 方法的定义 其格式为: /*方法的定义如下修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2,......){执行语句………return 返回值;}*/ 示例: //

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

转自:https://www.cnblogs.com/heqiyoujing/p/11221497.html Java面试高频问题:你会用什么数据类型来存储金额? 如果这个时候你回答float,double那么恭喜你,又可以省出时间来准备别的公司的面试了,当面试官说float,和double不行的时候你可能还一脸懵逼,为啥不行?那么请看下面的例子: public class Test { public static void main(String[] args) { double a=1; d

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

Java面试高频问题:你会用什么数据类型来存储金额? 如果这个时候你回答float,double那么恭喜你,又可以省出时间来准备别的公司的面试了,当面试官说float,和double不行的时候你可能还一脸懵逼,为啥不行?那么请看下面的例子: public class Test { public static void main(String[] args) { double a=1; double b=0.9; double c=a-b; System.out.println(c); } } 结

java中的八种基本数据类型

    整数的数据类型: byte(字节)        8位(bit)    2 ^ 8 = 256        -128 ~ 127        short(短整形)    16bit        2 ^ 16 = 65536        int(整形)        32bit        2 ^ 32        long(长整形)    64bit        2 ^ 64 注意:如果一个整数没有加上任何的标识的时候,那么默认是int类型的数据.        如果需要把

Java 中的 ==, equals 与 hashCode 的区别与联系

一.概述 1.概念 == : 该操作符生成的是一个boolean结果,它计算的是操作数的值之间的关系 equals : Object 的 实例方法,比较两个对象的content是否相同 hashCode : Object 的 native方法 , 获取对象的哈希值,用于确定该对象在哈希表中的索引位置,它实际上是一个int型整数 二.关系操作符 == 1.操作数的值 基本数据类型变量 在Java中有八种基本数据类型: 浮点型:float(4 byte), double(8 byte) 整型:byt