• java-String类的常见面试题


    package com.day7.one;

    public class DemoString {

      /**
      * @param args
      */
      public static void main(String[] args) {
        demo1();
        demo2();
        demo3();
        demo4();
        demo5();
      }
      private static void demo1() {
        String s1="abc"; //在常量池中创建了abc字符串
        String s2="abc";
        System.out.println(s1==s2); //s1和s2指向的是同一个地址(true)
        System.out.println(s1.equals(s2)); //将此字符串与指定的对象比较。当且仅当该参数不为 null,
                       //并且是与此对象表示相同字符序列的 String 对象时,结果才为 (true)。
      }
      private static void demo2() {
        String s3=new String("abc"); //创建了两个对象,一个在常量池中,副本在堆内存中
      }
      private static void demo3() {
        String s4=new String("abc");
        String s5="abc";
        System.out.println(s4==s5); //false,因为s4指向的是堆中abc的地址值,s5指向的是常量池中的地址值
        System.out.println(s4.equals(s5)); //true,字符序列相同就行
      }
        private static void demo4() {
        String s6="a"+"b"+"c";
        String s7="abc";
        System.out.println(s6==s7); //true,java中有常量优化机制
        System.out.println(s6.equals(s7)); //true,因为s7直接指向已有的"abc"字符串地址
      }
      private static void demo5() {
        String s8="ab";
        String s9="abc";
        String s10=s8+"c"; //s10是指向对内存中的地址
        System.out.println(s8==s9); //false,
        System.out.println(s9.equals(s10)); //true,
      }

    }

  • 相关阅读:
    C# Task.Run 和 Task.Factory.StartNew 区别
    数据库面试题(实时更新)
    python面试题(实时更新)
    opencv简介以及环境搭建
    Django分页器
    django的开发环境
    Django简介以及MVC模式
    Virtualbox修改虚拟机分配内存的大小
    深浅拷贝
    react-native-typescript-项目环境搭建
  • 原文地址:https://www.cnblogs.com/zhujialei123/p/8110165.html
Copyright © 2020-2023  润新知