常用类第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));



浙公网安备 33010602011771号