CUMT--Java复习--核心类

目录

一、装箱与拆箱

二、“==”与equals

三、字符串类 

1、String、StringBuffer、StringBuilder的区别

2、String类

3、StringBuffer类 

4、StringBuilder类

四、类与类之间关系


 

一、装箱与拆箱

        基本类型与对应封装类之间能够自动进行转换,本质就是Java的自动装箱和自动拆箱过程。

        装箱:将基本类型数据值转换成对应的封装类对象,即将栈中的数据封装成对象存放到堆中的过程。

        拆箱:将封装的对象转换成基本类型数据值,即将堆中的数据值存放到栈中的过程。

Integer obj=10;  //装箱

int a=obj;           //拆箱

二、“==”与equals

        “==”判断的是地址一致问题,如果同一个值引用或者间接传入,都会返回true。

        equals判断的是值一致问题,只要值相同就返回true,或者改写equals函数,那就要根据实际问题分析值是否一致了。

        注意一定是使用类实例化对象的方法,如果用int的话都是true。另外在version 9之后已经认为这种方法deprecated,真别讲这个东西了。

public class test {
    public static void main(String[] args) {
        Integer t1=new Integer(1);          //整型对象,当作类分析,存在堆中
        Integer t2=new Integer(1);
        Integer t3=t1;
        System.out.println(t1==t3);               //true
        System.out.println(t1.equals(t3));        //true
        System.out.println(t1==t2);               //false
        System.out.println(t1.equals(t2));        //true
    }
}

三、字符串类 

1、String、StringBuffer、StringBuilder的区别

        String:创建的字符串是不可变的,如果改变字符串的值,需要创建新字符串,将字符串变量引用新创建的字符串地址,而原字符串在内存中仍然存在内容不变,直至垃圾回收系统销毁。

        StringBuffer:创建的字符串是可变的,当使用StringBuffer创建一个字符串时,可以通过append(),insert(),setCharAt()等方法进行改变,而字符串变量引用的地址不变,最终调用toString()方法转换成一个String对象,线程安全的

        StringBuilder:可变字符串,不是线程安全的

2、String类

        String类方法:

CUMT--Java复习--核心类_第1张图片

        代码实例:

public class stringtest {
   public static void main(String[] args) {
        String str="Hello,world!";
        System.out.println("长度:"+str.length());
        System.out.println("下标为5开始的子串"+str.substring(5));            //,world!
        System.out.println("下标为5开始10结束的子串"+str.substring(5, 10));  //,worl
        System.out.println("全部小写:"+str.toLowerCase());
        System.out.println("全部大写:"+str.toUpperCase());
   } 
}

3、StringBuffer类 

        StringBuffer 方法:

CUMT--Java复习--核心类_第2张图片

        代码实例:

public class stringtest {
   public static void main(String[] args) {
        StringBuffer sb=new StringBuffer();
        System.out.println("初始长度:"+sb.length());           //0
        System.out.println("初始容量:"+sb.capacity());         //16
        sb.append("world!");
        System.out.println("追加后:"+sb);                      //world!
        sb.insert(0,"Hello ");
        System.out.println("插入后:"+sb);                      //Hello world!
        sb.replace(5,6,",");
        System.out.println("替换后:"+sb);                      //Hello,world!
        sb.delete(5,6);
        System.out.println("删除后:"+sb);                      //Helloworld!
        sb.reverse();
        System.out.println("反转后:"+sb);                      //!dlrowolleH
        System.out.println("当前初始长度:"+sb.length());       //11
        System.out.println("当前初始容量:"+sb.capacity());     //16
        sb.setLength(5);
        System.out.println("改变长度后:"+sb);                  //!dlro
   } 
}

4、StringBuilder类

        StringBuilder方法:

CUMT--Java复习--核心类_第3张图片

CUMT--Java复习--核心类_第4张图片

        StringBuilder类的方法的运行与StringBuffer类的方法运行一致。 

四、类与类之间关系

        继承、实现、依赖、关联、聚合、组成

        成员内部类和静态内部类的区别:

—— 成员内部类:必须寄生在外部类对象里

—— 静态内部类:静态内部类是属于类的,不依赖于外部类的对象

 

参考书籍:《Java 8 基础应用与开发》QST青软实训编

 

你可能感兴趣的:(Java,java,开发语言,字符串)