Java String常用类和方法笔记

String的概念

字符串类型。string 类代表字符串。Java程序中的所有字符串字面值(如"abc")都作为此类的实例实现。
字符串是常量;它们的值在创建之后不能更改。字符串缓冲区(StringBuilder和StringBuffer)支持可变的字符串。因为String对象是不可变的,所以可以共享数据(共享机制)。例如: String str = "abc;

  1. String的值是常量
  2. String对象是不可变的,不能通过赋值的方式修改
  3. String的值是共享的,共享机制
  4. 一般用在赋值和字符串连接比较少的情况;如果赋值和字符串连接次数频繁,一般用StringBuilder和StringBuffer

String类面试题

在这里插入图片描述

  • 题1
		String s1="abc";
		String s2="abc";
		System.out.println(s1==s2);//True
		System.out.println(s1.equals(s2));//True

在这里插入图片描述

  • 题2
    1、首先将方法、变量名s进栈
    2、new出的对象存在堆中,生成一个地址
    3、“abc”作为常量又存在方法区的常量池中,生成一个地址
    4、堆中存的对象里面存的是常量的地址
    所以一共有2个对象
String s=new String("abc");//创建了两个对象

在这里插入图片描述

  • 题3
		String s1="abc";
		String s2=new String("abc");
		System.out.println(s1==s2);//False
		System.out.println(s1.equals(s2));//True

s1、s2地址不同,但最后都指向常量池中的“abc”。

String类型作为形参进行值传递

String类型,Double,Integer(是基本类型的包装类),比较特殊,每次传递的时候,这3中类型都会创建新的对象,不指向以前的内存空间,所以不对实参有影响。字符串的值不能修改只会在常量池再创建一个对象。
在这里插入图片描述

java常用的字符编码

  • 字符集编码有哪些?
    1、中文GB2312编码集︰规定了中文的编码格式,等。
    2、中文GBK编码集:规定了中文的编码格式,等。
    3、万国码UTF-8编码集︰国际通用标准:中文、很多国家的语言
    4、ASCII码
    5、拉丁文iso-8859:不支持中文

编码和解码

  • 编码:把字符串转换成计算机可以识别的符号
		String str="中文";
		byte[] b=str.getBytes();
		System.out.println(Arrays.toString(b));
  • 解码:把计算的符号转换成字符串格式
		String str="中文";
		byte[] b=str.getBytes();//编码
		System.out.println(Arrays.toString(b));
		String s=new String(b);//解码
		System.out.println(s);

char数组和string互相转换

  • String类型转char数组
		String str="adjghaeuig";
		char[] c=str.toCharArray();
		System.out.println(Arrays.toString(c));

在这里插入图片描述

		char[] c=str.toCharArray();
		System.out.println(Arrays.toString(c));
		String s=new String(c);
		System.out.println(s);

在这里插入图片描述

String转换为char类型

  • String类的charAt();
  • toCharArray()[];下标获取

String的实例方法

  • 字符串拼接
String str="adjghaeuig";
String str1=str.concat("123");
System.out.println(str1);

str+="123";
System.out.println(str);
  • 查询指定字符串
System.out.println(str.contains("123"));
  • 判断是否以指定字符串后缀结尾
str.endWith();
  • 比较两个字符串,忽略大小写
str.equalsIgnoreCase(str2)
  • 返回指定字符串在原字符串第一次出现的索引(可指定开始搜索的位置)
str.indexOf()

字符串缓冲区

String类面试题

在这里插入图片描述

  • 题1
		String s1="a"+"b"+"c";
		String s2="abc";
		System.out.println(s1==s2);//true
		System.out.println(s1.equals(s2));//true

在这里插入图片描述

  • 题2
    在这里插入图片描述
		String s1="ab";
		String s2="abc";
		String s3=s1+"c";
		System.out.println(s3==s2);//false
		System.out.println(s3.equals(s2));//true
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值