zoukankan      html  css  js  c++  java
  • 2019-06-2 java学习日记

    String类的常见面试题

    注:基本数据类型比较的是值,引用数据类型比较的是地址值

     1.判断定义为String类型的s1和s2是否相等

    1 private static void demo1() { 
    2     //常量池中没有这个字符串对象,就创建一个,如果有直接用即可
    3         String s1 = "abc";
    4         String s2 = "abc";
    5         System.out.println(s1 == s2);             //true    
    6         System.out.println(s1.equals(s2));         //true
    7     }

    2.下面这句话在内存中创建了几个对象?

    1 private static void demo2() {
    2         //创建几个对象
    3         //创建两个对象,一个在常量池中,一个在堆内存中
    4         String s1 = new String("abc");        
    5         System.out.println(s1);
    6     }

    3.判断定义为String类型的s1和s2是否相等

    private static void demo3() {
            String s1 = new String("abc");            
        //记录的是堆内存对象的地址值        
            String s2 = "abc";                        
        //记录的是常量池中的地址值
            System.out.println(s1 == s2);             //false
            System.out.println(s1.equals(s2));         //true
        }

    4.判断定义为String类型的s1和s2是否相等

    1 private static void demo4() {
    2         //byte b = 3 + 4;                        
    3     //在编译时就变成7,把7赋值给b,常量优化机制
    4         String s1 = "a" + "b" + "c";
    5         String s2 = "abc";
    6         System.out.println(s1 == s2);             //true,java中有常量优化机制    
    7         System.out.println(s1.equals(s2));         //true
    8     }

    5.判断定义为String类型的s1和s2是否相等

    public static void main(Sting[] args) {
            String s1 = "ab";
            String s2 = "abc";
            String s3 = s1 + "c";
            System.out.println(s3 == s2);        
        //他这里的从堆里的abc与常量池里的abc比较
            System.out.println(s3.equals(s2));         //true
        }  
    }        

    String的判断功能

    1,boolean equals(Object obj):比较字符串的内容是否相同,区分大小写

    2,boolean equalsIgnoreCase(String str):比较字符串的内容是否相同,忽略大小写

     1 private static void demo1() {
     2         String s1 = "heima";
     3         String s2 = "heima";
     4         String s3 = "HeiMa";
     5         
     6         System.out.println(s1.equals(s2));        //true
     7         System.out.println(s2.equals(s3));        //false
     8         
     9         System.out.println("---------------");
    10         
    11         System.out.println(s1.equalsIgnoreCase(s2));    
    12         System.out.println(s1.equalsIgnoreCase(s3));     //不区分大小写
    13     }

    3,boolean contains(String str):判断大字符串中是否包含小字符串
    4,boolean startsWith(String str):判断字符串是否以某个指定的字符串开头
    5,boolean endsWith(String str):判断字符串是否以某个指定的字符串结尾

     1 private static void demo2() {
     2         String s1 = "我爱heima,哈哈";
     3         String s2 = "heima";
     4         String s3 = "baima";
     5         String s4 = "我爱";
     6         String s5 = "哈哈";
     7         
     8         System.out.println(s1.contains(s2));      //判断是否包含传入的字符串
     9         System.out.println(s1.contains(s3));
    10         
    11         System.out.println("------------------");
    12         System.out.println(s1.startsWith(s4));      //判断是否以传入的字符串开头
    13         System.out.println(s1.startsWith(s5));
    14         
    15         System.out.println("------------------");
    16         System.out.println(s1.endsWith(s4));      //判断是否以传入的字符串结尾
    17         System.out.println(s1.endsWith(s5));
    18     }

    5,boolean isEmpty():判断字符串是否为空。

    1 public static void main(String[] args) {        
    2         String s1 = "heima";
    3         String s2 = "";
    4         String s3 = null;
    5         
    6         System.out.println(s1.isEmpty());
    7         System.out.println(s2.isEmpty());
    8         System.out.println(s3.isEmpty());    //java.lang.NullPointerException
    9     }

    ""空串和null的区别

    1,""空串是字符串常量,同时也是一个String类的对象,
    既然是对象当然可以调用String类中的方法
    2,null是空常量,不能调用任何的方法,否则会出现空指针异常,
    null常量可以给任意的引用数据类型赋值

    注:常量有字符串常量,字符常量,null常量,整数常量,小数常量和布尔常量6种 

  • 相关阅读:
    数据结构3 特殊二叉树
    数据结构2 树与二叉树
    数据结构1 线性结构
    《数据库系统概念》20-恢复系统
    《数据库系统概念》19-并发控制
    数据库系统概念》18-事务
    巨杉内核笔记 | 会话(Session)
    巨杉Tech|SequoiaDB 巨杉数据库高可用容灾测试
    巨杉学习笔记 | SequoiaDB MySQL导入导出工具使用实战
    保险行业持续扩展,巨杉数据库再次中标人保财险
  • 原文地址:https://www.cnblogs.com/Sherwin-liao/p/10967764.html
Copyright © 2011-2022 走看看