帮助理解 String和new String()

    private static void stringByStr(){
        // situation 1
        String a = "a1";
        String a1 = "a" + 1;
        //在编译期值是确定的就是a2。只有编译期变量a与变量a2值相等他们才相等
        // true
        System.out.println("a==a1-->" + (a == a1));

        // situation 2
        String b = "b2";
        int bb = 2;
        String b2 = "b" + bb;
        //在编译期变量b2的值不是确定的,因为bb是变量,变量在运行期才能确定值.所以b与b2不等
        // false
        System.out.println("b==b2-->" + (b == b2));

        // situation 3
        String c = "c3";
        final int cc = 3;
        String c2 = "c" + cc;

        //在编译期c2的值是确定的,因为cc是个常量,值为2
        // true
        System.out.println("c==c2-->" + (c == c2));

        // situation 4
        String d = "d4";
        final int dd = getD();
        String d2 = "d" + dd;

        //在编译器d2的值是不确定的,因为dd还没有确定,因为dd的值是靠方法返回来的,但是方法的结果是在运行期才能得到的
        // false
        System.out.println("d==d2-->" + (d == d2));
    }

    private static int getD(){
        return 4;
    }

记录技术成长之路

推荐这些文章:

继承的类的静态成员变量是自身的时候为啥不爆StackOverflowError

问题
有两个方面的问题:
1,当一个类B继承一个类C,而类B的一个实例又是类C的一个静态成员变量的时候,为什么不会报StackOverflowError,我知道类B的一个实例是类C的一个非静态成员变量的时候会报这个错误。虽然静态的只有一个实例,但引用还是是无限循环的啊?
 
2.当一个类B继承一个类C、一...

Java 不依靠第三个变量以及容器实现两个变量互换值

public static void main(String[] args) {
int a = 123456;
int b = 6546;
a = a^b;
b= a^b;
a = b^a;
System.out.println("a:"...

感受一下Java乱码出现就知道怎么解决Java乱码了

public class StringSize {

public static void main(String[] args) throws Exception {

System.out.println("================UTF8 ENCODE================");
...

String和StringBuilder相互转换

StringBuilder转换为String
  public String toString()
StringBuilder sb = new StringBuilder();sb.append("hello");String s = sb.toString();System.out.println(s);
 
String...

面向对象06---static关键字

public class Preson { { System.out.println("匿名代码块");// 2 } static { System.out.println("静态代码块");// 1 只执行一次 } public Preson(){ ...

这个程序输出为何不对?

问题
public class EchoPlayer {
static int M = 5; static int N = 4; static int[][] b = new int[5][N]; static int k=0; public static void main(String[] args){ C...

Java 打印商品库存清单(练习)

class Demo06 { public static void main(String[] args) { System.out.println("-----------------------商品库存清单------------------------"); System.out.println("品牌型号"+"\t"+"尺...

正则校验密码包含字母数字符号

String PW_PATTERN = "^(?![A-Za-z0-9]+$)(?![a-z0-9\\W]+$)(?![A-Za-z\\W]+$)(?![A-Z0-9\\W]+$)[a-zA-Z0-9\\W]{8,}$";

String pw1 = "ABCDEFGHIG";
Str...

斐波那契数列 java

for循环表示

int a1=1;
int a2=1;
System.out.println(a1);
System.out.println(a2);
int a3=0;
for(int i=0;i<10;i++){
a3=a...

java基础04-数据类型扩展及面试题

java基础04-数据类型扩展及面试题讲解
public class demo02 {
public static void main(String[] args){
// 一、整数拓展: 进制 二进制0b 十进制 八进制0 十六进制0x
int i = 10;
int i2 = 010;...

文章标题:帮助理解 String和new String()
文章链接:https://www.dianjilingqu.com/51335.html
本文章来源于网络,版权归原作者所有,如果本站文章侵犯了您的权益,请联系我们删除,联系邮箱:saisai#email.cn,感谢支持理解。
THE END
< <上一篇
下一篇>>