Java个人学习之旅(第十天),springcloud百度网盘

2. equals

  • 判断两个字符串是否相同

  • 返回值类型为boolean

  • 参数类型为String

3. charAt

  • 返回指定索引处的char值(从0开始)

  • 返回值类型:char

  • 参数类型:int

4. endsWith&&startsWith

  • 判断字符串是否以某个字符串结尾&&开头

  • 返回值类型:boolean

  • 参数类型:String

5. indexOf

  • 返回子字符串第一次出现的索引

  • 返回值类型:int

  • 参数类型:String,int(从指定索引处开始查询,可有可无)

6. trim

  • 消除字符串中的空格

  • 返回值类型:String

7. isEmpty

  • 判断字符串是否为空

  • 返回值类型:boolean

8. replace

  • 使用某字符串代替源字符串中的子字符串

  • 参数类型:char

9. split

  • 以字符串中的某个符号分割该字符串

  • 返回值类型:String[]

  • 参数类型:String(行使分隔的字符串元素,或正则表达式)

10. toCharArray

  • 将字符串装转换为字符数组

  • 返回值类型:char[]

  • 参数类型:String

11. toUpperCase&&toLowerCase

  • 将字符串转换为全大写&&全小写

  • 返回值类型:String

12. intern

  • 返回字符串对象的规范表示,也就是如果字符串常量池中已经创建有了该字符串的地址,则直接返回该地址值的引用,不再开辟新的内存空间

其实String类型常用的方法还有很多,在今后的开发中也会不断用到,所以我认为备一份jdk的API文档随时查阅是很有必要的

2. String 具有不可变性:

=====================================================================================

说明:

  1. 当对字符串重新赋值时,需要重写指定内存区域赋值,不能使用原有的value进行赋值。

  2. 当对现的字符串进行连接操作时,也需要重新指定内存区域赋值,不能使用原有的value进行赋值。

  3. 当调用String的replace()方法修改指定字符或字符串时,也需要重新指定内存区域赋值,不能使用原有的value进行赋值。

代码举例:


public class Example {

	public static void main(String[] args) {

		String a = "Hello";  //字面量的定义方法

		

		String b = "Hello";

		

		String c = new String("Hello");

		

		String d = new String("Hello");

		

		System.out.println(a == b); //true   比较地址值

		

		System.out.println(a == c); //false

		System.out.println(a.equals(c));  //true

		

		System.out.println(c == d);  //false

		System.out.println(c.equals(d));   //true

	}  

} 

上述代码的结果中的第一个比较结果完全是巧合,原因是字符串刚生成时调用的是同一块字符串常量池,而字符串常量池不会存在相同类型的常量,这也就意味着这两个字符串的地址值是相同的

如果我们再对a和b赋值然后再比较就能说明问题了


public class Example {

	public static void main(String[] args) {

		String a = "Hello";		

		a += "c";

		

		String b = "Hello";

		b += "c";

		

		System.out.println(a == b); 

	}  

} 

运行结果:

在这里插入图片描述

我们同时也可以发现,String实例化的方式有两种:

  1. 通过字面量的方式定义

  2. 通过new + 构造器的方式

第一种方式是在方法区的字符串常量池中直接开辟空间

第二种方式则是在堆生成对象,但引用的值还是来自字符串常量池

String是引用类型,涉及到引用类型的变量的比较,都用equals方法比较稳妥

3. StringBuilder和StringBuffer:

==================================================================================================

StringBuilder和StringBuffer都是用来拼接字符串的,后期会经常用到

首先看一下String,StringBuilder,StringBuffer三者之间的相关说明:

  1. String:不可变的字符序列;底层使用char[]存储

  2. StringBuffer:可变的字符序列;线程安全的,效率低;底层使用char[]存储

  3. StringBuilder:可变的字符序列;jdk5.0新增的,线程不安全的,效率高;底层使用char[]存储

StringBuilder和StringBuffer的内存解析:

以StringBuffer为例:


public class Example {

	public static void main(String[] args) {

		

		StringBuffer sb1 = new StringBuffer();

		

		//查看StringBuffer的初始容量

		System.out.println(sb1.capacity()); 

		//查看StringBuffer的长度

		System.out.println(sb1.length());

	}  

} 

运行结果:

在这里插入图片描述

可以看到,StringBuilder的初始容量为16,没赋值时长度为零

当我们插入的字符串长度超过StringBuilder的初始容量时,StringBuilder会进行扩容,扩容的方式是:

原长度*2 + 2,同时将旧的数组赋值到新的数组中

StringBuilder和StringBuffer中的常用方法:



**最后,附一张自己面试前准备的脑图:**

![image](https://img-blog.csdnimg.cn/img_convert/4ea97e083ea637910b1cacf394e50ce9.png)

**面试前一定少不了刷题,为了方便大家复习,我分享一波个人整理的面试大全宝典**


*   Java核心知识整理

![image](https://img-blog.csdnimg.cn/img_convert/9e944ac9bc0340558f5e9c3b4f188ef8.png)


*   Spring全家桶(实战系列)

![image.png](https://img-blog.csdnimg.cn/img_convert/8d405df96b23b861ef11cb50d238e3c2.png)


**Step3:刷题**

既然是要面试,那么就少不了刷题,实际上春节回家后,哪儿也去不了,我自己是刷了不少面试题的,所以在面试过程中才能够做到心中有数,基本上会清楚面试过程中会问到哪些知识点,高频题又有哪些,所以刷题是面试前期准备过程中非常重要的一点。

**以下是我私藏的面试题库:**

![image](https://img-blog.csdnimg.cn/img_convert/17b1b0c1c71c8a7a1b28273671a837a7.png)

很多人感叹“学习无用”,实际上之所以产生无用论,是因为自己想要的与自己所学的匹配不上,这也就意味着自己学得远远不够。无论是学习还是工作,都应该有主动性,所以如果拥有大厂梦,那么就要自己努力去实现它。

**[CodeChina开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频】](https://codechina.csdn.net/m0_60958482/java-p7)**


既然是要面试,那么就少不了刷题,实际上春节回家后,哪儿也去不了,我自己是刷了不少面试题的,所以在面试过程中才能够做到心中有数,基本上会清楚面试过程中会问到哪些知识点,高频题又有哪些,所以刷题是面试前期准备过程中非常重要的一点。

**以下是我私藏的面试题库:**

[外链图片转存中...(img-CcFQW135-1630295196060)]

很多人感叹“学习无用”,实际上之所以产生无用论,是因为自己想要的与自己所学的匹配不上,这也就意味着自己学得远远不够。无论是学习还是工作,都应该有主动性,所以如果拥有大厂梦,那么就要自己努力去实现它。

**[CodeChina开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频】](https://codechina.csdn.net/m0_60958482/java-p7)**

最后祝愿各位身体健康,顺利拿到心仪的offer!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值