常用类第28天(Integer缓冲区,String类及常用方法)
Integer整数缓冲区
java预先创建了256个常用的整数包装类型对象
在实际应用中,对已创建的对象进行进行复用
个人理解:Integer创建赋值时,会先判断这个值是否在-128到127之间,在的话将会直接赋值,超出这个范围就会new一个
例子:
//面试题
Integer integer1=new Integer(100);
Integer integer2=new Integer(100);
//因为new了一个Integer,所以这两个引用不是同一个
System.out.println(integer1==integer2);
Integer integer3=100;
Integer integer4=100;
//100在整数缓冲区的范围之内,并没有new新对象
System.out.println(integer3==integer4);
Integer integer5=200;
Integer integer6=200;
//200不在整数缓冲区内,new了两个新对象,所以指向不同的引用地址
System.out.println(integer5==integer6);
String类
- 字符串是常量,创建之后不可改变
代码演示:
String name ="hello";//"hello"存储在字符串池中,
name="zhangsan";
图例:
说明:给name重新赋值时,并不是修改了它原来的数据,而是重新开辟了一个空间(原有的数据"hello"将变成垃圾,当垃圾回收器执行时将被回收)
2. 字符串字面值存储在字符串池中,可以共享
3. String s="hello";//产生一个对象,字符串池中存储
String s=new String("hello");//产生两个对象,堆、常量池中各存储一个
String类常用方法
- public int lengh():返回字符串长度(空格也算一个字符)
String str="Hello World";
//length()返回字符串长度
System.out.println(str.length());
- public char charAt(int index):根据下标获取字符(超过下标范围会报错,下标溢出)
String str="Hello World";
//charAt()返回某个下标位置的字符
System.out.println(str.charAt(4));
- public boolean contains(String str):判断当前字符串是否包含str
String str="Hello World";
//contains()判断是否包含某个字符串
System.out.println(str.contains("llo"));
- public char[] toCharArray():将字符串转换为数组
String s="我说java天下无敌java牛逼";
//toCharArray()将字符串转换成数组
System.out.println(Arrays.toString(s.toCharArray()));
- public int indexOf(String str):查找str首次出现的下标,存在则返回该下标,不存在则返回-1,str后面可以加一个int类型的数,代表从哪个下标开始找
indexOf()查找字符串第一次出现的位置,有则返回地址,没有则返回-1
String s="我说java天下无敌java牛逼";
System.out.println(s.indexOf("ja"));
6. public int lastIndexOf(String str):查找str最后一次出现的下标,存在则返回该下标,不存在则返回-1
//lastIndexOf()查找字符串最后一次出现的位置,有则返回地址,没有则返回-1
String s="我说java天下无敌java牛逼";
System.out.println(s.lastIndexOf("ja"));
7. public String trim():去掉字符串前后的空格
String s1=" 我说java天下无敌java牛逼 ";
//trim()去除字符串前后的空格
System.out.println("去除空格前:"+s1);
System.out.println("去除空格后:"+s1.trim());
- public String toUpperCase():将小写转换成大写
String s1="我说java天下无敌java牛逼";
String s2="我说JAVA天下无敌JAVA牛逼";
//toUpperCase()将小写转换成大写----toLowerCase()
System.out.println(s1.toUpperCase());
System.out.println(s2.toLowerCase());
9. public boolean endsWith(String str):判断字符串是否以str结尾
//endsWith()判断字符串是否出现在结尾,startsWith()
String s1="我说java天下无敌java牛逼";
String s2="我说JAVA天下无敌JAVA牛逼";
System.out.println(s1.endsWith("牛逼"));
System.out.println(s1.startsWith("我说1"));
10. public String replace(char oldChar,char newChar);将旧字符串替换成新字符串
//replace()新字符串替换旧字符串
String s1=" 我说java天下无敌java牛逼 ";
String s2="我说JAVA天下无敌JAVA牛逼";
System.out.println(s1.replace("java","php"));
- public String[] spilt(String str):根据str做拆分
//spilt()根据str做拆分
String s3="java is the best programing language,java xiang";
String[] array=s3.split(" ");
for (String string:array
) {
System.out.println(string);
}
//多个条件使用[]
String[] array1 = s3.split("[ ,]");
for (String string1 : array1
) {
System.out.println(string1);
}
12. equalsIgnoreCase()忽略大小写比较
/equalsIgnoreCase()忽略大小写比较
String s1="hello";
String s2="HELLO";
System.out.println(s1.equalsIgnoreCase(s2));
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?