API:应用程序编程接口;可以直接调用(java自己写好的程序)
API文档:Overview (Java SE 18 & JDK 18)
String:
java.lang.String类代表字符串,定义的变量可以存储字符串,指向字符串对象,提供操作字符串的功能可以直接使用
String变量每次的修改其实都是产生并指向了新的字符串对象
不可变字符串类型,他的对象在创建后不能被更改
String定义变量存储字符串
String的内存原理?
String类提供哪些API?
创建字符串对象:
1、定义:String name = “传智” ;
2、构造器:
两种创建对象的区别:
1、以“ ”定义出来的字符串对象在常量池中存储,相同内容只会在其中存储一份(同一个)
2、通过构造器new出来的对象,每new一次就会产生一个新的对象,并放在堆内存中
常用面试题:
“”创建的对象在常量池中,而构造器new出来的则是在堆内存中
“a”+“b”+“c” 可以直接出转换成“abc”
字符串内容比较功能
使用String类提供的“equals”比较:只关心内容一样即可
1、equals:只关心内容是否一致 变量1.equals(变量2)
2、equalsIgnoreCase:忽略大小写,只关心内容是否一致 变量1.equalsIgnoreCase(变量2)
==判断字符串对象是判断的地址:基本类型判断
equals:引用类型判断
其他API
String name = "我爱你中国"; System.out.println(name.length());//1、获取字符串长度 System.out.println(name.charAt(1));//2、获取指定索引的字符 for (int i = 0; i < name.length(); i++) { System.out.print(name.charAt(i)+" "); }//遍历字符串中的每个字符 System.out.println(); char[] chars = name.toCharArray();//3、把字符串转换成字符数组 for (int i = 0; i < chars.length; i++) { System.out.print(chars[i]+" "); }//遍历字符数组 System.out.println(); System.out.println(name.substring(3,5));//4、截取内容(包前不包后) System.out.println(name.substring(1));//从当前索引一直截取到最后 System.out.println(name.replace("中国","***"));//5、替换字符串中的某些字符 System.out.println(name.contains("中国"));//6、判断字符串中是否有该字符 System.out.println(name.contains("家乡")); System.out.println(name.startsWith("我爱你"));//7、判断是否是以该字符开始 System.out.println(name.startsWith("中国")); String name1 = "abc,123,a2v"; String[] s = name1.split(",");//8、按照某个内容把字符串分割成字符串数组返回 for (int i = 0; i < s.length; i++) { System.out.println(s[i]); }//遍历字符串数组
结果
案列:
验证码:
模拟 登录系统
手机号码屏蔽:
以字符串的形式从键盘接受一个手机号,将中间四位号码屏蔽
ArrayList:
集合类,一种容器,与数组相似,但集合的大小是不固定的;比数组更好用,更丰富
数组:类型确定、长度固定,功能单一
集合:元素个数不确定,要进行增删操作的业务场景,功能丰富、好用
ArrayList如何创建对象?
ArrayList常用API?
ArrayList存储自定义对象?
ArrayList解决实际问题
创建一个集合对象(构造器)
添加元素:
list.add() ; 可以添加任意类型的数据
list.add(1,"danny"); //指定索引插入元素,其他元素自动往后移
泛型:
ArrayList<E>:一个泛型类,可以在编译阶段约束集合对象只能操作某种数据类型
ArrayList<String>:只能操作字符串类型的元素
ArrayList<Intege>:只能操作整型类型的元素
ArrayList<Object>:对所有数据类型操作
集合只能存储引用类型,不支持基本数据类型(泛型也不支持)
必须用用泛型定义集合
常用API、遍历
list.add(A);括号里是什么类型就填什么类型的数据
list.size();获取集合大小
list.get(x);获取索引值为x的元素
list.remove();括号里要么是索引值即删除该索引位置的元素;要么是某具体元素,如果元素重复,那么删除靠前位置的元素
list.set(x,y);把集合中索引值为x的元素修改成y
遍历并删除:
存储自定义类型的对象
元素搜索(根据学号查找学生信息)