当前位置: 首页 > news >正文

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

617c8ac8b9c54b0aa0bcc2a7ba033063.png

        代码实例:

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

f93335df4e3b4589a354a14c63d7f17b.png

        代码实例:

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

960ee6bb498a45b69feff02a498e1051.png

61d1957aa0e545928f9e2da868364017.png

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

四、类与类之间关系

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

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

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

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

 

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

 

相关文章:

  • 影子价格 Shadow Price
  • JUC原子操作类
  • 【C程序设计】C函数
  • 华为鸿蒙应用--文件管理工具(鸿蒙工具)-ArkTs
  • JavaSE语法之十五:异常(超全!!!)
  • 服务器运行状况监控工具
  • 单挑力扣(LeetCode)SQL题:180. 连续出现的数字(难度:中等)
  • 用idea跑起十多年前的项目
  • PHP序列化总结3--反序列化的简单利用及案例分析
  • Linux系统:引导过程与服务控制
  • 深入理解ArkTS:Harmony OS 应用开发语言 TypeScript 的基础语法和关键特性
  • [C语言]时间戳
  • Unity3D Shader Graph 使用 DDXY 节点达到抗锯齿的原理详解
  • 【量化】蜘蛛网策略复现
  • uniapp原生插件 - android原生插件打包流程 ( 避坑指南一)
  • QML —— Tcp网络通信实例(qml前端,C++后端。附完整源码)
  • 【Spark精讲】SparkSQL的RBO与CBO
  • Java 已死、前端已凉?
  • 0基础学java-day24(MySQL)
  • 使用 Jackson 提取 JSON 数据值 - JsonUtils工具类
  • 西域都护府博物馆今日在新疆轮台县开馆
  • 去年上海全市博物馆接待观众约4087万人次,同比增31.9%
  • 舞者王佳俊谈“与AI共舞”:像多了一个舞伴,要考虑它的“感受”
  • 法律顾问被控配合他人诈骗酒店资产一审判8年,二审辩称无罪
  • 《制止滥用行政权力排除、限制竞争行为规定(修订草案征求意见稿)》公开征求意见
  • 网易有道一季度净利润同比增长247%:有能力在今年实现更强劲的利润增长