Java基础之 API & 字符串

API

概念: APl(Application ProgrammingInterface): 应用程序编程接口
简单理解: API就是别人已经写好的东西,我们不需要自己编写,直接使用即可。
在这里插入图片描述

Java API: 指的就是JDK 中提供的各种功能的java类
这些类将底层的实现封装了起来,我们不需要关心这些类是如何实现的,只需要学习这些类如何使用即可

API帮助文档: 帮助开发人员更好的使用API和查询API的一个工具。

在这里插入图片描述

字符串

String

概述

java.lang.String 类代表字符串,Java 程序中的所有字符串文字(例如“abc”)都为此类的对象。

注意点: 字符串的内容是不会发生改变的,它的对象在创建后不能被更改

总结:

1.String是Java定义好的一个类。定义在java.lang 包中
所以使用的时候不需要导包。

2.Java 程序中的所有字符串文字(例如“三连投币”)都被实为此类的对象。

3.字符串不可变,它们的值在创建后不能被更改

创建对象

  1. 直接赋值
    String name = “宫水三叶”;
  2. new + 构造方法
    在这里插入图片描述
package String;

public class StringDemo1 {
    public static void main(String[] args) {
        //直接赋值的方法获得一个字符串
        String s1 = "Hello World";
        System.out.println(s1);

        //使用new 的方式来获取字符串的对象
        //空参
        String s2 = new String();
        System.out.println("@" + s2 + "!");

        //传递一个字符串,根据传递的字符串内容再创建一个新的字符串对象
        String s3 = new String("Hello World");
        System.out.println(s3);

        //传递一个字符数组,再根据字符数组的内容创建一个字符串对象
        //需求:将ABC 改为BBC
        //ABC ---> {'A','B','C'} ---> {'B','B','C'}
        char [] chs = {'A','B','C','D','E','F','G','H'};
        String s4 = new String(chs);
        System.out.println(s4);

        //传递一个字节数组,根据字节数组的内容再创建一个字符串对象
        //应用场景:以后在网络中传输的其实是字节信息
        //我们一般要把字节信息进行转换,转换成字符串,用到这个构造
        byte [] bytes = { 97, 98, 99, 100};
        String s5 = new String(bytes);
        System.out.println(s5);
    }
}

java的内存模型

在这里插入图片描述

注意:StringTable(串池)在JDK7版本开始从方法区中挪到了堆内存

在这里插入图片描述
在这里插入图片描述
当使用双引号直接赋值时,系统会检查该字符串在串池中是否存在,不存在:创建新的存在:复用

举例:
在这里插入图片描述
在这里插入图片描述
只要是new出来的新的变量都会在堆内存开辟一个新的位置出来

java的常用方法(比较)

==号比的到底是什么?
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

package String;

public class StringDemo2 {
    public static void main(String[] args) {
        //创建一个字符串对象
        String s1 = new String("abc");
        String s2 =  "Abc";

        //==号的比较
        //基本数据类型比较的是数据值
        //引用数据类型比较的是地址值
        System.out.println(s1==s2);

        //比较字符串对象中的内容是否相等
        boolean result = s1.equals(s2);
        System.out.println(result);


        //比较字符串中内容是否相等,忽略大小写
        //忽略大小写只能忽略英文的大小写
        boolean result2 = s1.equalsIgnoreCase("abc");
        System.out.println(result2);
    }
}

练习

在这里插入图片描述
代码呈现

package String;

import java.util.Scanner;

public class StringDemo4 {
    public static void main(String[] args) {
        //定义两个变量记录正确的用户名和密码
        String rightUsername = "youzi";
        String rightPassword = "123456";

        //键盘录入用户名和密码
        Scanner sc = new Scanner(System.in);
        for (int i = 0; i < 3; i++) {

            System.out.println("请输入用户名: ");
            String username = sc.next();
            System.out.println("请输入密码");
            String password = sc.next();

            //比较
            if (username.equals(rightUsername) && password.equals(rightPassword)) {
                System.out.println("用户登录成功");
                break;
            } else {
                if (i == 2) {
                    System.out.println("您的账户已被锁定,解锁请联系工作人员");
                } else {
                    System.out.println("用户登录失败,用户名或密码错误,还剩下" + (2 - i) + "次机会");
                }
            }


        }
    }
}

运行结果
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值