CPU 处理器 运算器 集成电路 缓存 微架构
主页 正文

Java中String直接赋值与newString区别解析

string直接赋值和new的区别

直接分配可以检索离开范围时自动释放的对象。
您得到的新东西是对象指针。
这是使用后必须释放的临时内存空间。

Java中String直接赋字符串和new String的区别

关于字符串的分配,Stringa =“ 1 2 3 ”,此方法比stunga = newstring(“ 1 2 3 ”);。
后者实际上创建了两个对象。
“ 1 2 3 ”是常数池中的对象。
stunga =“ AAA”; 这样

java中String new和直接赋值的区别

新的,它将在Java集合的内存中创建对象,如果有一些新对象,将会有一些对象。
直接任务是获取字符串恒定池的值。
例如,stringstr1 =“ a”; stringst2 =“ a”; system.out.println(str1 == st2 ); Newsring(“ A”); stringst4 = newstring(“ a”); system.out.println(st3 == st4 ); 结果是错误的。
价值

java里String类型可以直接赋值,保存的是值还是引用的地址?

首先,Java中的字符串类型保存了参考地址。
如下所说,如果您在Stringa =“ Hello”方法中分配值,则A将保存地址。
双引号字符串是一个恒定的字符。
字符串,当汇编Java文件时,将其放置在虚拟机的常数池中。
“ Hello”的真实位置也位于恒定池中。
还有另一种方法:Stringa = NewsTring(“ Hello”),如果这样写的话,它与第一个不同。
当程序运行时而不是在常数池中,而是在Java堆上创建此对象,就像其他Java对象一样,因此其地址不与第一个对象一起使用。
第二个问题是字符串和int的直接分配之间的区别。
首先,最大的区别是一个是一个对象,另一个是数字值。
该对象可以为null,但是数值必须具有值。
即使您不分配该值,系统也会自动将值分配给0。
INTB= 3 直接分配了内存空间B中的一个空间,B的是可变的,可以更改为5 , 6 当字符串对象不变时,“ Hello”实际上存在于堆中,请参考。
如果stringa =“ bbb”是指另一个新对象“ bbb”的地址。
上一个对象“ Hello”没有更改。
第三个问题是,为什么参考类型分配不能像基本数据类型一样行事? 由于参考类型比基本数据类型要复杂得多,因此基本数据类型仅具有三种数据类型:数字,字符和布尔值,可以非常简单地表达。
例如,2 ,“ A”和True,分配自然很容易,但是参考类型是不同的。
您要引用的类型是个人或专业。
这种复杂的事物同时包含许多不同的属性。
这不能直接用一个值表示,因此,如果您想找到它,只能找到其地址,然后根据地址找到相应的对象。
尽管有点麻烦,但无法避免。
好的,我希望我的答案对您有帮助。
热门资讯
手机内存不足原因及解决方法解析
数控编程代码详解:FANUC系统与CNC转动机指令解析
UG编程倒角技巧详解
电脑内存条安装后无法开机?原因及解决方法!
笔记本内存条加装指南:如何安全升级内存?
LinuxOracle数据库启动命令与常见操作指南
三菱M70系统机械原点设定全攻略
集成电路设计与集成系统专业解析