一、Strng类的概念

  String类在我们开发中经常使用,在jdk1.8版本之前(包括1.8),String类的底层是一个char类型的数组,1.8版本之后是byte类型的数组,正是因为String类型的底层实现是数组,所以String类型的值是不可改变的,平常肉眼可见的可以改变String变量的值,其实本质上是将该变量的引用指向了一个其他的堆空间。

二、String类的使用

  String类的声明赋值方式有两种:一是直接赋值:即String str = "abc";而是通过创建对象的方式赋值:即String str = new String("str");

  首先说一下第一种赋值方式:这种赋值方式是在开发过程中使用最多的,也是最简便的,虽然在赋值过程中没有new 关键字,但是其实在内存中开辟了空间,由于这种方式比较特殊,所以是在堆的静态区开辟了空间用于存储该值,需要注意的是这个静态区跟堆不在一个地方。这边举个例子验证一下:

public static void main(String[] args) {
//第一种方式赋值
String str1 = "abc";
//第二种方式赋值
String str2 = new String("abc");
System.out.println(str1 == str2);
}

  该代码的运行结果为false,虽然两个变量的值一样,但是它们各自指向的地址不一样,所以结果为false

  第二种赋值方式比较少见,这种方式与我们平常创建类的对象的过程一样,即在堆空间中开辟内存。

三、String类中的方法的使用

  String类中的方法在开发中比较常用,我就一一不列举了,这边提供一下关于String类中的方法的 jdk文档

  

最新文章

  1. Pitfalls: C++ 中的index运算符
  2. 9、ASP.NET MVC入门到精通——Controller(控制器)
  3. Discuzx系统 CSS 编码规范,CSS属性书写顺序
  4. KindEditor4.1.10,支持粘贴图片(转载!)
  5. Activiti系列: 如何给内置表单添加字段类型
  6. java.lang.ThreadGroup.enumerate
  7. 写出完美论文的十个技巧10 Tips for Writing the Perfect Paper
  8. Codeforces Round #205 (Div. 2) : B
  9. cmd连接mysql连接:mysql-h主机地址-u用户名-p用户密码(注:u与root可以不用加)
  10. $parse , $interpolate ,$complie , $destroy
  11. C/C++中char* 与char []定义的区别
  12. 读写锁的实现原理(pthread_rwlock_t)
  13. 2.4. 属性(Core Data 应用程序实践指南)
  14. Android开发 旋转屏幕导致Activity重建解决方法(转)
  15. 第29章 保护API - Identity Server 4 中文文档(v1.0.0)
  16. 2019-04-26-day041-数据库的索引
  17. Luogu 3369 / BZOJ 3224 - 普通平衡树 - [无旋Treap]
  18. Vue系列之 => 组件切换
  19. MySQL中正则表达式
  20. IDEA-Debug调试操作

热门文章

  1. vue 中v-if 与v-show 的区别
  2. ES6字符串随笔
  3. Masking Personal Information
  4. dubbo2.7.X版本带来的服务注册和服务调用方式改变
  5. 详解Git
  6. mysql触发
  7. 数据库会话数量过多,定期清理inactive会话
  8. 英特尔与 Facebook 合作采用第三代英特尔® 至强® 可扩展处理器和支持 BFloat16 加速的英特尔® 深度学习加速技术,提高 PyTorch 性能
  9. 利用Kotlin扩展函数实现任意View的点击处理(点击效果和防止快速点击)
  10. 阿里云函数计算 VSCode 使用,及部署 Docusaurus