初识Java神秘成员:String类 | 带你学《Java面向对象编程》之二十六

简介: 本节将为读者介绍Java世界必不可少的特殊数据类型:String类。

上一篇:复杂中的艺术-复杂多对多映射 | 带你学《Java面向对象编程》之二十五
【本节目标】
通过阅读本节内容,你将初步了解String类的相关概念,并学会对String类型数据的简单定义与操作。
在实际的开发之中没有一个项目不去使用String类,也就是说String是整个系统开发之中一个至关重要的组成类,在Java程序中所有的字符串都要求使用“””进行定义,同时也可以利用“+”实现字符串的连接处理,但是对于String类还有其自身的特点。本次将进行String类的特点分析。

String类简介

字符串严格意义上来讲并不能算是一个基本数据类型,也就是说没有任何一门语言会提供有字符串这种数据类型的,而在Java中为了方便开发者进行项目的编写,所以利用其JVM的支持制造了一种可以简单使用的String类,并且可以像基本数据类型那样进行直接的赋值处理。
范例:String类对象实例化

public class StringDemo {
    public static void main (String args[]) {
        String str = “www.mldn.cn” ;   //直接赋值
        System.out.println(str) ;
    }
}

image.png
图一 执行结果一

但是需要注意的是,String这个类中之所以可以保存字符串主要的原因是其中定义了一个数组,也就是说,在String中所有的字符串中的每一个字符的数据都是保存在了数组之中。
提示:观察String类的源代码实现

  • 源代码目录:D:Javajdk-10libsrc.zip;
  • JDK1.9之后实际上针对于字符串的定义形式增多了要比JDK1.8多,类的数量对比如下:

image.png
图二 JDK版本对比

  • 从JDK1.9开始String类之中的数组类型采用了byte类型,JDK1.9之前使用的都是字符数组。
JDK1.8以前String保存的是字符数组: JDK1.9及以后String保存的是字节数组:
private final char value[]; private final byte[] value;

原来所谓的字符串就是对数组的一种特殊包装应用,但是同时也应该清楚一点,既然包装的是数组,所以字符串中的内容肯定是无法改变的。
另外需要注意的是,在String类里面除了可以使用直接赋值的形式为对象进行实例化之外,也可以利用传统形式利用构造方法进行对象的实例化处理:public String(String str) ;
范例:利用构造方法进行实例化

public class StringDemo {
    public static void main (String args[]) {
        String str = new String(“www.mldn.cn”) ;  
        System.out.println(str) ;
    }
}

image.png
图三 执行结果二

String本身包装的是一个数组,并且其有两种对象的实例化形式:直接赋值、构造方法实例化。
想学习更多的Java的课程吗?从小白到大神,从入门到精通,更多精彩不容错过!免费为您提供更多的学习资源。
本内容视频来源于阿里云大学

下一篇:旋转跳跃-学会操作String类数据 | 带你学《Java面向对象编程》之二十七
更多Java面向对象编程文章查看此处

相关文章
|
5天前
|
Java 测试技术 开发者
Java零基础-indexOf(String str)详解!
【10月更文挑战第14天】Java零基础教学篇,手把手实践教学!
94 65
|
2天前
|
Java 数据格式 索引
使用 Java 字节码工具检查类文件完整性的原理是什么
Java字节码工具通过解析和分析类文件的字节码,检查其结构和内容是否符合Java虚拟机规范,确保类文件的完整性和合法性,防止恶意代码或损坏的类文件影响程序运行。
|
2天前
|
Java API Maven
如何使用 Java 字节码工具检查类文件的完整性
本文介绍如何利用Java字节码工具来检测类文件的完整性和有效性,确保类文件未被篡改或损坏,适用于开发和维护阶段的代码质量控制。
|
6天前
|
Java
Java的原子变量类
Java的原子变量类
16 8
|
2天前
|
存储 Java 编译器
java wrapper是什么类
【10月更文挑战第16天】
11 3
|
5天前
|
Java 程序员 测试技术
Java|让 JUnit4 测试类自动注入 logger 和被测 Service
本文介绍如何通过自定义 IDEA 的 JUnit4 Test Class 模板,实现生成测试类时自动注入 logger 和被测 Service。
16 5
|
5天前
|
Java 开发者
在Java多线程编程中,创建线程的方法有两种:继承Thread类和实现Runnable接口
【10月更文挑战第20天】在Java多线程编程中,创建线程的方法有两种:继承Thread类和实现Runnable接口。本文揭示了这两种方式的微妙差异和潜在陷阱,帮助你更好地理解和选择适合项目需求的线程创建方式。
11 3
|
5天前
|
Java
在Java多线程编程中,实现Runnable接口通常优于继承Thread类
【10月更文挑战第20天】在Java多线程编程中,实现Runnable接口通常优于继承Thread类。原因包括:1) Java只支持单继承,实现接口不受此限制;2) Runnable接口便于代码复用和线程池管理;3) 分离任务与线程,提高灵活性。因此,实现Runnable接口是更佳选择。
17 2
|
5天前
|
Java
Java中多线程编程的基本概念和创建线程的两种主要方式:继承Thread类和实现Runnable接口
【10月更文挑战第20天】《JAVA多线程深度解析:线程的创建之路》介绍了Java中多线程编程的基本概念和创建线程的两种主要方式:继承Thread类和实现Runnable接口。文章详细讲解了每种方式的实现方法、优缺点及适用场景,帮助读者更好地理解和掌握多线程编程技术,为复杂任务的高效处理奠定基础。
15 2
|
6天前
|
存储 Java API
详细解析HashMap、TreeMap、LinkedHashMap等实现类,帮助您更好地理解和应用Java Map。
【10月更文挑战第19天】深入剖析Java Map:不仅是高效存储键值对的数据结构,更是展现设计艺术的典范。本文从基本概念、设计艺术和使用技巧三个方面,详细解析HashMap、TreeMap、LinkedHashMap等实现类,帮助您更好地理解和应用Java Map。
20 3