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…

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;现场…

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

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

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

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

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

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

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

内容概要 随着互联网的不断发展&#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图、网络拓扑图、平面图等。自定义图表元…

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

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

Axure PR 9 多级下拉清除选择器 设计交互

大家好&#xff0c;我是大明同学。 Axure选择器是一种在交互设计中常用的组件&#xff0c;这期内容&#xff0c;我们来探讨Axure中选择器设计与交互技巧。 OK&#xff0c;这期内容正式开始 下拉列表选择输入框元件 创建选择输入框所需的元件 1.在元件库中拖出一个矩形元件。…

2024年10月实测安装支持 winxp的最后一个python版本 2.7.18 和python 3.4.4版本,你觉得还能正常安装吗?

各位粉丝朋友们&#xff0c;大家好&#xff01;在编程的世界里&#xff0c;有时候特定的业务需求会让我们不得不使用老版本的软件。Python 目前支持 Windows XP 的最后一个版本为 Python 2.7.18。由于官网下载可能会比较耗时&#xff0c;为了方便大家&#xff0c;我将这个版本上…

省级- 可持续性再生能源消纳量(2015-2022年)

非水电可再生能源电力消纳量&#xff0c;作为衡量一个地区可再生能源利用程度的关键指标&#xff0c;正受到越来越多的关注。 非水电可再生能源电力消纳量指的是在一定时间内&#xff0c;除了水力发电之外的其他可再生能源&#xff08;如太阳能、风能、生物质能等&#xff09;…

基于uniapp微信小程序的旅游系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏&#xff1a;…

Golang的跨平台开发

Golang的跨平台开发 一、Golang跨平台开发概述 语言是一种开源的编程语言&#xff0c;由Google开发&#xff0c;广泛应用于云计算和网络编程领域。Golang具有并发性好、性能优异、内存管理自动化等特点&#xff0c;因此备受开发者青睐。其中&#xff0c;Golang的跨平台特性使得…

macOS Sonoma 14.7.1 (23H222) Boot ISO 原版可引导镜像下载

macOS Sonoma 14.7.1 (23H222) Boot ISO 原版可引导镜像下载 2024 年 10 月 28 日&#xff0c;Apple 智能今日登陆 iPhone、iPad 和 Mac。用户现可借助 Apple 智能优化写作&#xff0c;为通知、邮件和消息生成摘要&#xff0c;体验交互更自然、功能更丰富的 Siri&#xff0c;使…

【排序】常见的八大排序算法

目录 一、冒泡排序 二、堆排序 三、直接插入排序 四、希尔排序 五、直接选择排序 六、快速排序 七、归并排序 八、非比较排序 --- 计数排序 九、排序的分类及稳定性分析 总结 前言 本文排序算法有&#xff1a;冒泡排序、堆排序、直接插入排序、希尔排序、直接选择排序、快速排序…