请告诉我一个实时的情况来比较String,StringBuffer和StringBuilder?
我在不可变字符串上编写了以下代码.
public class ImmutableStrings {
public static void main(String[] args) {
testmethod();
}
private static void testmethod() {
String a = "a";
System.out.println("a 1-->" + a);
a = "ty";
System.out.println("a 2-->" + a);
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
a 1-->a
a 2-->ty
Run Code Online (Sandbox Code Playgroud)
这里变量的值a已经改变(许多人说不可变对象的内容不能改变).但究竟是什么意思说String是不可改变的?你能否为我澄清一下这个话题?
来源:https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html
任何人请举例说明Mutable对象和Immutable对象之间的差异.
我经常遇到关于Java Date和其他与日期时间相关的类的负面反馈.作为一名.NET开发人员,我不能完全(没有使用它们)了解它们实际上有什么问题.
任何人都可以对此有所了解吗?
如何在Java中创建不可变对象?
应该将哪些对象称为不可变?
如果我有所有静态成员的类是不可变的?
有人可以给我一些在函数中使用输出参数的示例代码吗?我试过谷歌它,但只是在功能中找到它.我想在另一个函数中使用此输出值.
我正在开发的代码旨在在Android中运行.
我正在尝试编写一个方法,从Java中删除所有非字母字符String[],然后将String转换为小写字符串.我已经尝试使用正则表达式替换所有非字母字符的出现.""但是,我得到的输出不能这样做.这是代码
static String[] inputValidator(String[] line) {
for(int i = 0; i < line.length; i++) {
line[i].replaceAll("[^a-zA-Z]", "");
line[i].toLowerCase();
}
return line;
}
Run Code Online (Sandbox Code Playgroud)
但是,如果我尝试提供具有非字母(例如-或.)的输入,则输出也包含它们,因为它们不会被删除.
示例输入
A dog is an animal. Animals are not people.
Run Code Online (Sandbox Code Playgroud)
我得到的输出
A
dog
is
an
animal.
Animals
are
not
people.
Run Code Online (Sandbox Code Playgroud)
预期的输出
a
dog
is
an
animal
animals
are
not
people
Run Code Online (Sandbox Code Playgroud) 一旦我研究了字符串不可变的优点,因为有些东西可以改善内存中的性能.
任何人都可以向我解释一下吗?我在互联网上找不到它.
我的问题是关于java实习和常数池.
Java维护一个常量池java.lang.String,巧妙地使用JVM内存,并且这样做java.lang.String是不可变的.那么为什么java不维护其他不可变类型的常量池,例如Long,Integer,Char,Short?那会不会节省内存呢?
我知道整数被汇集到值范围[-127,127],尽管我不明白选择这个范围的原因.
这是我编写的测试代码,用于测试其他不可变数据类型的池.
public class PoolTest {
public static void main(String... args) {
// Pooling of Integer [-127, 127]
Integer x = 127, y = 127;
System.out.println("Integer:" + (x == y)); // prints true
x = 129;
y = 129;
System.out.println("Integer:" + (x == y)); // prints false
// Apparent pooling of short [-127, 127]
Short i = 127, j = 127;
System.out.println("Short: " + (i == j)); // prints true
i = 128;
j …Run Code Online (Sandbox Code Playgroud) java ×8
immutability ×4
string ×4
android ×1
c# ×1
datetime ×1
oop ×1
parameters ×1
regex ×1
terminology ×1
types ×1