【Java学习笔记】

API

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

API就是别人已经写好的东西,我们不需要自己编写。

Java API:指的就是JDK中提供的各种功能的Java类

这些类将底层的实现封装了起来,我们不需要关心这些类是如何实现的,只需要学习这些类如何使用即可。

已经学习过的API:Scanner、Random

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

字符串String

字符串学习内容:String、StringBuilder、StringJonier、StringBuffer、Pattern、Matcher

String

字符串的内容是不会发生改变的,它的对象

在创建后不能被更改。

创建String对象的两种方式:

  1. 直接赋值:当使用双引号直接赋值时,系统会检查该字符串在串池(StringTable)中是否存在。不存在:创建新的;存在:复用。(简单,节约内存)

    String name = "懒羊羊";
    

    在这里插入图片描述

  2. new:每new一个对象,就会开辟一块新的内存空间

    构造方法说明
    public String()创建空白字符串,不包含任何内容
    public String(String original)根据传入的字符串,创建字符串对象
    public String(char[] chs)根据字符数组,创建字符串对象
    public String(byte[] chs)根据字节数组,创建字符串对象

在这里插入图片描述

public class StringDemo01 {
    public static void main(String[] args) {
        //使用new的方法来获取一个字符串对象
        //空参构造:可以获取一个空白的字符串对象
        String s1 = new String();
        System.out.println("@"+s1+"!"); //s1=="",没有任何内容,@!

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

        //传递一个字符数组,根据字符数组的内容再创建一个新的字符串对象
        //需求:要修改字符串的内容:abc->qbc
        //abc->{'a','b','c'}->{'q','b','c'}->qbc
        char[] chs = {'a','b','c','d'};
        String s3 = new String(chs);
        System.out.println(s3);//abcd

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

Java的常用方法(比较):

  1. “==“号比的是什么?
    • 基本数据类型:比较的是数据值;
    • 引用数据类型(类、接口、数组):比较的是地址值。
  2. 字符串比较:
    • boolean equals方法(要比较的字符串):完全一样结果才是true,否则为false;
    • boolean equalsIgnoreCase(要比较的字符串):忽略大小写的比较。
public class StringDemo02 {
    public static void main(String[] args) {
        //1.创建两个字符串对象
        String s1 = new String("abc");//堆地址
        String s2 = "abc";//串池地址

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

        //3.比较字符串对象中的内容是否相等
        boolean result1 = s1.equals(s2);//完全相同才是true
        System.out.println(result1);//true,若s2="Abc",则结果为false

        //4.比较字符串对象中的内容是否相等,忽略大小写
        //1 一 壹 不可以
        //忽略大小写只能是英文状态下的a A
        boolean result2 = s1.equalsIgnoreCase(s2);
        System.out.println(result2);//true,若s2="Abc",结果也为true

    }
}

练习:

/**
 * 已知正确的用户名和密码,请用程序实现模拟用户登录,
 * 总共给三次机会,登录之后,给出相应的提示
 */
public class StringDemo04 {
    public static void main(String[] args) {
        //读题拆解法

        //1.定义两个变量,记录正确的用户名和密码
        String rightUserName = "Jin";
        String rightPassWord = "512512";
        int count = 3;

        //2.键盘录入用户名和密码
        Scanner scanner = new Scanner(System.in);
        do {
            System.out.println("请输入用户名:");
            String userName = scanner.next();
            System.out.println("请输入用户名密码:");
            String passWord = scanner.next();

            //3.比较
            if(userName.equals(rightUserName) && passWord.equals(rightPassWord)) {
                System.out.println("用户登录成功!");
                break;
            }else {
                count--;
                if (count != 0) {
                    System.out.println("用户登录失败,用户名或密码有误,您还有"+count+"次机会,请重新输入!");
                }else {
                    System.out.println("用户登录失败,用户名或密码有误,账号被锁定,请联系官方客服!");
                }
            }
        }while(count > 0);

//        for (int i = 0; i < count; i++) {
//            System.out.println("请输入用户名:");
//            String userName = scanner.next();
//            System.out.println("请输入用户名密码:");
//            String passWord = scanner.next();
//
//            //3.比较
//            if(userName.equals(rightUserName) && passWord.equals(rightPassWord)) {
//                System.out.println("用户登录成功!");
//                break;
//            }else {
//                if (count-i-1 != 0) {
//                    System.out.println("用户登录失败,用户名或密码有误,您还有"+count+"次机会,请重新输入!");
//                }else {
//                    System.out.println("用户登录失败,用户名或密码有误,请您下次再尝试登录!");
//                }
//            }
//        }
        scanner.close();

    }
}

说明:

以上笔记学习是学习b站黑马程序员时记下的笔记,仅限于帮助理解学习,不做任何其他商业用途。

黑马程序员

  • 11
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值