例如,你为什么可以这样做:

int n = 9;

但不是:

Integer n = 9;

你可以做到:

Integer.parseInt("1");

但不是:

int.parseInt("1");

推荐答案

int是基元类型.类型为int的变量存储要表示的整数的实际二进制值.int.parseInt("1")没有意义,因为intnot个类,因此没有任何方法.

Integer是一个类,与Java语言中的任何其他类没有什么不同.类型Integer的变量存储referencesInteger个对象,就像任何其他引用(对象)类型一样.是从类Integer对静电方法parseInt的调用(请注意,此方法实际上返回的是int,而不是Integer).

更具体地说,Integer是具有类型int的单个字段的类.此类用于需要像对待任何其他对象一样对待int的情况,例如在泛型类型或需要为空的情况下.

请注意,Java中的每个基元类型都有一个等效的wrapper类:

  • byte等于Byte
  • short等于Short
  • int等于Integer
  • longLong
  • boolean等于Boolean
  • char等于Character
  • float等于Float
  • double等于Double

包装器类继承自对象类,而基元类则不继承.因此,它可以在具有对象引用或泛型的集合中使用.

自Java5以来,我们有了自动装箱,原语和包装类之间的转换是自动完成的.但是要小心,因为这可能会带来微妙的错误和性能问题;直言不讳地谈论皈依从来都没有坏处.

Java相关问答推荐

具有默认分支的JUnit代码覆盖率切换声明

Java 22模式匹配不适用于记录模式匹配.给出汇编问题

Java 21虚拟线程会解决转向react 式单线程框架的主要原因吗?

如何在Android上获取来电信息

@从类文件中删除JsonProperty—Java

从技术上讲,OPC UA客户端是否可以通过转发代理将请求通过 tunel 发送到OPC UA服务器?

根据对象和值的参数将映射<;T、值&>转换为列表<;T&>

DTO到实体,反之亦然,控制器和服务之间的哪一层应该处理转换?

Java 21 struct 化连接货币,需要可预知的子任务异常排序

如何让DTO接受空字符串字段,但如果它们不为空,则应用JPA验证?

GSON期间的Java类型擦除

将响应转换为带值的键

为什么Spring Boot项目无法为基于MySQL的CRUD应用程序找到从JPARepository接口扩展的ProductRepository?

在Oracle JDBC连接中,连接失效和身份验证失效是什么意思?

为什么StandardOpenOption.CREATE不能通过Ubuntu在中小企业上运行?

对从Spring Boot 3.1.5升级到3.2.0的方法的查询验证失败

如果执行@BeForeEach#repository.save(),则测试中的UnitTest最终UUID会发生更改

在权限列表中找不到我的应用程序

无法在Java中获取ElastiCache的AWS CloudWatch指标

始终使用Spring Boot连接mongodb上的测试数据库