wrapped type与primitive type 包装类型与原始类型

本文详细介绍了Java中基本类型与包装类的区别,包括它们的存储方式、使用场景及性能差异。阐述了基本类型存储在栈中,而包装类创建的对象存储在堆中,并解释了为何容器如ArrayList和HashMap只能存放对象。

包装类是对象,拥有方法和字段.对象的调用都是通过引用对象的地址 ;

包装类创建的是对象,拥有方法和字段.对象的调用都是通过引用对象的地址 ;

基本类型不是.另外一个区别是,包装类是引用传递 而基本类型是值传递 ;

变量的值存储在栈里,而对象存储在堆里,相比而言,堆栈更高效,这也是java保留基本类型的原因。包装类创建的对象,可以使用api提供的一些有用的方法。更为强大。

int 是基本类型,直接存数值 
Integer是类,产生对象时用一个引用指向这个对象 
Java把内存划分成两种:一种是栈内存,另一种是堆内存 
在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配 
而实际的对象是在存储堆内存中 
即 
int i = 5;//直接在栈中分配空间 
Integer i = new Integr(5);//对象是在堆内存中,而i(引用变量)是在栈内存中 
在堆中分配的内存,由java虚拟机的自动垃圾回收器来管理. 
因为在堆中分配空间所需的时间远大于从栈中分配存储空间,所以JAVA速度比C 慢
当需要往ArrayList,HashMap中放东西时,像int,double这种基本类型是放不进去的,因为容器都是装object的,这是就需要这些基本类型的外覆类了。Java中每种基本类型都有相应的外覆类。

2025-09-19 15:19:52,162 - java.lang.NullPointerException java.lang.RuntimeException: java.lang.NullPointerException at org.jeecg.modules.domianmap.domain.util.MapLevelHelper.invoke(MapLevelHelper.java:47) ~[classes/:na] at org.jeecg.modules.domianmap.domain.util.MapLevelHelper.checkLevelExists(MapLevelHelper.java:103) ~[classes/:na] at org.jeecg.modules.domianmap.trafficLight.controller.MapTrafficLightController.add(MapTrafficLightController.java:134) ~[classes/:na] at org.jeecg.modules.domianmap.trafficLight.controller.MapTrafficLightController$$FastClassBySpringCGLIB$$f07b27d.invoke(<generated>) ~[classes/:na] at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) ~[spring-core-5.2.10.RELEASE.jar:5.2.10.RELEASE] at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:771) ~[spring-aop-5.2.10.RELEASE.jar:5.2.10.RELEASE] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-5.2.10.RELEASE.jar:5.2.10.RELEASE] at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:749) ~[spring-aop-5.2.10.RELEASE.jar:5.2.10.RELEASE] at org.springframework.aop.framework.adapter.AfterReturningAdviceInterceptor.invoke(AfterReturningAdviceInterceptor.java:55) ~[spring-aop-5.2.10.RELEASE.jar:5.2.10.RELEASE] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175) ~[spring-aop-5.2.10.RELEASE.jar:5.2.10.RELEASE] at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:749) ~[spring-aop-5.2.10.RELEASE.jar:5.2.10.RELEASE] at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:88) ~[spring-aop-5.2.10.RELEASE.jar:5.2.10.RELEASE] at org.jeecg.common.aspect.DictAspect.doAround(DictAspect.java:61) ~[classes/:na] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_462] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_462] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_462] at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_462] at org.springframework.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:282) ~[spring-core-5.2.10.RELEASE.jar:5.2.10.RELEASE] at org.springframework.cloud.context.scope.GenericScope$LockedScopedProxyFactoryBean.invoke(GenericScope.java:499) ~[spring-cloud-context-2.2.5.RELEASE.jar:2.2.5.RELEASE] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.2.10.RELEASE.jar:5.2.10.RELEASE] at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:749) ~[spring-aop-5.2.10.RELEASE.jar:5.2.10.RELEASE] at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:691) ~[spring-aop-5.2.10.RELEASE.jar:5.2.10.RELEASE] at org.jeecg.common.aspect.DictAspect$$EnhancerBySpringCGLIB$$216d4a35.doAround(<generated>) ~[classes/:na] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_462] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_462] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_462] at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_462] at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:644) ~[spring-aop-5.2.10.RELEASE.jar:5.2.10.RELEASE] at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:633) ~[spring-aop-5.2.10.RELEASE.jar:5.2.10.RELEASE] at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:70) ~[spring-aop-5.2.10.RELEASE.jar:5.2.10.RELEASE] at org.springframewor 帮我看一下这个问题
最新发布
09-20
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值