Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 是不是==&引用;仅适用于某些数据类型?_Java - Fatal编程技术网

Java 是不是==&引用;仅适用于某些数据类型?

Java 是不是==&引用;仅适用于某些数据类型?,java,Java,在以下程序中: public class medianTemp { public static void main(String[] args){ int length = args.length; int[] n = new int[length]; n[0] = Integer.parseInt(args[0]); System.out.print(n[0] + " "); for (int i = 1; i < length; i++ )

在以下程序中:

public class medianTemp {
public static void main(String[] args){
    int length = args.length;
    int[] n = new int[length];
    n[0] = Integer.parseInt(args[0]);


    System.out.print(n[0] + " ");

    for (int i = 1; i < length; i++ ){
        String c = args[i];
        if (c.equals(".")){
            n[i] = n[i-1] + 0;
            System.out.print(n[i] + " ");
            }
        if (c.equals("+")){
            n[i] = n[i-1] + 1;
            System.out.print(n[i] + " ");
            }
        if (c.equals("-")){
            n[i] = n[i-1] - 1;
            System.out.print(n[i] + " ");
            }
公共类medianTemp{
公共静态void main(字符串[]args){
int length=args.length;
int[]n=新的int[长度];
n[0]=Integer.parseInt(args[0]);
系统输出打印(n[0]+“”);
for(int i=1;i

for
循环内部和
if
语句内部。如果我使用例如
args[I]=“
(而不是将
args[I]
转换为
string
),上面的代码不起作用,只显示初始整数。有人能告诉我为什么会发生这种情况吗?

在java中,string对象(以及几乎所有对象)都需要与
equals()
进行比较。两个字符串对象可能具有相同的值,但可能是不同的对象(即在内存中重复一个新字符串()
)。比较比较比较引用。

=
根据对象的内存位置比较对象(当对象不是基元时)。字符串不是基元,因此当两个字符串对象的内容可能相等时,内存中每个对象的地址都不同,
=
返回false。

您只需需要使用等于进行字符串比较

本网站示例:

它返回false,而下面的代码返回true

String a = new String ("a");
String b = new String ("a");
System.out.println (a.equals(b));

=
是一个关系运算符,表示值之间可以存在的关系

另外,
=
操作符显然意味着“等于”,并且只适用于
原始
数据类型

这些类型包括double、int和float。但是,
=
运算符在布尔表达式中不起作用(只有true/false起作用)


总之,这就是如何将程序组合在一起以使该运算符工作。我建议您阅读JAVA编程书籍,如“JAVA 2”系列。希望这有所帮助!

==
用于原始数据类型(
int
float
double
,…)。
equals()
用于对象(
String
,…)。在对象上使用
==
比较引用地址。您所说的
是什么意思?然而,==运算符在布尔表达式中不起作用?==也适用于对象。它只是意味着与您认为的含义不同。它意味着诚实、忠实地使用相同的对象,而不是
等于()
通常指
String a = new String ("a");
String b = new String ("a");
System.out.println (a.equals(b));