CUMT--Java复习--核心类

2024-01-01 23:02:40

目录

一、装箱与拆箱

二、“==”与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类方法:

? ? ? ? 代码实例:

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?方法:

? ? ? ? 代码实例:

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方法:

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

四、类与类之间关系

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

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

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

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

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

文章来源:https://blog.csdn.net/m0_60177079/article/details/135328654
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。