1.API

1.1API概述

  • 什么是API

    API (Application Programming Interface) :应用程序编程接口

  • 简单理解

    API就是别人写好的东西,我们不需要自己编写,直接使用即可。

  • Java API

    指的就是JDK中提供的各种功能的JAVA类。

image-20220728074156869

2.String类

2.1String类概述

​ String 类代表字符串,Java 程序中的所有字符串文字(例如“abc”)都被实现为此类的实例。也就是说,Java 程序中所有的双引号字符串,都是 String 类的对象。String 类在 java.lang 包下,所以使用的时候不需要导包!

2.2String类的特点

  • 字符串不可变,它们的值在创建后不能被更改(如果要变,可以变成数组,拆分每个字符,然后再重组,麻烦。)
  • 虽然 String 的值是不可变的,但是它们可以被共享
  • 字符串效果上相当于字符数组( char[] ),但是底层原理是字节数组( byte[] )

2.3String类的构造方法

image-20220728081329663

直接赋值用的是最多的。其次就是字符数组和字节数组(3、4)

2.4创建字符串对象两种方式的区别

  • 通过构造方法创建

    通过 new 创建的字符串对象,每一次 new 都会申请一个内存空间,虽然内容相同,但是地址值不同

  • 直接赋值方式创建

    以“”方式给出的字符串,只要字符序列相同(顺序和大小写),无论在程序代码中出现几次,JVM 都只会建立一个 String 对象,并在字符串池中维护

2.5字符串的比较

2.5.1==号的作用

  • 比较基本数据类型:比较的是具体的数据值
  • 比较引用数据类型:比较的是对象地址值

image-20220728082227425

字符串的比较

image-20220728082409378

2.5.2equals方法的作用

  • 方法介绍(equals)

    1
    public boolean equals(String s)     比较两个字符串内容是否相同、区分大小写
  • 忽视大小写的比较方法(equalsIgnore)

    image-20220728083758825

只要想比较字符串的内容,就必要用String里面的方法。(根据这个结论做2.6)

2.6用户登录案例

2.6.1案例需求

​ 已知用户名和密码,请用程序实现模拟用户登录。总共给三次机会,登录之后,给出相应的提示。

2.6.2代码实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
public class Test1登录案例 {
public static void main(String[] args) {
//1.定义两个变量用来记录正确的用户名和密码
String rightUsername = "itheima";
String rightPassword = "1234qwer";

//2.键盘录入用户名和密码
//ctrl + alt + T 选择包裹方式

for (int i = 0; i < 3; i++) {//0 1 2
Scanner sc = new Scanner(System.in);
System.out.println("请输入用户名");
String username = sc.next();
System.out.println("请输入密码");
String password = sc.next();

//3.判断比较
if (username.equals(rightUsername) && password.equals(rightPassword)) {
System.out.println("登录成功");
//如果正确,循环结束
break;
} else {
//最后一次机会
if(i == 2){
System.out.println("账户" + username + "被锁定,请联系黑马程序员官方小姐姐:XXXXXXX");
}else{
//不是最后一次机会
System.out.println("用户名或密码错误,登录失败,还剩下" + (2 - i) + "次机会");//2 1 0
}
}
}

}
}

知道循环用次数用for,不知道用while(技巧)

2.7String常用API

image-20220728101937447

image-20220728142815968

3.ArrayList

集合和数组的优势对比:

  1. 长度可变
  2. 添加数据的时候不需要考虑索引,默认将数据添加到末尾

3.1 ArrayList类概述

  • 什么是集合

    ​ 提供一种存储空间可变的存储模型,存储的数据容量可以发生改变

  • ArrayList集合的特点

    ​ 长度可以变化,只能存储引用数据类型。

  • 泛型的使用

    ​ 用于约束集合中存储元素的数据类型

1
2
3
4
5
6
7
8
9
10
public class ArrayListDemo02 {
public static void main(String[] args) {
//创建集合
ArrayList<String> array = new ArrayList<String>();
//添加元素
array.add("hello");
array.add("world");
array.add("java");
}
}

3.2Arraylist成员方法

image-20220728143321130

根据上图所编写的测试例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
//1.创建一个集合
ArrayList<String> list = new ArrayList<>();

//2.添加一个元素
list.add("aaa");
list.add("bbb");
list.add("ccc");
System.out.println(list);

//3.删除一个元素
list.remove("aaa");
System.out.println(list);

//3.1删除索引元素
list.remove(0);
System.out.println(list);

//4.修改元素
list.set(0,"ddd");
System.out.println(list);

//5.查询元素
list.get(0);
System.out.println(list);

//6.遍历
for (int i = 0; i < list.size(); i++) {
//i:索引
//list.get(i) 元素
String s = list.get(i);
System.out.println(s);

注意:list的遍历和其他还不一样,list的遍历都是size。其他的都是length。而且size还是一个方法。