Java基础之 API 字符串

news2024/11/26 1:58:55

文章目录

  • API
  • 字符串
    • String
      • 概述
      • 创建对象
    • java的内存模型
    • java的常用方法(比较)
      • 练习

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) + "次机会");
                }
            }


        }
    }
}

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1709142.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

三层交换机基本配置,动态路由链接

<Huawei>system-view //进入系统视图[Huawei]undo info-center enable //关日志[Huawei]vlan batch 2 3 //创建vlan2与3[Huawei]display vlan //检查[Huawei]interface GigabitEthernet 0/0/2 //进2口[Huawei-GigabitEthernet0/0/2]port link-type access //配置…

【STM32嵌入式系统设计与开发---传感器拓展】——1_2_蓝牙主从模块_AT配置(HC-05)

一、主机蓝牙设置 # 1、重置模块 ATORGL # 2、设置名字&#xff0c;自己随便设置 ATNAMEMaster # 3、设置连接密码&#xff0c;要和从机一样&#xff0c;密码好像可以不加双引号 ATPSWD"1234" # 4、设置为主机 ROLE 1 为主机 ROLE 0为从机 ATROLE1 # 5、设置波特…

04 FreeRTOS 队列(queue)

1、队列的特性 队列可以理解为一个传送带&#xff0c;一个流水线。 队列可以包含若干个数据&#xff1a;队列中有若干项&#xff0c;这被称为"长度"(length) 每个数据大小固定 创建队列时就要指定长度、数据大小 数据的操作采用先进先出的方法(FIFO&#xff0c;First…

Python OCR 文字检测使用模型:读光-文字检测-DBNet行检测模型-中英-通用领域

介绍 什么是OCR&#xff1f; OCR是“Optical Character Recognition”的缩写&#xff0c;中文意为“光学字符识别”。它是一种技术&#xff0c;可以识别和转换打印在纸张或图像上的文字和字符为机器可处理的格式&#xff0c;如计算机文本文件。通过使用OCR技术&#xff0c;可…

【Python安全攻防】【网络安全】一、常见被动信息搜集手段

一、IP查询 原理&#xff1a;通过目标URL查询目标的IP地址。 所需库&#xff1a;socket Python代码示例&#xff1a; import socketip socket.gethostbyname(www.163.com) print(ip)上述代码中&#xff0c;使用gethostbyname函数。该函数位于Python内置的socket库中&#xf…

xss-labs之level9、level10

一、level9 1、测试分析 尝试了之前的payload&#xff0c;发现都不行&#xff0c;看源码发现多了个strpos函数&#xff0c; strpos() 是一个在 PHP 中用于查找子串首次出现位置的函数。它接受两个参数&#xff1a;要搜索的字符串&#xff08;主字符串&#xff09;和要查找的子…

5.28OpenMV入门

10分钟快速上手 OpenMV中文入门教程 使用的元件 先安装好&#xff0c;上述链接上手 IDE显示颜色阈值&#xff0c;同时也配有示例文件&#xff0c;如下图打开&#xff0c;helloworld 你好&#xff0c;世界&#xff01; OpenMV中文入门教程&#xff0c;在官方也有每一个的详细…

公司如何监控到电脑端微信聊天记录的?

在当今职场环境中&#xff0c;确保信息交流的安全性和合规性成为了企业管理中的重要议题。 特别是在使用像微信这样的即时通讯工具进行工作沟通时&#xff0c;合理监控员工的电脑端微信聊天记录成为了一些企业的管理需求。 但值得注意的是&#xff0c;此类监控必须建立在合法…

[数据集][目标检测]道路井盖下水道井盖开关闭和检测数据集VOC+YOLO格式407张2类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;407 标注数量(xml文件个数)&#xff1a;407 标注数量(txt文件个数)&#xff1a;407 标注类别…

[图解]企业应用架构模式2024新译本讲解02-表数据入口

1 00:00:00,420 --> 00:00:04,330 这个案例&#xff0c;我们就是用书上的案例了 2 00:00:06,080 --> 00:00:08,860 收入确认的一个案例 3 00:00:09,510 --> 00:00:11,100 书上讲了&#xff0c;收入确认 4 00:00:13,330 --> 00:00:15,270 就是说&#xff0c;你给…

JMH304-剑侠情缘2网络版+2017纹饰端+翅膀+单机+外网整理+各种副本

资源介绍&#xff1a; 藏剑-太虚-梁山-杀手堂种树地宫师门纹饰装备长流云阳套等等———– 做登录器联系站长 资源截图&#xff1a; 下载地址

ue5 后期处理体积lut如何加入

零、需要颜色查找表格&#xff0c;ps 一、ps中 把调节好的shift 一起拖入颜色查找表格 二、存储为png格式 另存为 保护好原来的颜色查找表格 三、导入ue5中 四、在后期处理体积中搜索misc 替换颜色查找表格 五、双击后期处理体积 纹理组替换颜色查找表格 2. 压缩设置lut改成…

FreeRtos进阶——队列的特殊用途

信号量与互斥量都一样&#xff0c;都是特殊的队列。但是只有互斥量实现了优先级继承机制。 信号量与互斥量与队列一样&#xff0c;在操作增加或者减少时&#xff0c;必须先关中断在进行操作&#xff01; 信号量创建揭秘 图中信号量的创建过程&#xff0c;在代码中的体现本质就是…

嵌入式C语言指针详细解说

各位伙伴大家好,在实现操作系统的控制的时候,经常需要使用到指针,利用这次详细分析一下指针的用法。 C语言指针真正精髓的地方在于指针可以进行加减法,这一点极大的提升了程序对指针使用的灵活性,同时也带来了不小的学习负担。正是因为C语言指针可运算,才奠定了如今C语言…

【主流分布式算法总结】

文章目录 分布式常见的问题常见的分布式算法Raft算法概念Raft的实现 ZAB算法Paxos算法 分布式常见的问题 分布式场景下困扰我们的3个核心问题&#xff08;CAP&#xff09;&#xff1a;一致性、可用性、分区容错性。 1、一致性&#xff08;Consistency&#xff09;&#xff1a;…

自动化测试工程师面试,常问的问题有哪些?

自动化测试工程师面试是非常重要的环节&#xff0c;面试官会通过一系列的问题来评估候选人的技能和经验。下面是一些常见的问题&#xff0c;以及如何详细而规范地回答这些问题的建议。 1. 请介绍一下你的自动化测试经验。 回答这个问题时&#xff0c;可以从项目经验、使用的自…

离线安装kubernetes

我们很多时候在开发或测试环境中使用的Kubernetes集群基本都是云厂商提供或者说基于有网环境快速搭建的&#xff0c;但是到了客户的生产环境&#xff0c;往往基于安全考虑他们是不允许服务器连接外部网络的&#xff0c;这时我们就不得不在离线环境下完成部署工作。 1、前言 1…

ROS基础学习-话题通信机制研究

研究ROS通信机制 研究ROS通信机制 0.前言1.话题通信1.1 理论模型1.2 话题通讯的基本操作1.2.1 C++1.2.2 Python中使用自己的虚拟环境包1.2.2.1 参考11.2.2.2 参考21.2.2.3 /usr/bin/env:“python”:没有那个文件或目录1.2.3 Python1.2.2.1 发布方1.2.2.2 订阅方1.2.2.3 添加可执…

灵动微SPI LCD彩屏参考方案

LCD显示能够提供均匀的、流畅的、色彩鲜艳的动态或静态的图像&#xff0c;尤其在家电应用、智能家居应用、消费电子等产品中&#xff0c;受到了广大消费者的青睐&#xff0c;同时也受到了市场的广泛关注&#xff0c;为此&#xff0c;官方代理英尚微介绍搭载MM32系列MCU的SPI LC…

基于Matlab的车道线检测系统 (文末有代码获取链接)【含Matlab源码 MX_001期】

运行环境&#xff1a;Matlab2014b 部分代码&#xff1a; %% 视频流循环处理 % 创建一个循环过程来对给定视频进行车道线检测 % 该循环使用之前初始化的系统对象 warningTextColors {[1 0 0], [1 0 0], [0 0 0], [0 0 0]}; while ~isDone(hVideoSrc) RGB step(hVideoSrc);% …