java学习笔记(第四天:String、StringBuilder、ArrayList)

一、String类

1、String的特点

  • String的值创建后是不可变的。
  • String值不可变,但是可以被共享。
  • 字符串效果是相当于字符数组(char[]),但是底层原理是字节数组(byte[])

字符串创建后是不可变的,因此,如果对字符串进行拼接,则会分配新的内存。

public class StringTest {
    public static void main(String[] args) {
        String s = "Hello";
        s+="World";
        System.out.println(s);
    }
}

此例中,"Hello"、"World"和"HelloWorld"都指向不同的内存。

2、String构造方法

  • public String()、public String(char[])、public String(byte[])三种构造方法
  • String s = "abc"; 直接赋值的方式创建字符串对象;

使用构造方法,每次new都会申请一个内存地址,因此字符串对象的地址是不同的,而使用直接赋值的方法构造字符串对象,只要字符串内容完全相同,字符串对象的地址就是相同的。

3、字符串的比较

  • String类型的对象是引用类型数据,存放在堆内存中。
  • ==号作比较,基本类型比较的是数据值,而引用类型比较的是地址值。
  • 字符串内容的比较要使用equals()方法: s1.equals(s2)

4、遍历字符串

  • 获取字符串的每一个字符:public char charAt(int index)返回指定索引 index 处的字符,索引从0开始。
  • 获取字符串的长度:使用length()方法,s1.length()
  • 遍历通用格式:
for(int i=0;i<s.length();i++){
    s.charAt(i);
}

二、StringBuilder类

  • 创建的是一个可变的字符串类,解决了String类不可变导致的内存问题。
  • StringBuilder构造方法:public StringBulider()和public StringBulider(String str)
  • StringBulider的添加和反转方法:public StringBuilder append(任意类型)、Public StringBuilder reverse(),返回对象本身,不分配新的内存。
  • String和StringBuilder互相转换:
public class StringBuilderDemo {
    public static void main(String[] args) {
        StringBuilder s = new StringBuilder();
        s.append("hello");
        s.append(1000);

        //StringBuilder转换为String使用toString()方法
        s.toString();

        //String转换为StringBulider需要使用Public StringBuilder(String str)构造方法
        StringBuilder s2 = new  StringBuilder(s);
    }
}

三、ArrayList类

1、导包:import java.util.ArrayList;

2、数组的长度是不可变的,ArrayList提供一种存储空间可变的存储类型,存储数据的容量可以发生变化。

3、ArrayList<E>,<E>表示的是一种特殊的数据类型,泛型,使用引用类型替换即可。比如:

ArrayList<String>,ArrayList<Student>

4、ArrayList构造方法和添加方法

  • public ArrayList():创建一个空的集合对象
  • public boolean add(E e):将指定的元素e添加到此集合的末尾
  • public void add(int index,E e):在此集合中指定位置插入指定元素
import java.util.ArrayList;

public class ArrayListDemo {
    public static void main(String[] args) {
        ArrayList<String> array =new ArrayList<String>();
        array.add("hello");
        array.add(1,"world");
        System.out.println(array);
    }
}

5、ArrayList常用方法

方法作用
remove(Object o)删除指定元素,若有多个,只删除第一个,返回值是删除是否成功,boolean类型的变量
remove(int index)删除指定索引处的元素,返回被删除的元素
set(int index,E element)修改指定索引处的元素,返回被修改的元素
get(int index)返回指定索引处的元素值
size()返回集合中的元素个数

6、遍历ArrayList

import java.util.ArrayList;

public class ArrayListDemo {
    public static void main(String[] args) {
        ArrayList<String> array =new ArrayList<String>();
        array.add("hello");
        array.add(1,"world");
        array.add("hello");
        array.remove("hello");
        System.out.println(array);

        for(int i=0; i<array.size();i++){
            System.out.println(array.get(i));
        }
    }
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白马少年郎

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值