首页 > 其他分享 >String常见面试题

String常见面试题

时间:2024-02-21 12:34:24浏览次数:22  
标签:面试题 String s2 s1 常见 System public out

/**
 * String类常见的面试题。
 */
public class StringExam {
    @Test
    public void test1(){
        String s1 = "abc";
        String s2 = new String("abc");
        System.out.println(s1 == s2); // false
        System.out.println(s1.equals(s2)); // true
    }

    @Test
    public void test2(){
        // 这种拼接会在编译阶段完成。编译器优化策略。
        String s1 = "a" + "b" + "c";
        String s2 = "abc";
        System.out.println(s1 == s2); // true
    }

    @Test
    public void test3(){
        String s1 = "abc";
        String s2 = "ab";
        String s3 = s2 + "c";
        System.out.println(s1 == s3); // false
        System.out.println(s1.equals(s3)); // true
    }

    @Test
    public void test4(){
        // 问题:创建了几个对象?
        // 字符串常量池中1个
        String s1 = "a";
        // 字符串常量池中1个 ,堆1个。
        String s2 = new String("b");
        // 堆中2个。(StringBuilder对象,String对象)
        String s3 = s1 + s2;
    }

    @Test
    public void test5(){
        // 问题:创建了几个对象?
        // 6个对象
        // 字符串常量池中2个
        // StringBuilder1个
        // 堆中的String 3个。
        String s = new String("a") + new String("b");
    }

    @Test
    public void test6(){
        // 这个程序会出现异常吗?如果没有异常,结果是什么?
        // 不会出现异常,结果是:nullnull
        String s1 = null;
        String s2 = s1 + null;
        System.out.println(s2);
    }

    @Test
    public void test7(){

        String s1 = "ab";

        final String s2 = "b";
        String s3 = "a" + s2;

        // 和这个一样了。
        //String s3 = "a" + "b";

        System.out.println(s1 == s3);
    }

    @Test
    public void test8(){

        String s1 = "ab";

        final String s2 = getB();
        String s3 = "a" + s2;

        System.out.println(s1 == s3); // false
    }

    public String getB(){
        return "b";
    }

    @Test
    public void test9(){
        String s1 = "a1";
        String s2 = "a" + 1;
        System.out.println(s1 == s2); // true
    }

    @Test
    public void test10(){
        String s1 = new String("abc");
        System.out.println(s1);

        StringBuilder s2 = new StringBuilder("abc");
        System.out.println(s2);

        // 类型不一样,没有比较的意义。
        // 类型不一样,结果一定是false。
        System.out.println(s1.equals(s2)); // false
    }
}

标签:面试题,String,s2,s1,常见,System,public,out
From: https://www.cnblogs.com/NorthPoet/p/18024932

相关文章

  • Go 100 mistakes - #41: Substrings and memory leaks
        WeneedtokeeptwothingsinmindwhileusingthesubstringoperationinGo. First,theintervalprovidedisbasedonthenumberofbytes,notthenumberofrunes. Second,asubstringoperationmayleadtoamemoryleakastheresultings......
  • Go 100 mistakes - #39: Under-optimized string concatenation
           ......
  • Go 100 mistakes - #37: Inaccurate string iteration
           ......
  • 面试题2024
    1.美团真题1 - 给定场景,说说你的测试用例设计思路2.美团真题2 - 登录场景session原理及测试注意事项Session的原理主要涉及客户端和服务器之间的交互过程:用户提交登录信息:当用户在登录页面输入用户名和密码,并点击登录按钮时,浏览器会发送一个HTTP请求到服务器(向服务器发送登......
  • C#关键字常见面试题
    获取C#/.NET/.NETCore面试宝典(基础版)欢迎关注微信公众号:追逐时光者,回复关键字【面试】,领取语雀在线免费的面试宝典(目前阅读量已突破15万+)。不仅仅为了面试而学习,更多的是查漏补缺、扩充知识面和大家共同学习进步(文章中有描述不当的地方欢迎文末留言指正,我会及时改正......
  • 分布式事务常见问答
    v>2.1强一致性模型    v>在DTP模型中定义了3个核心组件:AP(ApplicationProgram)应用程序,AP组件定义了分布式事务(也即全局事务)的边界(即事务的开始和结束)以及组成事务的具体操作(Actions);RM(ResourceManagers)资源管理器,RM指的是诸如MySQL、Oracle这样的数据库或者相......
  • Windows常见命令
    这些命令和操作可以帮助您查看计算机系统的各种详细信息。这些命令通常在Windows系统中使用。以下是您提供的命令的简要说明:查看电脑系统属性:dxdiag命令dxdiag命令用于显示有关计算机硬件和软件配置的详细信息,包括操作系统版本、处理器信息、内存信息等。查看系统信息:sys......
  • C#将string转成json并修改其中的值
    我想将一个json字符串中的某个字段值修改,然后重新转成新的json字符串。初始的json字符串如下:{deviceKey="gatewaydk",cmd="actionCall",service=new[]{new{siid=101,action=new{iid=2,......
  • String
    string容器(重点)1.数据结构:连续的存储空间,用一个char*指向这片空间2.迭代器:随机访问迭代器3.常用的api:​ 1.构造string();//创建一个空的字符串例如:stringstr;string(conststring&str);//使用一个string对象初始化另一个string对象string(constchar*s);//使......
  • 面试题随手记-2月20日
    异常/Exception类型原理java异常的层次结构图: throwable分为Error、Exception·Error  ·JVM内部问题,比如资源不足等,无法恢复·处理方式:不用处理·Exception·JVM通过处理可回到正常执行流程,即:可修复·分为uncheckedException(非受检异常)、checkedEx......