JavaSE笔记4】API、包、String类、Object类

目录

一、API

二、包

2.导入不同包下的同名程序

三、String

1. String类是什么?

2. 如何创建String对象?(常用的四种方法)

3. String API

a. 遍历字符串 

b. 判断字符串内容是否相等:

c. 截取子串

d. 替换部分内容

e. 匹配子串

f. 匹配开头字符串

g. 字符串切割

4. String的注意事项:

a. String的不可变

b. 以"  "创建的字符串

c. 通过new创建的字符串对象

d. 面试题 

T1. 常量折叠: 字符串的优化机制

T2. good and abc

5. 案例

a. 用户登录

b. 生成验证码

三、集合:ArrayList

1.什么是集合?

2. ArrayList API

a. 创建ArrayList集合对象

b. 在集合中添加元素

c. 获取集合中某个索引位置处的值

d. 获取集合的大小

e. 删除元素

f. 修改指定下标处的元素

3. 案例

a. 删除字符串集合中含有“枸杞”的字符串


一、API


二、包

2.导入不同包下的同名程序


三、String

1. String类是什么?

2. 如何创建String对象?(常用的四种方法)

eg. 创建String对象的四种方法:

还能使用char数组和byte数组创建String对象。

3. String API

a. 遍历字符串 

Java字符串不支持使用索引来访问或修改字符串中的单个字符。只能使用charAt()方法来通过索引获取指定位置的字符。


法一、遍历字符串,打印其中的每一个字符( charAt() ):


法二、把字符串转为字符数组再遍历( toCharArray() ):

b. 判断字符串内容是否相等:

已知Java中String是引用类型变量,存储的是字符串对象的地址,所以直接比较两个字符串变量,是在比较两个变量的地址是否相同,而不是比较内容是否相同。


 法一、equals(大小写敏感)


法二、equalsIgnoreCase(大小写不敏感)【比较验证码】

c. 截取子串

d. 替换部分内容

replace( )

e. 匹配子串

contains( ):精准匹配,大小写敏感

f. 匹配开头字符串

用来匹配姓氏:

  

g. 字符串切割

split( )


4. String的注意事项:

a. String的不可变

String类型的底层源码是一个用final修饰的char数组。(无法修改其内容,只能重新创建)

b. 以"  "创建的字符串

以"  "创建的字符串对象会放在堆内存的常量池中,且内容相同的不同变量引用的是同一个字符串。这样设计的好处是节约内存。

c. 通过new创建的字符串对象

每次new都会创建一个新对象放在堆内存中。

d. 面试题 

T1. 常量折叠: 字符串的优化机制

T2. good and abc

5. 案例

a. 用户登录

b. 生成验证码


四、集合:ArrayList

1.什么是集合?

相当于C++中的STL容器。

2. ArrayList API

a. 创建ArrayList集合对象

法一、不约束集合类型(可以添加任意类型的数据)

ArrayList list = new ArrayList();


法二·、约束集合类型(只能添加指定类型的数据)

ArrayList<String> list = new ArrayList<>(); //泛型思想

b. 在集合中添加元素

法一、add("w")  //在末尾加入一个元素

法二、add(1, "y") //在指定下标处加入一个元素

c. 获取集合中某个索引位置处的值

get(下标)


获取的是一个对象,要用equals()方法来比较是否相等。

d. 获取集合的大小

size()

  

e. 删除元素

法一、删除指定下标处的元素

remove(下标)


法二、删除指定元素

remove(对象) //注意删除到的是第一个匹配到的对象

f. 修改指定下标处的元素

set(1, "l")

3. 案例

a. 删除字符串集合中含有“枸杞”的字符串

获取集合数据:get()

匹配子串:contains()

删除集合数据:remove()


注意事项:注意集合数据删除后,后面的数据会往前挪动一个位置,如何直接i++,会跳过一个元素。


法一】正向遍历,每次删除后i--

法二】 倒着遍历删除



 五、Object类

a. 概念

b. toString 和 equals

  • toString方法默认返回 类型@hashcode。往往重写来打印类的内容。
  • equals比较的是地址(完全可以使用“==”来代替)。往往重写来比较两个对象的内容是否一致。

c. clone

  • clone方法是受保护的无法直接调用,想要使用clone方法,还有4个细节要处理


  • 重写clone方法,还必须要实现Cloneable这个接口(只是一个标记接口,里面没有要实现的方法),告诉编译器该类可以使用clone方法,否则会报错。


  • 还要处理异常CloneNotSupport


  • clone方法的返回值是Object类型,所以要将返回结果强转类型。

d. 浅拷贝和深拷贝

  • 浅拷贝与深拷贝的不同在于:引用类型成员内容相同,指向同一空间。我们上面写的就是浅拷贝。


  • 深拷贝:因为给拷贝出的新对象的的引用类型成员开辟了新空间,所以引用类型成员内容不同,指向不同空间,但空间中的内容相同

e. 深拷贝的实现

关键在于给对象的的引用类型成员开辟的新空间。所以在重写clone时我们要单独拿出引用类型成员,使用其clone方法创建一个新空间,再赋给引用类型成员。

  • 引用类型成员的类也要实现Cloneable接口。
  • 在clone方法中创建对象后,单独调用引用类型成员的clone方法克隆一个引用类型成员。


六、Objects类 

a. 概念


 ------------------------END-------------------------

才疏学浅,谬误难免,欢迎各位批评指正。

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

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

相关文章

「C/C++」C/C++ 之 判断语句

✨博客主页何曾参静谧的博客&#x1f4cc;文章专栏「C/C」C/C程序设计&#x1f4da;全部专栏「VS」Visual Studio「C/C」C/C程序设计「UG/NX」BlockUI集合「Win」Windows程序设计「DSA」数据结构与算法「UG/NX」NX二次开发「QT」QT5程序设计「File」数据文件格式「PK」Parasoli…

AES_ECB算法C++与Java相互加解密Demo

一、AES算法 AES是一种对称加密算法&#xff0c;算法秘钥长度可为128位(16字节)、192位(24字节)、256位(32字节)。加密模式分为ECB、CBC、CTR等&#xff0c;其中ECB模式最简单够用。现给出ECB模式下C和Java的实现&#xff0c;并且可以相互加解密验证。 二、AES_ECB实现DEMO …

webRTC搭建:STUN 和 TURN 服务器 链接google的有点慢,是不是可以自己搭建

如果使用 Google 提供的 STUN/TURN 服务器速度较慢&#xff0c;你完全可以自己搭建 STUN 和 TURN 服务器。这有助于提升网络连接速度和稳定性&#xff0c;特别是在需要穿透 NAT 或防火墙的网络环境下。 下面是如何自己搭建 STUN 和 TURN 服务器的具体步骤&#xff1a; 1. 选择…

nrm的使用

在安装nrm之前&#xff0c;要先完成node.js的安装。 1、nrm的介绍 ‌nrm&#xff08;npm registry manager&#xff09;是一个npm源管理器&#xff0c;允许用户在不同npm源之间快速切换。 关于npm和nvm的介绍&#xff0c;详见文章nvm的使用-CSDN博客。 解释&#xff1a;比如…

芯片上音频相关的验证

通常芯片设计公司&#xff08;比如QUALCOMM&#xff09;把芯片设计好后交由芯片制造商&#xff08;比如台积电&#xff09;去生产&#xff0c;俗称流片。芯片设计公司由ASIC部门负责设计芯片。ASIC设计的芯片只有经过充分的验证&#xff08;这里说的验证是FPGA&#xff08;现场…

SpringBoot最常用的注解

1、RestController 作用&#xff1a;与Controller类似&#xff0c;但是RestController会自动将返回值转换为JSON格式。 2、RequestMapping 作用&#xff1a;用于映射请求URL和处理方法。 RequestMapping是Spring MVC框架中的一个核心注解&#xff0c;它用于映射HTTP请求和控…

【论文分享】通过太阳轨迹和街景图像测量不同街道网络方向的太阳辐射及其时空分布

本次我们给大家带来一篇SCI论文的全文翻译。该论文利用街景数据和太阳轨迹模拟技术&#xff0c;揭示了不同方向街道上的太阳辐射在时空上的差异&#xff0c;为城市的可持续发展提供了更有针对性的策略。 【论文题目】 Measuring solar radiation and spatio-temporal distrib…

彩色圆形检测函数不使用OpenCV——C语言代码

1. 基于RGB颜色空间检测BMP图像中的红色和绿色圆形 以检测红色和绿色为例,标准的红色满足R=255,G=0,B为0,标准的绿色满足R=0,G=255,B为0,但实际拍摄的图像会存在偏差,此外,不同的红色/绿色有不同的R G B值,为了检测出所有的彩色圆形,将所有红色/绿色合计,取极限值…

基于springboot+vue实现的公考知识学习平台 (源码+L文+ppt)4-103

4.1 系统功能结构设计 根据对公考知识学习平台的具体需求分析&#xff0c;把系统可以划分为几个不同的功能模块&#xff1a;管理员可以对系统首页、个人中心、用户管理、讲师管理、在线咨询管理、学习资料管理、讲座信息管理、讲座预约管理、学习论坛、练习自测管理、试题管理…

使用CMake实现构建OpenCL程序

最近在研究如何使用使用CMake实现构建OpenCL程序&#xff0c;还是以数组加法为例子。该应用程序的CMake构建脚本将其构建为ISO C11应用程序&#xff0c;并打开了最合理的编译器警告&#xff0c;其CMakeLists.txt下&#xff1a; cmake_minimum_required(VERSION 3.10) # 3.10 &…

LabVIEW程序员的真实工作状态是怎样的?

LabVIEW程序员的工作状态通常涉及以下几个方面&#xff1a; 1. 项目开发与设计 需求分析&#xff1a;与客户或团队成员沟通&#xff0c;明确项目需求&#xff0c;制定开发计划。 系统设计&#xff1a;根据需求进行系统架构设计&#xff0c;包括硬件选型和软件模块划分。 2.…

Ubuntu18升级cmake3.10到cmake3.18

1、下载cmake版本3.18 wget -O cmake-3.18.2.tar.gz https://github.com/Kitware/CMake/releases/download/v3.18.2/cmake-3.18.2.tar.gz 2、解压cmake tar zxvf cmake-3.18.2.tar.gz 3、进入cmake进行编译 cd cmake-3.18.2 4、配置cmake ./bootstrap 5、make make 6…

搜索引擎算法更新对网站优化的影响与应对策略

内容概要 随着互联网的不断发展&#xff0c;搜索引擎算法也在不断地进行更新和优化。了解这些算法更新的背景与意义&#xff0c;对于网站管理者和优化人员而言&#xff0c;具有重要的指导意义。不仅因为算法更新可能影响到网站的排名&#xff0c;还因为这些变化也可能为网站带…

安装中文版 Matlab R2022a

下载安装包 压缩包有点大&#xff0c;大概20G 百度网盘&#xff1a;下载链接 提取码&#xff1a;rmja 安装 解压后打开目录&#xff0c;右键以管理员身份运行 setup.exe 选择输入安装秘钥 输入秘钥&#xff1a; 50874-33247-14209-37962-45495-25133-28159-33348-18070-6088…

互联网大厂最全Java面试题及答案整理(2024最新版)

很多 Java 工程师的技术不错&#xff0c;但是一面试就头疼&#xff0c;10 次面试 9 次都是被刷&#xff0c;过的那次还是去了家不知名的小公司。 问题就在于&#xff1a;面试有技巧&#xff0c;而你不会把自己的能力表达给面试官。 应届生&#xff1a;你该如何准备简历&#…

[Nginx]快速入门

Nginx概述 介绍 Nginx是一款轻量级的web 服务器/ 反向代理服务器/ 电子邮件(IMAP/POP3)代理服务器。其特点是占有内存少&#xff0c;并发能力强&#xff0c;事实上nginx的并发能力在同类型的网页服务器中表现较好 中国大陆使用nginx的网站有:百度、京东、新浪、网易、腾讯、…

坚持使用kimi搭建小程序2小时(04天/05天)

运用好kimi智能助手里面的存储小程序&#xff0c;{缺乏一个相对稳定的反馈体系&#xff0c;自己所挑选的稳定反馈体系就是编程!} 开源竞争&#xff1a; 当你无法彻底掌握一门技术的时候&#xff0c;就开源这门技术&#xff0c;培养出更多的技术依赖&#xff0c;让更多人完善你…

免费流程图制作工具 draw.io v24.5.3 中文绿色版

draw.io是一款免费的在线图表绘制工具&#xff0c;它提供了强大的功能和易于使用的界面&#xff0c;适用于各种绘图需求。 详细功能 多种类型的图表&#xff1a;draw.io支持创建各种类型的图表&#xff0c;包括流程图、组织结构图、UML图、网络拓扑图、平面图等。自定义图表元…

《计算机网络》期末复习资料

《计算机网络》考前必看资料 各章节重点内容 1&#xff0e;网络体系结构&#xff1a;分层、协议、服务、OSI与TCP模型层次及特点对比。 2&#xff0e;物理层&#xff1a;通信基础知识&#xff0c;信道复用技术。 3&#xff0e;数据链路层&#xff1a;物理链路与数据链路的区…

NVR小程序接入平台/设备EasyNVR多个NVR同时管理多平台级联与上下级对接的高效应用

政务数据共享平台的建设正致力于消除“信息孤岛”现象&#xff0c;打破“数据烟囱”&#xff0c;实现国家、省、市及区县数据的全面对接与共享。省市平台的“级联对接”工作由多级平台共同构成&#xff0c;旨在满足跨部门、跨层级及跨省数据共享的需求&#xff0c;推动数据流通…