学习笔记17.10.10
来源:互联网 发布:linux 用户清单 编辑:程序博客网 时间:2024/06/16 04:42
String类的特点:1.String strA="hello world";String strB=new String("hello world");String strC=strB;System.out.println(strA==strB);//falseSystem.out.println(strA==strC);//falseSystem.out.println(strB==strC);//trueSystem.out.println(strA.equals(strB));//trueSystem.out.println(strA.equals(strC));//trueSystem.out.println(strB.equals(strC));//true
"=="是JAVA提供的关系运算符,此方法的功能主要是进行数值相等判断的,在String类中
比较的是内存地址;
"equals"是String类提供的方法,比较字符串的内容;
字符串常量是String的匿名对象
2.String类实例化:
1.直接赋值
String strA="hello";System.out.println("hello".equals(strA));//true所谓的直接赋值相当于把一个匿名对象设置了一个名字,但String类的匿名对象是由系统自动生成的,
不由用户自己创建。
! ! ! !为了避免空指向异常的出现,可以将字符串写在最前面
String input=null;
input.equals("hello") //报错
"hello".equals(input) //通过编译
只会开辟一块堆内存空间,并且自动入池。
共享设计模式:
在JVM底层会存在一个对象池(不一定只保存String对象),当代码之中使用直接赋值方式定义一个String类对象时,会将此字符对象所使用的匿名对象入池保存,而后如果后续还有其他String类对象采用直接赋值方式并设置了同样内容时,那么不会开辟新的堆内存空间,而是使用已有的对象进行引用的分配,继续使用。
2.构造方法
String strA=new String("hello");
String strD="hello";System.out.println(strD==strA);//falseString strA=new String("hello").intern();String strD="hello";System.out.println(strD==strA);//true
使用构造方法的方式进行String类初始化时,会开辟两块堆空间,并且有一块是垃圾空间。
使用构造方法定义的String了对象,其内容不会自动保存在对象池,但可以使用intern()手工入池。
3.字符串一旦定义则不可改变
对于字符串对象内容的改变,是引用关系的改变实现的,并且会产生垃圾堆空间。
所以String的内容不要过多频繁的修改。
String类的使用
String类方法必须全部记住,因为使用频率很高。
1.字符和字符串
(如果某个方法的返回值类型为布尔型,方法名一般习惯性的以is开头)
2.字节和字符串
字节使用byte描述,一般用于数据传输或者进行编码转换
3.字符串的比较
现在只有String类对象才具有大小的判断!!
4.字符串查找
5.字符串替换
使用一个新的字符串替换掉旧的字符串
replaceAll()
6.字符串截取
不能以负数作为截取的开始点
7.字符串拆分
将一个完整的字符串,按照指定的内容拆分为字符串数组
【regex :正则表达式】
如果是一些敏感字符(正则标记)严格来讲是拆不了的,如果遇见了拆分不了的情况需要经过"\\(就是\)"
转义符来拆分
8.其他
String类虽然提供了大量的支持的方法,但缺少了一个重要的方法 initcap(),首字母大写其他小写。
虽然Java类库里没有此功能,但一些第三方的组件包会提供。
- 学习笔记17.10.10
- AD学习笔记10
- Solaris 10 学习笔记
- Java学习笔记10
- stl 学习笔记 10
- Hibernate学习笔记10
- Spring学习笔记10
- Solaris 10学习笔记
- android学习笔记10
- 10号学习笔记
- C++ 学习笔记10
- 汇编语言学习笔记10
- Perl 学习笔记 --- 10
- Android学习笔记10
- vc++学习笔记10
- 黑马学习笔记10
- 学习笔记10-13
- 10-16学习笔记
- linux crontab 实现每秒钟执行
- C语言中volatile关键字的使用
- MySQL字符串截取
- mybatis#{}与${}区别总结
- zookeeper安装和使用 windows环境
- 学习笔记17.10.10
- JS Datatables超出自动添加滚动条
- 微博服务器又炸了,快来看看如何一步步构建高并发的网站
- Spring Boot 配置文件
- tensorflow:tf.reduce_mean()和tf.reduce_sum()
- 数组方法
- JavaScript的异常处理
- Halcon模版匹配算子解析---超级详细的create_shape_model和find_shape_model算子的详细讲解
- 去硅谷创业,你至少有八个理由说服自己