初识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面向对象编程文章查看此处

相关文章
|
23天前
|
Java 测试技术 开发者
Java零基础-indexOf(String str)详解!
【10月更文挑战第14天】Java零基础教学篇,手把手实践教学!
110 65
|
15天前
|
存储 安全 Java
java.util的Collections类
Collections 类位于 java.util 包下,提供了许多有用的对象和方法,来简化java中集合的创建、处理和多线程管理。掌握此类将非常有助于提升开发效率和维护代码的简洁性,同时对于程序的稳定性和安全性有大有帮助。
39 17
|
7天前
|
安全 Java
Java多线程集合类
本文介绍了Java中线程安全的问题及解决方案。通过示例代码展示了使用`CopyOnWriteArrayList`、`CopyOnWriteArraySet`和`ConcurrentHashMap`来解决多线程环境下集合操作的线程安全问题。这些类通过不同的机制确保了线程安全,提高了并发性能。
|
11天前
|
存储 Java 程序员
Java基础的灵魂——Object类方法详解(社招面试不踩坑)
本文介绍了Java中`Object`类的几个重要方法,包括`toString`、`equals`、`hashCode`、`finalize`、`clone`、`getClass`、`notify`和`wait`。这些方法是面试中的常考点,掌握它们有助于理解Java对象的行为和实现多线程编程。作者通过具体示例和应用场景,详细解析了每个方法的作用和重写技巧,帮助读者更好地应对面试和技术开发。
51 4
|
12天前
|
Java 编译器 开发者
Java异常处理的最佳实践,涵盖理解异常类体系、选择合适的异常类型、提供详细异常信息、合理使用try-catch和finally语句、使用try-with-resources、记录异常信息等方面
本文探讨了Java异常处理的最佳实践,涵盖理解异常类体系、选择合适的异常类型、提供详细异常信息、合理使用try-catch和finally语句、使用try-with-resources、记录异常信息等方面,帮助开发者提高代码质量和程序的健壮性。
27 2
|
16天前
|
存储 安全 Java
如何保证 Java 类文件的安全性?
Java类文件的安全性可以通过多种方式保障,如使用数字签名验证类文件的完整性和来源,利用安全管理器和安全策略限制类文件的权限,以及通过加密技术保护类文件在传输过程中的安全。
|
20天前
|
Java 数据格式 索引
使用 Java 字节码工具检查类文件完整性的原理是什么
Java字节码工具通过解析和分析类文件的字节码,检查其结构和内容是否符合Java虚拟机规范,确保类文件的完整性和合法性,防止恶意代码或损坏的类文件影响程序运行。
|
20天前
|
Java API Maven
如何使用 Java 字节码工具检查类文件的完整性
本文介绍如何利用Java字节码工具来检测类文件的完整性和有效性,确保类文件未被篡改或损坏,适用于开发和维护阶段的代码质量控制。
|
20天前
|
存储 Java 编译器
java wrapper是什么类
【10月更文挑战第16天】
23 3
|
23天前
|
Java 程序员 测试技术
Java|让 JUnit4 测试类自动注入 logger 和被测 Service
本文介绍如何通过自定义 IDEA 的 JUnit4 Test Class 模板,实现生成测试类时自动注入 logger 和被测 Service。
22 5