JavaSE基础——课程笔记
2023-03-31 11:02:05 时间
Java概述、IDEA、Java基础语法
1.常用dos命令
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220709104443366-311035563.png)
2.Java程序的执行原理
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220709104443128-562568707.png)
3.JDK、JRE、Java跨平台原理介绍
1)JDK运行Java的原理
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220709162852196-1162164346.png)
2)JDK、JRE的关系
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220709104443765-2007219435.png)
3)跨平台工作原理
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220709104443732-1525024916.png)
4.idea中得代码结构
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220709104443727-2126084593.png)
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220709104443035-1453422976.png)
包在src目录下创建
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220709104443023-1900784957.png)
ithema-order 模块
com.itheima 包
OrderDemo 类
5.idea中的快捷键
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220709104443746-1350781699.png)
6.导入/删除模块
1)建议自己建模块然后将src目录下的文件复制到新建模块下
2)如果模块每删除干净需要进到idea文件夹
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220709104443052-920696469.png)
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220709104443038-159610322.png)
然后重启idea,才真正删除干净
7.注释
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220709104443724-1104885517.png)
8.字面量
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220709104443065-1476601362.png)
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220709104443280-128677129.png)
补充:
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220709104443066-1741697785.png)
9.数据类型
①基本数据类型
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220709104443676-506798588.png)
②引用数据类型
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220709104443101-974199605.png)
③存储单位(计算机内部是以二进制存储数据)
计算机中存储数据的最小单位是:字节(byte),用B表示。
1TB = 1024GB
1GB = 1024MB
1MB = 1024KB
1KB = 1024B
10.变量
1)定义
变量就是内存中的存储空间,空间中存储的数据可以发生改变
2)注意事项
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220709104443678-348890816.png)
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220709104443145-1759513931.png)
11.字符串数据
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220709104443255-16966699.png)
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220709104443658-842987863.png)
12.关键字
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220709104443395-1336086731.png)
13.标识符
1)定义
给类、方法、变量等起名的符号
2)标识符规则
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220709104443176-602383028.png)
3)命名约定
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220709104443725-821011756.png)
数据类型、运算符、API介绍、键盘录入
1.运算符
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220709162852221-1345121265.png)
Java中,两个整数相除得到的结果还是整数
2.数据拆分
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220709162851978-2143527864.png)
3.+操作的三种情况
1)数字相加(数据类型转换)
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220709162852157-1464690308.png)
强制类型转换补充:
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220709162852061-858376363.png)
2)字符相加
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220709162852086-849927858.png)
3)字符串相加
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220709162852082-968458241.png)
4.赋值运算符(除了“=”都是扩展)
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220709162852198-442145602.png)
5.关系运算符
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220709162852245-2106007089.png)
6.逻辑运算符
1)定义
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220709162852203-1881617616.png)
2)短路逻辑运算符
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220709162852059-126707246.png)
3)实例
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220709162852091-806816336.png)
4)注意
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220709162852033-37139658.png)
7.三元运算符
1)格式
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220709162852097-203742712.png)
2)三元运算符的嵌套
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220709162852082-416845149.png)
8.自增自检运算符
1)定义
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220709162852093-1833306208.png)
2)注意事项
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220709162852032-36651551.png)
3)实例
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220709162852058-1193814114.png)
9.运算符的优先级(了解不需要背)
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220709162852176-1783405028.png)
10.API介绍,键盘录入
1)API
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220709162852111-942339825.png)
2)实现键盘录入功能
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220709162852230-1249579779.png)
程序流程控制、Random类
1.顺序结构
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220709214207860-1478364730.png)
2.if语句
1)格式1
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220709214208163-1173400989.png)
2)格式2
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220709214208198-1351949683.png)
3)格式3
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220709214208269-2103115152.png)
3.Debug
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220709214207949-1722133446.png)
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220709214208250-1226783190.png)
4.Switch语句
1)概述
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220709214208221-1748402266.png)
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220709214208191-1576209207.png)
2)注意事项
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220709214207975-1731523783.png)
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220709214207877-364301188.png)
3)穿透性的运用(实例)
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220709214208024-2045725963.png)
4)switch和if的对比
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220709214207841-1690499339.png)
5.for循环语句
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220709214208296-1176371318.png)
流程
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220709214207890-1689105306.png)
6.while循环语句
1)流程
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220709214208247-1303555643.png)
2)案例
求奇数和的两种实现方式
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220709214207829-1229472170.png)
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220709214207796-948938949.png)
3)小技巧
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220709214207919-817531534.png)
7.do......while循环语句
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220709214208222-1941010658.png)
8.三种循环语句的区别
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220709214207992-1764627336.png)
1)for和while的区别
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220709214207858-1819706524.png)
2)三种循环的死循环
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220709214207900-1389098091.png)
9.跳转控制语句
1)continue和break
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220709214208196-931327057.png)
2)break实例
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220709214208035-1236633869.png)
3)continue实例
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220709214208032-190669049.png)
10.死循环和跳转控制语句的应用
1)案例1
①需求
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220709214208044-960574755.png)
②实现
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220709214207885-965636003.png)
2)案例2
①需求
利用死循环实现用户密码验证
②实现
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220709214208195-821636461.png)
11.嵌套循环
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220709214207978-795120996.png)
12.Random类
1)概述
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220709214208220-812191224.png)
2)补充
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220709214208130-988155853.png)
3)减加法实例
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220709214207930-1514182290.png)
数组、Debug
1.数组的定义和静态初始化
1)概述
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220710223135025-335135399.png)
2)数组的定义格式
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220710223135129-100868999.png)
3)初始化
①概述
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220710223135122-549533745.png)
②静态初始化
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220710223135076-1296905575.png)
4)数组的原理
①原理
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220710223135138-1695376637.png)
②实例
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220710223135061-1397738569.png)
5)数组元素访问(获取和修改)
①数组的元素访问
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220710223135237-1134014567.png)
②索引
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220710223135131-871305613.png)
数组的最大索引:
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220710223134929-1481158219.png)
③注意事项
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220710223135037-1283552245.png)
2.动态初始化数组
1)定义
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220710223134895-1623907.png)
2)格式
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220710223135092-1705551962.png)
3)元素默认值规则
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220710223135218-1385520905.png)
3.数组的遍历
1)概述
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220710223134995-1606624766.png)
2)快捷键
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220710223135102-590014737.png)
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220710223135103-1660235590.png)
3)用遍历计算最大值时,将max赋值数组中的元素,防止结果不准确
4)实例(随机排名)
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220710223135134-1139171686.png)
4.Java内存分配介绍、数组内存图
1)概述
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220710223135205-416137400.png)
2)实例
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220710223135286-658544162.png)
5.两个变量指向同一个数组
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220710223135230-1957422059.png)
6.常见问题
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220710223135246-489178503.png)
方法
1.方法概述
1)定义
方法(method):完成特定功能的代码块
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220714125856821-1834792300.png)
2)优点
①提高了代码的复用性
②让代码的逻辑更清晰
2.方法的定义和调用
1)定义
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220714125856778-1150754456.png)
2)调用
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220714125856565-1055181561.png)
3.Debug查看方法调用的执行流程
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220714125856747-319461267.png)
4.带参数方法的定义和调用
1)定义
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220714125857061-365267269.png)
2)调用
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220714125857128-546355192.png)
3)实例
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220714125856646-1434451846.png)
5.形参和实参
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220714125856673-194432181.png)
6.带返回值方法的定义和调用
1)定义
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220714125856799-1553203560.png)
2)调用
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220714125856845-1374503937.png)
3)实例
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220714125856701-1776727478.png)
7.小技巧
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220714125856598-989015106.png)
8.方法的注意事项
1)方法与方法之间是平级,不能嵌套定义
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220714125856987-1726865226.png)
2)void表示无返回值,可以省略return,也可以单独的书写return,后面不加数据
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220714125856928-1076003910.png)
3)有返回值的方法必须 return一个对应类型的数据
4)方法的顺序无所谓
5)return语句的后面不能编写代码,因为执行不到
6)方法不调用就不执行,调用时候必须严格遵照方法的参数情况
7)
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220714125857086-1194435233.png)
10.方法的通用格式
1)通用格式
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220714125857069-555375826.png)
2)两个明确和调用
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220714125856991-302680280.png)
11.方法的内存原理
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220714125856532-615840302.png)
方法调用结束后,会从栈内存中移除
12.方法的参数传递机制
1)基本类型的参数传递
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220714125856674-1670072117.png)
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220714125857081-1034342847.png)
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220714125856745-442674423.png)
2)引用类型的参数传递
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220714125857107-628136269.png)
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220714125856921-1667016737.png)
12.方法重载
1)定义
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220714125857179-1328904749.png)
2)优化
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220714125856729-1633438777.png)
3)实例
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220714125856879-1027041199.png)
4)作用
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220714125856744-1733905928.png)
5)识别技巧
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220714125856845-379565511.png)
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220714125857157-731880178.png)
13.return关键字单独使用
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220714125857045-984603456.png)
编程思维和编程能力、综合应用专题
1.巧用标志位(可用于循环中多次比较同一组条件)
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220716134041846-339796321.png)
2.重复使用的功能定义一个方法
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220716134041747-210570018.png)
3.赋值运算符自右向左结合
去掉一个最高一个最低算平均,输出结果发现小数点后面的数字被丢弃
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220716134041772-944191763.png)
因为sum是int类型,所以会将小数点后面的数字丢弃,更改sum的数据类型,输出结果正常
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220716134041837-1773841705.png)
4.反转数组元素
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220716134041751-1962830153.png)
5.输出不重复的一组数
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220716134041843-2105950303.png)
面向对象基础
1.设计类,创建对象并使用
1)概述
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220717204156674-731135424.png)
2)定义类
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220717204157328-871304051.png)
实例
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220717204156434-1966058496.png)
3)注意事项
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220717204156614-684338819.png)
2.对象内存图
1)多个对象的内存图
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220717204156772-672244940.png)
c1调用方法流程:
①根据地址去堆内查找对象
②根据存放的成员方法引用地址,去方法区查找
③调用方法进栈运行
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220717204156864-999430183.png)
2)两个变量指向同一个对象的内存图
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220717204156835-1385347644.png)
3)垃圾回收(拓展)
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220717204156286-1248216420.png)
3.构造器
1)作用
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220717204156603-1357952521.png)
2)注意事项
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220717204156507-1881027947.png)
4.this关键字
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220717204157412-1323142221.png)
实例:
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220717204157344-802884654.png)
5.封装
1)概述
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220717204156702-1614161909.png)
2)实现
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220717204157412-1739934341.png)
6.标准JavaBean
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220717204156530-1674251137.png)
7.成员变量、局部变量的区别
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220717204156657-1947340683.png)
常用API(String、ArrayList)
1.String类概述、对象创建的原理
1)String概述
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220719223853552-1528368843.png)
2)String创建对象不可更改原因
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220719223853088-380422509.png)
图解
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220719223853564-750707869.png)
3)String类创建对象的两种方式
①创建的两种方式
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220719223853483-1960043003.png)
②实例
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220719223853321-1878740565.png)
③两种方式的区别
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220719223853210-1292971089.png)
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220719223853510-1967040472.png)
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220719223853566-887056783.png)
2.String常见面试题
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220719223853441-58741138.png)
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220719223853547-1860141410.png)
3.String类常用API
1)字符串内容比较
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220719223853206-1032052962.png)
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220719223853089-1401695474.png)
2)String类常用API-遍历、替换、截取、分割操作
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220719223853528-1633616305.png)
实例
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220719223853440-928324774.png)
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220719223853248-509939157.png)
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220719223853478-1829778028.png)
4.集合概述、ArrayList的使用
1)集合概述
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220719223853129-567866275.png)
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220719223853394-62352419.png)
2)数组和集合的适用场景
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220719223853221-825400668.png)
3)ArrayList集合快速入门(添加)
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220719223853428-316343237.png)
实例
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220719223853226-1691136237.png)
4)ArrayList对于泛型的支持
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220719223853480-1250662959.png)
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220719223853129-394945267.png)
5)ArrayList常用API、遍历
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220719223853379-1764287607.png)
实例
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220719223853296-1704507838.png)
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220719223853250-511333562.png)
6)应用
①从集合中遍历,并筛选出删除元素,解决方法:
从集合后面遍历然后删除,可以避免漏掉元素
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220719223853183-1687331812.png)
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220719223853264-1845053195.png)
②集合中存对象
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220719223853548-1152956488.png)
原理
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220719223853632-1546424941.png)
5.StirngBuider // 可以将给定的数据转换为字符串,然后将该字符串的字符附加或插入到字符串构建器中。该 append方法总是在构建器的末尾添加这些字符;该insert方法在指定点添加字符
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220720140945872-1421764441.png)
2) 方法
①public StringBuilder append(E e) //添加字符(E)
②public StringBuilder reserve() // 此字符序列被相反的序列替换
③public String toString() //转成字符串
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220720140945860-595725131.png)
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220720140945938-1008167326.png)
④将字符串中字母大小写转换
public StringBuilder toUpperCase() //转大写
public StringBuilder toLowerCase() //传小写
![](https://img2022.cnblogs.com/blog/2909807/202207/2909807-20220720140945939-1491041873.png)
相关文章
- 深入探讨Java中的异常与错误处理
- 研究学习Kotlin的一些方法
- 数据显示Java热度持续下落,日子屈指可数?
- 2017年5月编程语言排行榜:Java与C语言优势正开始缩小
- Java多线程之内置锁与显示锁
- Java线程池的理论与实践
- 白话阿里巴巴Java开发手册(编程规约)
- 关于Java你不知道的十件事
- Java服务化系统线上应急和技术攻关,你必须掌握的Linux命令
- Java实现高斯模糊和图像的空间卷积
- Java阻塞队列实现原理分析
- NPM使用技巧
- Node.js对Java开发者而言是什么?
- Java反射机制应用实践
- 理解RxJava中的Single和Completable
- 2017年你不能错过的Java类库
- 大规模集群下的Hadoop NameNode
- 从源码解密Spark内存管理
- 2017年3月编程语言排行榜:Swift首次进入前十
- JVM热点技术:Java类的加载机制