java类的问题-大神帮帮忙解决包装类的问题

问题描述

大神帮帮忙解决包装类的问题

包装类是不可变类,在构造了包装类对象后,不允许更改包装在其中的值。这句话究竟什么意思,问了几个人各种说法,例如 Integer it只是声明一个引用。“引用”这种东西唯一的作用就是指向某个具体的东西,放在这里来说,你初始化的时候,让这个引用指向了21这个值,然后在it=22这里又让他指向了22。就好比说“我刚才代表21,现在我代表22”,改变的是这个引用,跟跳槽啊变心的恋人啊抗战时的汉奸啊似的,但那些个值本身是不改变的,21还是21,22还是22. 不明白究竟里面存的是什么,存的引用地址吗?但是不是已经变了么?如果不是引用地址,那里面存的什么?来个明白的给说说。谢谢啦,最好有内存分配图

解决方案

引用好像是存在栈里面的,21,22这些是存在堆里面的。int a = 21; 是栈内的a指向堆内的21,。a = 22; 是本身a指向堆内的21现在变成指向堆内的22。但是堆里面还是有21和22的,只是21现在没被人引用而已,有可能会被system.gc()回收。<- 是我的理解,不一定对的

第一句“包装类是不可变类,在构造了包装类对象后,不允许更改包装在其中的值”的意思可能是
Integer a = Integer.valueOf(22); 把int-> Integer.
但是a的方法里面没有改变22这个值的方法,只有Value,floatValue,byteValue这些转换类型的方法。Integer还有很多静态方法,那些静态方法根本就不需要用到a,直接Integer.进制转换,Integer.parst(),Integer.ValueOf()就可以。

解决方案二:

Java的包装类,本质是对8中基础类型的数据的包装,所以本质只是让数值具有对象的属性,但是值是不可变的。同一个对象的值是固定的,除非你把它重新指向别的对象。不可变对象,具有很多胜过与其向对应的可变类型的优势。不可变类型更容易设计、实现和使用;它们出错的可能性更小,并且更加安全。本质就是一个对象,有一个数值属性。但是没有提供修改这个数值属性的方法,以确保它的不变特性。
包装类跟String类的本质是一样的,都是不可变的。

时间: 2024-12-03 19:14:07

java类的问题-大神帮帮忙解决包装类的问题的相关文章

有关更改项目的服务器地址类的问题大神帮帮忙

问题描述 有关更改项目的服务器地址类的问题大神帮帮忙 老板让我更改一下服务器地址,还有登录账号密码等, 刚接手项目,注释不全,怎么快速的查找这些在哪里更改啊.求助 解决方案 用ultraedit等工具对整个源码目录全文搜索

java-Java 新手问题 求大神帮帮忙

问题描述 Java 新手问题 求大神帮帮忙 大家好,我最近刚刚开始学习编程.?今天有个作业是让我们做一个类似于超速罚单的程序.?但是我怎么都显示不出来罚单. /** ?*?Lab3b?for?secction?3 ?*? ?*?@author?(Castiel) ?*?@version?(01-10-2015) ?*/ public?class?Driver { ????//?instance?variables?-?replace?the?example?below?with?your?own

按钮-自己参照书本写了一个Java Swing中的容器类入门程序设计,但是运行结果不对,求大神帮帮忙!

问题描述 自己参照书本写了一个Java Swing中的容器类入门程序设计,但是运行结果不对,求大神帮帮忙! /*题目是这样的:创建一个窗体在其中摆放两个内容面板对两个面板进行边框个性化设置.初始状态为第二个面板不可见,当单击第一个面板中的"打开"按钮时,第二个面板即可见:当单击第一个面板中的"关闭"按钮时,第二个面板消失. 以下是我结合书本写的代码,不知道为什么运行不了???*/import javax.swing.*;import java.awt.*;impor

关于java问题-求助java编写电影院座位!!!!急用,大神帮帮忙!

问题描述 求助java编写电影院座位!!!!急用,大神帮帮忙! 格式是5行7列,每个座位格式是(1-1)这样.谢谢大家了.大神们在哪里? 解决方案 写个2重循环,一个控制行,一个控制列 解决方案二: 写个类-俩属性-行和列-ToString方法返回1-1这样格式的字符串-值来自两个属性-有属性的set和get方法-搞定

数据库设计-有哪位大神帮我看下这个类图有啥错不?不太懂这个,毕业图需要画,哪位大神帮帮忙

问题描述 有哪位大神帮我看下这个类图有啥错不?不太懂这个,毕业图需要画,哪位大神帮帮忙 解决方案 这个根本不是类图,而是实体关系图(E-R图),建议你问问老师到底要什么图 解决方案二: 数据库表的设计图吗?还是?

遍历-Java字符串问题,求大神帮帮忙

问题描述 Java字符串问题,求大神帮帮忙 请用Java写这个程序,思考题: I am a student ! 定义一个方法: !student a am I 我有思路,但是我实现代码有困难,我的思路是:先将原字符串转换为字符数组,然后从头遍历,判断某个字符是否为空,一旦为空,将前面的存放到list集合中.然后继续从下一个开始遍历,然后判断是否为空,不为空继续向下遍历,然后继续遍历到为空的那个字符,然后继续将不为空的作为一个整体存入list集合中,往复循环进行,直至全部不为空的字符个数全部进入l

java web-求大神帮帮忙 java 项目中考勤怎么做

问题描述 求大神帮帮忙 java 项目中考勤怎么做 新手求助 因为前面时间耽误的太长了,后面的考勤感觉没有时间了. 先边做边等 !) 未完成项目 解决方案 ## 帮帮忙 !!**** 解决方案二: http://zhidao.baidu.com/link?url=kwc59Y0DDvAJq57tDxHfaNG5vpx1PoSecthlkrJnk7fOBISOoyDgPSI8O7ACRXjIlYYnprKKtHDv5EG3jzefgKhttp://download.csdn.net/downloa

java发送邮件时出现“554 5.1.0 Sender Denied&amp;amp;quot;请大神帮帮忙

问题描述 java发送邮件时出现"554 5.1.0 Sender Denied"请大神帮帮忙 用的邮箱不是QQ 邮箱 ,是自己公司的邮箱. javax.mail.MessagingException: 554 5.1.0 Sender Denied at com.sun.mail.smtp.SMTPTransport.issueCommand(SMTPTransport.java:1020) at com.sun.mail.smtp.SMTPTransport.mailFrom(SM

menu-熟悉android5.0或者对源码熟悉的大神帮帮忙。。。。。困扰好几天了。。。。在下感激不尽

问题描述 熟悉android5.0或者对源码熟悉的大神帮帮忙.....困扰好几天了....在下感激不尽 问题描述:android5.0将Menu键取消之后,公司里面在底层加了一个实现Menu的按钮. 放在了actionBar的overflow的位置,虽然它是调用系统的....但显示的位置是在那 个地方...现在的问题是要怎么改变他设计的Menu Button的样式和颜色...(这个样式 是画出来的..),我曾经用Menu的overflow的src属性去覆盖它...但是切屏之后 会消失,而且不能再