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的基本数据类型 1. 整数类型:包括`int`(32位...
判断对象类型,目前只有基础变量,和String变量,以后会更好的完善这小功能
Java基本类型包装类概述与Integer类、Character类用法分析 Java基本类型包装类概述: Java基本类型包装类是将基本数据类型封装成对象的,以便在对象中定义更多的功能方法来操作该数据。常用的操作之一是用于基本...
#### 四、基本类型包装类常用方法 Java为每种基本数据类型都提供了对应的包装类,这些包装类不仅封装了基本类型的值,还提供了许多有用的静态方法。 1. **valueOf() 方法**:将字符串转换为相应类型的对象。 2. **...
此外,Arrays类可以用于排序和填充数组,包括对象数组和基本类型数组。在处理Map时,MapUtils类(如在Apache Commons Collections中)提供了创建预定义大小的Map,或者检查Map是否为空等便捷功能。 对于日期和时间...
以Math类和基本类型的包装类实验为例,实验程序`MathTest.java`展示了如何使用Math类进行数学运算,以及如何使用包装类进行基本数据类型的处理。以下是对实验程序的详细分析: 1. **输入数据**:首先,程序通过`...
包装类解决了Java语言中基本类型与对象之间转换的不便,使得基本类型的数据可以像对象一样进行操作。每个基本数据类型都有一个对应的包装类,这些包装类都位于`java.lang`包中。 1. 包装类与基本数据类型的对应关系...
Java提供了六个包装类用于表示简单数据类型:`Boolean`、`Character`、`Integer`、`Long`、`Float`和`Double`。这些包装类可以作为中介来进行类型转换。例如,将`float`类型的变量转换为`double`类型: ```java ...
这些包装类提供了许多实用的方法,如将基本类型转换为字符串,比较数值,以及提供常量(如`MIN_VALUE`和`MAX_VALUE`)来获取每个数据类型的取值范围。 在实际编程中,理解并灵活运用这些基本数据类型是提高代码质量...
### Java基本数据类型及其...这些封装类不仅提供了一种将基本类型值包装为对象的方式,而且还提供了许多方便的方法来处理这些数据类型,使开发者能够更加高效地编写代码。理解这些基本概念对于学习 Java 编程至关重要。
为了解决这个问题,Java 提供了包装类,它们可以将基本数据类型封装成对象,从而使得基本数据类型也可以作为对象使用。 6.2.2 JAVA 的 8 种包装类 Java 中提供了 8 种包装类,它们分别是 Boolean、Byte、Short、...
- **包装类的toString()方法**:对于所有基本数据类型的包装类(Integer, Double, etc.),都有`toString()`方法: ```java int num = 123; String strNum = Integer.toString(num); ``` - **StringBuilder或...
Long类型是long类型的包装类,而Byte和Float也是基本类型的包装类。 Long类型和long类型的区别 Long类型是一个对象类型,它是long类型的包装类。Long类型可以通过new关键字创建,而long类型是基本数据类型,不能...
- `java包装器`将原始类型与对应的类关联,如`Integer`对应`int`。 - `java反射机制`允许程序在运行时检查和操作类的信息。 - `java泛型`增加了类型安全性,允许在容器中存储特定类型的对象。 - `java集合`涵盖了...
总之,Java的包装类提供了基本类型与对象之间的桥梁,使得基本类型可以参与更多的面向对象操作,如方法调用、泛型、集合操作等,同时方便了基本类型与字符串和其他对象之间的转换。理解并熟练使用包装类是Java编程中...
本文主要讲解Java中常用的类,包括字符串类String、StringBuffer、基本类型对应的8个包装类、日期相关类、数字相关类、Random类和Enum类。下面是对每个类的详细解释: 一、String类 String类是不可变类,也就是说...