Java 如何创建一个String
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java 如何创建一个String相关的知识,希望对你有一定的参考价值。
当执行这行代码时,String str = new String("ABCD"); Java会调用String的这个构造方法
public String(String original)
int size = original.count;
char[] originalValue = original.value;
char[] v;
if (originalValue.length > size)
// The array representing the String is bigger than the new
// String itself. Perhaps this constructor is being called
// in order to trim the baggage, so make a copy of the array.
int off = original.offset;
v = Arrays.copyOfRange(originalValue, off, off+size);
else
// The array representing the String is the same
// size as the String, so no point in making a copy.
v = originalValue;
this.offset = 0;
this.count = size;
this.value = v;
但是,始终不明白 original.count 从何而来呢?找遍整个Java类,也没有看到初始化original.count 的代码。如果是JVM 完成的,那它又是如何做的呢?请哪位高手指点一下!
当然有看其他变量,count在类中没有找到它做初始化的地方。我是针对 public String(String original)
//.......
这个构造方法而言。
private final int count;
不赋值 java 默认 int 就是 0 ;
这个是知道的,但是
int size = original.count;
的original.count 是何时初始化的呢?是0吗,是4吗?
original.count = 4
original.value = ABCD
要知道为什么就要看 String 里面的英文注解
但是original.count的值是从何而来呢?它又是在何处、如何初始化的呢?
参考技术B 扯淡怎么没有
/** The count is the number of characters in the String. */
private int count;追问
你可知道它何时初始化的?
int size = original.count;
的original.count 是何时初始化的呢?是0吗,是4吗?
它是在何时初始化的,又是如何初始化的呢?
以上是关于Java 如何创建一个String的主要内容,如果未能解决你的问题,请参考以下文章