`
zhangyuanjava
  • 浏览: 129516 次
  • 性别: Icon_minigender_1
  • 来自: 河北
社区版块
存档分类
最新评论

java之String变量和“==”操作符(1)

阅读更多
先看下面的代码,有助于后面的理解。



Java代码
public class Test  
{  
    public static void main(String[] args)  
    {  
        Test t = new Test();  
        t.show();  
    }  
      
    {  
        System.out.println(1);  
    }  
      
    static 
    {  
        System.out.println(2);  
    }  
      
    public void show()  
    {  
        System.out.println(3);  
    }  
      
    {  
        System.out.println(4);  
    }  
      
    static 
    {  
        System.out.println(5);  
    }  
      
    {  
        System.out.println(6);  
    }  


public class Test
{
public static void main(String[] args)
{
Test t = new Test();
t.show();
}

{
System.out.println(1);
}

static
{
System.out.println(2);
}

public void show()
{
System.out.println(3);
}

{
System.out.println(4);
}

static
{
System.out.println(5);
}

{
System.out.println(6);
}
}

输出为:



Java代码







2
5
1
4
6
3

现在看看下面的这些String变量,用“==”操作符比较它们时会是什么结果呢?如下代码。



Java代码
public class StringTest   
{  
    //11  
    final String fs1 = "H";  
    final String fs2 = "ello";  
    final String fs3 = "Hello";  
    final String fs4 = fs1 + fs2;  
    final String fs5 = "H" + "ello";  
      
    //22  
    final String fs11;  
    final String fs22;  
    final String fs33;  
    final String fs44;  
    final String fs55;  
      
    //static //不能有static  
    {  
        fs11 = "H";  
        fs22 = "ello";  
        fs33 = "Hello";  
        fs44 = fs11 + fs22;  
        fs55 = "H" + "ello";  
    }  
      
    //**********************  
    //**********************  
    //33  
    static String ss1 = "H";  
    static String ss2 = "ello";  
    static String ss3 = "Hello";  
    static String ss4 = ss1 + ss2;  
    static String ss5 = "H" + "ello";  
      
    //44  
    static String ss11;  
    static String ss22;  
    static String ss33;  
    static String ss44;  
    static String ss55;  
      
    static //注释掉也一样  
    {  
        ss11 = "H";  
        ss22 = "ello";  
        ss33 = "Hello";  
        ss44 = ss11 + ss22;  
        ss55 = "H" + "ello";  
    }  
      
    //**********************  
    //**********************  
    //55  
    static final String sfs1 = "H";  
    static final String sfs2 = "ello";  
    static final String sfs3 = "Hello";  
    static final String sfs4 = sfs1 + sfs2;  
    static final String sfs5 = "H" + "ello";  
      
    //66  
    static final String sfs11;  
    static final String sfs22;  
    static final String sfs33;  
    static final String sfs44;  
    static final String sfs55;  
      
    static //不能注释掉  
    {  
        sfs11 = "H";  
        sfs22 = "ello";  
        sfs33 = "Hello";  
        sfs44 = sfs11 + sfs22;  
        sfs55 = "H" + "ello";  
    }  
      
    public static void main(String[] args)  
    {  
        StringTest test = new StringTest();  
          
        test.test1();  
        System.out.println();  
          
        test.test2();  
        System.out.println();  
      
        test.test3();  
        System.out.println();  
          
        test.test4();  
    }  
      
    public void test1()  
    {  
        System.out.println(fs3 == fs4);  
        System.out.println(fs3 == fs5);  
          
        System.out.println(fs3 == fs33);  
        System.out.println(fs3 == fs44);  
        System.out.println(fs3 == fs55);  
          
        System.out.println(fs33 == fs44);  
        System.out.println(fs33 == fs55);  
    }  
      
    public void test2()  
    {  
        System.out.println(ss3 == ss4);  
        System.out.println(ss3 == ss5);  
          
        System.out.println(ss3 == ss33);  
        System.out.println(ss3 == ss44);  
        System.out.println(ss3 == ss55);  
          
        System.out.println(ss33 == ss44);  
        System.out.println(ss33 == ss55);  
    }  
      
    public void test3()  
    {  
        System.out.println(sfs3 == sfs4);  
        System.out.println(sfs3 == sfs5);  
          
        System.out.println(sfs3 == sfs33);  
        System.out.println(sfs3 == sfs44);  
        System.out.println(sfs3 == sfs55);  
          
        System.out.println(sfs33 == sfs44);  
        System.out.println(sfs33 == sfs55);  
    }  
 
    public void test4()  
    {  
        System.out.println(fs3 == ss3);  
        System.out.println(fs3 == ss4);  
        System.out.println(fs3 == ss33);  
        System.out.println(fs3 == ss44);  
        System.out.println(fs3 == sfs4);  
        System.out.println(fs3 == sfs44);  
    }  


public class StringTest
{
//11
final String fs1 = "H";
final String fs2 = "ello";
final String fs3 = "Hello";
final String fs4 = fs1 + fs2;
final String fs5 = "H" + "ello";

//22
final String fs11;
final String fs22;
final String fs33;
final String fs44;
final String fs55;

//static //不能有static
{
fs11 = "H";
fs22 = "ello";
fs33 = "Hello";
fs44 = fs11 + fs22;
fs55 = "H" + "ello";
}

//**********************
//**********************
//33
static String ss1 = "H";
static String ss2 = "ello";
static String ss3 = "Hello";
static String ss4 = ss1 + ss2;
static String ss5 = "H" + "ello";

//44
static String ss11;
static String ss22;
static String ss33;
static String ss44;
static String ss55;

static //注释掉也一样
{
ss11 = "H";
ss22 = "ello";
ss33 = "Hello";
ss44 = ss11 + ss22;
ss55 = "H" + "ello";
}

//**********************
//**********************
//55
static final String sfs1 = "H";
static final String sfs2 = "ello";
static final String sfs3 = "Hello";
static final String sfs4 = sfs1 + sfs2;
static final String sfs5 = "H" + "ello";

//66
static final String sfs11;
static final String sfs22;
static final String sfs33;
static final String sfs44;
static final String sfs55;

static //不能注释掉
{
sfs11 = "H";
sfs22 = "ello";
sfs33 = "Hello";
sfs44 = sfs11 + sfs22;
sfs55 = "H" + "ello";
}

public static void main(String[] args)
{
StringTest test = new StringTest();

test.test1();
System.out.println();

test.test2();
System.out.println();

test.test3();
System.out.println();

test.test4();
}

public void test1()
{
System.out.println(fs3 == fs4);
System.out.println(fs3 == fs5);

System.out.println(fs3 == fs33);
System.out.println(fs3 == fs44);
System.out.println(fs3 == fs55);

System.out.println(fs33 == fs44);
System.out.println(fs33 == fs55);
}

public void test2()
{
System.out.println(ss3 == ss4);
System.out.println(ss3 == ss5);

System.out.println(ss3 == ss33);
System.out.println(ss3 == ss44);
System.out.println(ss3 == ss55);

System.out.println(ss33 == ss44);
System.out.println(ss33 == ss55);
}

public void test3()
{
System.out.println(sfs3 == sfs4);
System.out.println(sfs3 == sfs5);

System.out.println(sfs3 == sfs33);
System.out.println(sfs3 == sfs44);
System.out.println(sfs3 == sfs55);

System.out.println(sfs33 == sfs44);
System.out.println(sfs33 == sfs55);
}

public void test4()
{
System.out.println(fs3 == ss3);
System.out.println(fs3 == ss4);
System.out.println(fs3 == ss33);
System.out.println(fs3 == ss44);
System.out.println(fs3 == sfs4);
System.out.println(fs3 == sfs44);
}
}



输出为:

Java代码
true 
true 
true 
false 
true 
false 
true 
 
false 
true 
true 
false 
true 
false 
true 
 
true 
true 
true 
false 
true 
false 
true 
 
true 
false 
true 
false 
true 
false
分享到:
评论

相关推荐

    java中equals和==的区别

    Java 中的变量可以分为两种:值类型和引用类型。值类型的变量直接存储在栈中,而引用类型的变量在栈中仅仅存储引用类型变量的地址,而其本身则存储在堆中。 equals 操作表示的是两个变量是否是对同一个对象的引用,...

    java中equals和==的区别.docx

    Java 中的 equals 和 == 是两个常用的操作符,经常用于比较对象或变量的值。然而,许多开发者不知道它们之间的区别,或者误用它们,导致程序出错。下面我们将详细解释 equals 和 == 的区别,并通过实例代码来加深...

    java中String类的知识

    在Java语言中,`String`类是用于表示不可变字符序列的核心类之一。它代表了一个字符串对象,一旦被初始化后,其内容不能被改变。这被称为不可变性(Immutability),是Java编程语言的一个关键特性。 **创建String...

    java中equals和==的区别.pdf

    本文将深入探讨这两个操作符在Java中的行为,特别是在处理引用类型,尤其是`String`类时的差异。 首先,我们要了解Java中的值类型和引用类型。值类型(如整型、浮点型、字符型等)直接存储在内存的栈中,而引用类型...

    3 Java中关于==和equal的区别 以及equals()方法重写

    在 Java 中,== 操作符和 equals() 方法都是用于比较两个对象是否相等的,但它们的比较规则不同。== 操作符比较的是对象的引用,而 equals() 方法比较的是对象的内容。因此,在实际开发中,需要根据具体情况选择使用...

    String1.java

    ### Java字符串操作详解:String1.java...总的来说,`String1.java`这个简单的示例为我们提供了一个很好的起点,帮助我们理解如何在Java中创建和操作字符串。这对于初学者来说是非常有用的,也是构建更复杂程序的基础。

    浅析java中String类型中“==”与“equal”的区别

    Java 中的 String 类型是一个基本数据类型,然而在使用 String 类型的时候,我们经常会遇到“==”和 “equal” 两个操作符的使用问题。这两个操作符都是用于比较字符串的,但是它们在比较机制和结果上存在着很大的...

    Java中equals与==的用法和区别

    Java 中的 equals 与 == 是两个常用的比较操作符,但是它们的用法和区别却非常重要。理解它们的差异是编写高效、正确的 Java 程序的关键。 什么是 == ? 在 Java 中,== 是一个比较操作符,它用于比较两个变量的值...

    java中关于变量的练习题及答案

    - **解析**: 使用三元操作符实现三个数中的最小值选择。 **2. 表达式计算** - **题目描述**: 假设a,n为任意整数(0),编写一个程序,分别求出表达式a, a*2的n次方, A>>n以及a/2的n次方。 - **答案**: ```java ...

    java中equals和==的区别的剖析.pdf

    `==` 操作符主要用于基本数据类型(如 int, double 等)以及引用类型的变量,它比较的是两个变量所指向的内存地址是否相同,即两个变量是否指向同一个对象实例。而对于基本类型,`==` 直接比较数值是否相等。 `...

    java中equals和==的区别文.pdf

    1. 当两个 `String` 变量 s1 和 s2 分别被赋值为 `"Monday"` 时,Java会查找字符串常量池,如果池中已存在相同的字符串,就会复用该对象。因此,`s1 == s2` 会返回 `true`,因为它们都引用了同一对象。 2. 如果 `s2...

    Java环境变量设置和测试

    - 更新方法:在PATH变量的值中添加 `%JAVA_HOME%\bin` (确保已包含现有路径分隔符)。 3. **CLASSPATH**: - CLASSPATH用于指示Java虚拟机(JVM)在何处查找类文件。默认情况下,JVM会搜索当前目录(".")和所有...

    String型的不可变性

    但是,如果我们使用 new 操作符来创建 String 对象,例如,String str1 = new String("abc"); String str2 = new String("abc"); System.out.println(str1 == str2); // false,这里 str1 和 str2 指向不同的对象。 ...

    java的String用法类型总结

    在Java编程语言中,`String` 类是最常用的数据类型之一,用于表示不可变的字符序列。由于字符串在实际开发中的重要性和高频使用特性,深入理解并掌握其用法至关重要。本文档将对`String`类型的一些关键知识点进行...

    java中equals和的比较.doc

    在 Java 编程中,equals 和 == 是两个常用的比较操作符,但它们之间存在着很大的区别。了解这两者的区别非常重要,因为它直接影响着程序的正确性和效率。 在 Java 中,有两种类型的变量:基本类型和引用类型。基本...

Global site tag (gtag.js) - Google Analytics