`

Java基本类型与包装类判断

    博客分类:
  • Java
 
阅读更多
public class Test{
 public static void main(String[] args) throws Exception {
  System.out.println((char)65);
        System.out.println(isWrapClass(Long.class));
        System.out.println(isWrapClass(Integer.class));
        System.out.println(isWrapClass(String.class)); 
        System.out.println(isWrapClass(Test.class));
    } 

    public static boolean isWrapClass(Class clz) { 
        try { 
           return ((Class) clz.getField("TYPE").get(null)).isPrimitive();
        } catch (Exception e) { 
            return false; 
        } 
    } 
} 

 

Java的所有类总称Class

基本类型:

Java的基本类型有八种:int, double, float, long, short, boolean, byte, char, void.

基本类型属于Class的一个子集。

因此:

.isPrimitive()是用来判断是否是基本类型的:void.isPrimitive() //true;

.class用来返回该类的Class对象的实例:int.class == intclass //基本类型

                                     int.class.isPrimitive //true

                                     Integer.class == Integer //包装类

                                     Integer.class.isPrimitive //false

.TYPE是返回基本类型的Class实例,所以:int.class == Integer.TYPE //true;

除了int Integer,类似的有 float Float; double Double; string String等。

基本类存储在栈中,包装类村住在堆中,栈是LIFO(后进先出),基本类的存取速度更快。

JAVA 虚机自动完成基本类与包装类的转换

基本类型的包装类都采用final修饰方法,因此无法继承它们扩展的新类,也无法重写它们的方法。

包装类:

包装类是基本类的扩展

int i=2, Integer i = new Integer(2); 其实这个过程是由自动转换的,定义了int i=2就不用关心将其转换为包装类的过程。这就是为什么基本类型不需要new,例如 int i = new int() i =2;是多余的。

此外,HashMap ArrayList等不能将基本类加入其中,而只能加入包装类。一个典型的实例:

Map<int, Object> testMap = new HashMap<int, Object>();就是错误的

而应该把int换成Integer。

 

最后,如何判断一个对象所属的类型:

常见的一个典型错误是 object.getClass.isPrimitive()

许多人指望靠此判断object是不是一个数字或者布尔。其实这样返回的是该对象的类型,如java.lang.double,而非类型的基本类型,因此是错误的。

 

正确的步骤是:

 

object instanceof String

Number

Boolean

Character

null

搞懂java的基本类型就不在会为判断对象而发愁。

分享到:
评论

相关推荐

    Java基本类型与包装类详细解析

    总结来说,Java的基本类型和包装类各有优势,基本类型适用于简单的数值计算和内存效率要求高的场景,而包装类则在处理对象和提供额外功能时更为便利。理解它们之间的区别和联系对于编写高质量的Java代码至关重要。

    Java基本数据类型与对应的包装类(动力节点java学院整理)

    这些包装类使得基本类型能够与面向对象的概念更好地融合,提供了更多的功能和便利。下面将详细介绍Java中的基本数据类型及其包装类,并探讨它们之间的异同。 一、Java的基本数据类型 1. 整数类型:包括`int`(32位...

    判断类型封装类

    判断对象类型,目前只有基础变量,和String变量,以后会更好的完善这小功能

    Java基本类型包装类概述与Integer类、Character类用法分析

    Java基本类型包装类概述与Integer类、Character类用法分析 Java基本类型包装类概述: Java基本类型包装类是将基本数据类型封装成对象的,以便在对象中定义更多的功能方法来操作该数据。常用的操作之一是用于基本...

    Java -核心类库 Object类常方法 Math类常用方法 System类常用方法 基本类型包装类常用方法等

    #### 四、基本类型包装类常用方法 Java为每种基本数据类型都提供了对应的包装类,这些包装类不仅封装了基本类型的值,还提供了许多有用的静态方法。 1. **valueOf() 方法**:将字符串转换为相应类型的对象。 2. **...

    JAVA对象以及数据的工具类

    此外,Arrays类可以用于排序和填充数组,包括对象数组和基本类型数组。在处理Map时,MapUtils类(如在Apache Commons Collections中)提供了创建预定义大小的Map,或者检查Map是否为空等便捷功能。 对于日期和时间...

    java常用系统类库实验

    以Math类和基本类型的包装类实验为例,实验程序`MathTest.java`展示了如何使用Math类进行数学运算,以及如何使用包装类进行基本数据类型的处理。以下是对实验程序的详细分析: 1. **输入数据**:首先,程序通过`...

    java 包装类发给的发广告豆干

    包装类解决了Java语言中基本类型与对象之间转换的不便,使得基本类型的数据可以像对象一样进行操作。每个基本数据类型都有一个对应的包装类,这些包装类都位于`java.lang`包中。 1. 包装类与基本数据类型的对应关系...

    JAVA数据类型转换.pdf

    Java提供了六个包装类用于表示简单数据类型:`Boolean`、`Character`、`Integer`、`Long`、`Float`和`Double`。这些包装类可以作为中介来进行类型转换。例如,将`float`类型的变量转换为`double`类型: ```java ...

    Java 基本知识之基本数据类型

    这些包装类提供了许多实用的方法,如将基本类型转换为字符串,比较数值,以及提供常量(如`MIN_VALUE`和`MAX_VALUE`)来获取每个数据类型的取值范围。 在实际编程中,理解并灵活运用这些基本数据类型是提高代码质量...

    java程序设计项目化教程\技术文章\java基本数据类型

    ### Java基本数据类型及其...这些封装类不仅提供了一种将基本类型值包装为对象的方式,而且还提供了许多方便的方法来处理这些数据类型,使开发者能够更加高效地编写代码。理解这些基本概念对于学习 Java 编程至关重要。

    JAVAOOP重点笔记总结.docx

    为了解决这个问题,Java 提供了包装类,它们可以将基本数据类型封装成对象,从而使得基本数据类型也可以作为对象使用。 6.2.2 JAVA 的 8 种包装类 Java 中提供了 8 种包装类,它们分别是 Boolean、Byte、Short、...

    Java 字符串和基本数据类型之间的转换

    - **包装类的toString()方法**:对于所有基本数据类型的包装类(Integer, Double, etc.),都有`toString()`方法: ```java int num = 123; String strNum = Integer.toString(num); ``` - **StringBuilder或...

    Java中long类型与Long类型的区别和大小比较详解

    Long类型是long类型的包装类,而Byte和Float也是基本类型的包装类。 Long类型和long类型的区别 Long类型是一个对象类型,它是long类型的包装类。Long类型可以通过new关键字创建,而long类型是基本数据类型,不能...

    Java SE编程入门教程 java判断循环(共79页).ppt

    - `java包装器`将原始类型与对应的类关联,如`Integer`对应`int`。 - `java反射机制`允许程序在运行时检查和操作类的信息。 - `java泛型`增加了类型安全性,允许在容器中存储特定类型的对象。 - `java集合`涵盖了...

    Java你不知道的包装类

    总之,Java的包装类提供了基本类型与对象之间的桥梁,使得基本类型可以参与更多的面向对象操作,如方法调用、泛型、集合操作等,同时方便了基本类型与字符串和其他对象之间的转换。理解并熟练使用包装类是Java编程中...

    Java常用类讲义大全.docx

    本文主要讲解Java中常用的类,包括字符串类String、StringBuffer、基本类型对应的8个包装类、日期相关类、数字相关类、Random类和Enum类。下面是对每个类的详细解释: 一、String类 String类是不可变类,也就是说...

Global site tag (gtag.js) - Google Analytics