—
title: JavaSE_3.常用API(一)String、StringBuilder、ArrayList
date: 2020-10-16 20:01:08
tags: JavaSE
—
String a = new String(“hello”);
String a = “hello”;两种方法的区别是什么?他们equals吗?
x==y 的结果为true。是因为通过双引号赋值的方式之后,x 和 y 都是指向同一个内存地址,他们的引用都是指向方法区中的同一个内容,引用地址是一样的, 当同一个String字面值无论被创建多少次,始终只有一个内存地址被分配,之后的都是这个String的拷贝,Java中称作“字符串驻留”,所有的字符串常量在编译之后都会自动的驻留。
x = "abcd"这种方式创建的时候首先会查看字符串池中是否已经存在,存在就直接返回PermGen中的该String对象,否则就会创建一个新的String对象,之后再放进字符串池中
length() equals()starsWith("")endsWith("")subString(int beginIndex, int endIndex )indexOf() trim()
注意这里的length只是表示求长度的方法【长度方法】;
equals是看两个String是否指向同一对象;
subString返回一个小数组【截取】;
starsWith主要是为了看开始是不是以这个开始的【判断】。
trim是清除一下两边的空格【整理】;
append(String str)insert(int offset, String str)reverse()
append在字符串后头添加东西;insert在中间插入一串东西;reverse就是求回文方法。