Java中的字符串存储方式

1. 简介

十一放假期间在脉脉上看见一道面试题讨论的很火热:

Java中字符串是如何存储的?

这一问题看似简单,但是背后却隐藏了很多深层机制,本文将逐一介绍相关技术原理。

2. 字符串类

字符串广泛应用于Java编程中,在Java中字符串属于对象,Java提供了String 类来创建和操作字符串。

2.1 java.lang.String

java.lang.String成员变量如下:

public final class String
    implements java.io.Serializable, Comparable<String>, CharSequence {
   
   
    /** The value is used for character storage. */
    private final char value[];

    /** Cache the hash code for the string */
    private int hash; // Default to 0

    /** use serialVersionUID from JDK 1.0.2 for interoperability */
    private static final long serialVersionUID = -6849794470754667710L;

String类包含了两个私有的final变量,int hash用于缓存hash值,char数组用于储存数据。

2.2 char

Java运行时,char按UTF-16编码,一个char需要占用两个字节(生僻字除外)。

2.3 数组

JVM中数组相关的类主要包括:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值