null的伟大与可怕 之 String字符串方法2

来源:互联网 发布:hishop 源码 编辑:程序博客网 时间:2024/05/22 09:38

null的伟大与可怕 之 String字符串方法2

null的伟大与可怕 之 String字符串 1
http://blog.csdn.net/sunrainamazing/article/details/71591334
null的伟大与可怕 之 String字符串方法2
http://blog.csdn.net/sunrainamazing/article/details/71593030
null的伟大与可怕 之 Optional操作 3
http://blog.csdn.net/sunrainamazing/article/details/71596437

package sun.rain.amazing.strnull;import org.junit.Test;/** * Created by sunRainAmazing on SUN_RAIN_AMAZING * @author sunRainAmazing */public class MethodNull {    private final static String s1 ="null";    private final static String s2 = null;    private final static String s3 = "";    @Test    public void initVariable(){        System.out.println(s1);        System.out.println(s2);        //对print的引用不明确//      System.out.print(null);    }    /**     *  运行时异常     *  contains 方法 内部调用的 时 indexOf 方法     *     *  但是 contains 的返回值是 boolean     *      indexOf  的返回值是 int     *  String contains 和 indexOf 方法无法对null进行运算     *     * 但是 == 可以     */    @Test    public void testMethod() {        //报空指针异常 java.lang.NullPointerException//      System.out.println(s1.indexOf(s2));//      System.out.println(s1.contains(s2));        // 报空指针异常 java.lang.NullPointerException//      System.out.println(s2.contains(s1));//      System.out.println(s2.contains(s1));        //报空指针异常  java.lang.NullPointerException//      System.out.println(s1.indexOf(null));//      System.out.println(s1.contains(null));        //编译错误//      System.out.println(null.indexOf(s1));//      System.out.println(null.contains(s1));//      System.out.println(s1.indexOf(s3));//0//      System.out.println(s1.contains(s3));//true//      System.out.println(null==s1);//false//      System.out.println(s2==s1);//false        System.out.println(s2 == null);//true        System.out.println(null == null);//true    }    /*    indexOf        public int indexOf(String str)            返回指定子字符串在此字符串中第一次出现处的索引。返回的整数是            this.startsWith(str, k) 为 true 的最小 k 值。        参数:        str - 任意字符串。        返回:        如果字符串参数作为一个子字符串在此对象中出现,            则返回第一个这种子字符串的第一个字符的索引;            如果它不作为一个子字符串出现,则返回 -1。    contains        public boolean contains(CharSequence s)        当且仅当此字符串包含指定的 char 值序列时,返回 true。        参数:            s - 要搜索的序列        返回:            如果此字符串包含 s,则返回 true,否则返回 false        抛出:            NullPointerException - 如果 s 为 null     */    @Test    public void testMethod1(){        //以下结果都是0        System.out.println("".indexOf(""));        System.out.println(s3.indexOf(""));        System.out.println(s3.indexOf(s3));        //indexOf方法没有外抛异常声明  null没有length属性        //报空指针异常  java.lang.NullPointerException//      System.out.println(s3.indexOf(s2)); //      System.out.println(s3.indexOf(null));         //以下结果全是true        System.out.println("".contains(""));        System.out.println(s3.contains(""));        System.out.println(s3.contains(s3));    }    /**     * equals()方法可以比较null     * 但通常将 null作为参数 进行判断     * 而不是null.equals(str)  -- 会报 NPE 异常     */    @Test    public void testEquals(){        System.out.println(s1.equals(s2));        System.out.println(null instanceof String);        System.out.println(null+"");        System.out.println(null+"" instanceof String);    }}
0 0
原创粉丝点击