Java常用API

day08——Java常用API

一、今日内容介绍、API概述

学习了面向对象编程,使用面向编程这个套路,需要自己写类,然后创建对象来解决问题。但是在以后的实际开发中,更多的时候,利用面向编程这种套路,使用别人已经写好的类来编程的。

常用API(全称是Application Program Interface 应用程序接口),说人话就是:别人写好的一些程序,给咱们程序员直接拿去调用。

Java官方其实已经给我们写好了很多很多类,每一个类中又提供了一系列方法来解决与这个类相关的问题。

  • 比如String类,表示字符串,提供的方法全都是对字符串操作的。

  • 比如ArrayList类,表示一个容器,提供的方法都是对容器中的数据进行操作的。

像这样的类还有很多,Java把这些类是干什么用的、类中的每一个方法是什么含义,编写成了文档,我们把这个文档称之为API文档。

1. 为什么要学习别人写好的程序呢?

在行业中有这么一句话:“不要重复造轮子”。这里所说的轮子就是别人已经写过的程序。意思就是不要写重复的程序,因为程序是用来解决问题的,如果这个问题别人已经解决过,并且这个解决方案也得到了市场认可,那就不用再自己重复写这个程序了。

Java已经发展了20多年,在这20多年里,已经积累类了很多问题的解决方案,基本上现在遇到的问题,在这20多年里,早就有人解决过。

所以把面向对象的高级知识学习完之后,Java语言的语法知识就已经学习完了。剩下的所有内容都是是学习一个一个的API,通过调用API提供的方法来解决实际问题。

2. 要学习哪些API

Java的API文档中,有那么多的类,是所有的类都要学习吗?并不是 ,虽然Java提供了很多个类,但是并不是所有类都得到了市场认可,我们只学习一些在工作中常用的就行。

除了Java官方提供的API,还一些第三方的公司或者组织也会提供一些API,甚至比Java官方提供的API更好用,在需要的时候我们也会告诉大家怎么用。

3. 今天我们主要学习两个类,一个是String类、还有一个是ArrayList类。

字符串的应用场景是非常多的,可以说是无处不在。

比如,在用户登录时,需要对用户名和密码进行校验,这里的用户名和密码都是String

再比如,在和网友聊天时,其实输入的文字就是一个一个字符串

再比如,在百度上搜索时,搜素的关键词,也是字符串

学习完String类之后,还会学习一个类ArrayList

大家知道数组是一个容器,有数组干嘛还要集合呢? 因为数字的长度是固定的,一旦创建不可改变。

比如数组的长度为3,想要存储第4个元素就存不进去了。

使用集合就可以解决上面的问题,集合可以根据需要想存多少个元素就存多少个元素。

二、包

1. 什么是包

在学习API类之前,先要学习包。因为Java官方提供的类有很多,为了对这些类进行分门别类的管理,别人把写好的类都是放在不同的包里的。

包其实类似于文件夹,一个包中可以放多个类文件。

建包的语法格式:

//类文件的第一行定义包
package com.itheima.javabean;
​
public class 类名{
    
}

2. 在自己的程序中,调用其他包中的程序,需要注意下面一个问题

  • 如果当前程序中,要调用自己所在包下的其他程序,可以直接调用。(同一个包下的类,互相可以直接调用)

  • 如果当前程序中,要调用其他包下的程序,则必须在当前程序中导包, 才可以访问!

    导包格式:import 包名.类名

  • 如果当前程序中,要调用Java.lang包下的程序,不需要我们导包的,可以直接使用。

  • 如果当前程序中,要调用多个不同包下的程序,而这些程序名正好一样,此时默认只能导入一个程序,另一个程序必须带包名访问。

三、String类

1. String类概述

学习String这个类,也就是学对字符串进行处理。为什么要学习字符串处理呢?因为在开发中对于字符串的处理还是非常常见的。

比如:在用户登录时,用户输入的用户名和密码送到后台,需要和正确的用户名和密码进行校验,这就需要用到String类提供的比较功能。

再比如:同学们在直播留言时,有些小伙伴可能不太文明说了一些脏话,后台检测到你输入的是脏话,就会用***把脏话屏蔽掉。这也需要用到String类提供的替换功能

Java为了方便我们处理字符串,所以给我们提供了一个String类来代表字符串,这个类就是java.lang包下。

按照面向对象的编程思想,对于字符串的操作,只需要创建字符串对象,用字符串对象封装字符串数据,然后调用String类的方法就可以了。


2. String创建对象

接下来我们打开String类的API,看一下String类的对象如何创建。

String类的API中,有这么一句话:“Java程序中的所有字符串字面值(如"abc")都是字符串的实例实现”。这里所说的实例实现,其实指的就是字符串对象。

意思就是:所有Java的字符串字面值,都是字符串对象。

  • 所以创建String对象的第一种方式就有了

String s1 = "abc"; //这里"abc"就是一个字符串对象,用s1变量接收
​
String s2 = "你好呀"; //这里的“你好呀”也是一个字符串对象,用s2变量接收
  • 创建String对象还有第二种方式,就是利用String类的构造方法创建String类的对象。

前面学习过类的构造方法,执行构造方法需要用到new关键字。new String(参数)就是在执行String类的构造方法。

下面演示通过String类的构造方法,创建String类的对象

// 1、直接双引号得到字符串对象,封装字符串数据
String name = "你好666";
System.out.println(name);
​
// 2、new String创建字符串对象,并调用构造器初始化字符串
String rs1 = new String();
System.out.println(rs1); // ""
​
String rs2 = new String("itheima");
System.out.println(rs2);
​
char[] chars = {'a', '你', '好'};
String rs3 = new String(chars);
System.out.println(rs3);
​
byte[] bytes = {97, 98, 99};
String rs4 = new String(bytes);
System.out.println(rs4);

关于String类是用来干什么的,以及String类对象的创建。最后总结一下

1. String是什么,可以做什么?
    答:String代表字符串,可以用来创建对象封装字符串数据,并对其进行处理。
​
2.String类创建对象封装字符串数据的方式有几种?
    方式一: 直接使用双引号“...” 。
    方式二:new String类,调用构造器初始化字符串对象。

3. String类的常用方法

如何通过字符串对象封装数据,接下来调用String类的方法对象字符串数据进行处理。

这里已经将String类的常用方法,先快速的认识一下。为什么是快速认识一下呢?因为API真正的作用是来解决业务需求的,如果不解决业务需求,只是记API是很难记住的。

所以API的正确打开方式是,先找到这个类,把这个类中的方法先用代码快速过一遍,有一个大概印象就行。然后再具体的案例中,选择你需要的方法来用就行。

下面我们就把String类中的方法,按照方法的调用规则,先快速过一遍。(注意:第一次调用API方法,都是看着API方法来调用用的,不是背的)

public class StringDemo2 {
    public static void main(String[] args) {
        //目标:快速熟悉String提供的处理字符串的常用方法。
        String s = "你好Java";
        // 1、获取字符串的长度
        System.out.println(s.length());
​
        // 2、提取字符串中某个索引位置处的字符
        char c = s.charAt(1);
        System.out.println(c);
​
        // 字符串的遍历
        for (int i = 0; i < s.length(); i++) {
            // i = 0 1 2 3 4 5
            char ch = s.charAt(i);
            System.out.println(ch);
        }
​
        System.out.println("-------------------");
​
        // 3、把字符串转换成字符数组,再进行遍历
        char[] chars = s.toCharArray();
        for (int i = 0; i < chars.length; i++) {
            System.out.println(chars[i]);
        }
​
        // 4、判断字符串内容,内容一样就返回true
        String s1 = new String("你好");
        String s2 = new String("你好");
        System.out.println(s1 == s2); // false
        System.out.println(s1.equals(s2)); // true
​
        // 5、忽略大小写比较字符串内容
        String c1 = "34AeFG";
        String c2 = "34aEfg";
        System.out.println(c1.equals(c2)); // false
        System.out.println(c1.equalsIgnoreCase(c2)); // true
​
        // 6、截取字符串内容 (包前不包后的)
        String s3 = "Java是最好的编程语言之一";
        String rs = s3.substring(0, 8);
        System.out.println(rs);
​
        // 7、从当前索引位置一直截取到字符串的末尾
        String rs2 = s3.substring(5);
        System.out.println(rs2);
​
        // 8、把字符串中的某个内容替换成新内容,并返回新的字符串对象给我们
        String info = "这个电影简直是个垃圾,垃圾电影!!";
        String rs3 = info.replace("垃圾", "**");
        System.out.println(rs3);
​
        // 9、判断字符串中是否包含某个关键字
        String info2 = "Java是最好的编程语言之一,我爱Java,Java不爱我!";
        System.out.println(info2.contains("Java"));
        System.out.println(info2.contains("java"));
        System.out.println(info2.contains("Java2"));
​
        // 10、判断字符串是否以某个字符串开头。
        String rs4 = "张三丰";
        System.out.println(rs4.startsWith("张"));
        System.out.println(rs4.startsWith("张三"));
        System.out.println(rs4.startsWith("张三2"));
​
        // 11、把字符串按照某个指定内容分割成多个字符串,放到一个字符串数组中返回给我们
        String rs5 = "张无忌,周芷若,殷素素,赵敏";
        String[] names = rs5.split(",");
        for (int i = 0; i < names.length; i++) {
            System.out.println(names[i]);
        }
    }
}

演示完String类的这些方法之后,对字符串有哪些方法,就已经有一个大致印象了。至少知道String字符串能干哪些事情。

至于String类的这些方法是否都记住了,这个还需要通过一些案例训练,在用的过程中去找哪个方法能够解决你的实际需求,就用哪个方法。同一个方法用的次数多个,自然就记住了。

4. String的注意事项

字符串的一些常用方法,在实际工作中用这些方法解决字符串的常见问题是完全足够的,但是在面试时可能会问一些原理性的东西。

所以把字符串原理性的内容,就当做注意事项来学习一下。一共有下面的2点:

  • 注意事项1:String类的对象是不可变的对象

这里问题就来了,你不是是说:String类的对象是不可变的字符串对象吗?我看name的值变了呀!!!

  • 总结一下,字符串的注意事项。

1. String是不可变字符串对象
2. 只要是以“...”方式写出的字符串对象,会存储到字符串常量池,且相同内容的字符串只存储一份;
3. 但通过new方式创建字符串对象,每new一次都会产生一个新的对象放在堆内存中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值