java 中字符串和String类是如何联系起来的

Strings1="hello"底层调用了java的哪个构造函数publicfinalclassMyString{privatefinalcharvalue[];priv... String s1 = "hello" 底层调用了java的哪个构造函数

public final class MyString {
private final char value[];
private int hash;
public MyString(char[] value) {
this.value = Arrays.copyOf(value, value.length);
}
public MyString(MyString original) {
this.value = original.value;
this.hash = original.hash;
}
public static void main(String[] args) {
char[] value = {'h','e','l','l','o'};
MyString myString = new MyString(value);
//如何用字符串,如“hello”构造MyString,不要告诉我把构造函数里面的MyString换成String
}

//这是String类的构造函数

public String(String original) {
this.value = original.value;
this.hash = original.hash;
}
展开
 我来答
千锋教育
2015-11-29 · 做真实的自己 用良心做教育
千锋教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
展开全部
 * 字符串:就是由多个字符组成的一串数据。也可以看成是一个字符数组。
 * 通过查看API,我们可以知道
 *  A:字符串字面值"abc"也可以看成是一个字符串对象。
 *  B:字符串是常量,一旦被赋值,就不能被改变。

通过构造方法* public String(String original):把字符串常量值转成字符串

ala400
2015-04-04 · TA获得超过1229个赞
知道小有建树答主
回答量:262
采纳率:100%
帮助的人:278万
展开全部

可以这样

String s="helo";
 char[] array=s.toCharArray();
MyString mstr=new MyString(array);
追问
String s1 = "hello",  我就是想知道这句话底层是如何运行的,java是如何把String这个类和字符串联系在一起的
追答
String s="hello";
直接赋值的方式运行的时候会在java内置的一个字符串缓冲区中查找有没有这个字符串,如果有,直接返回地址引用,如果没有则在字符串缓冲区中创建并返回引用

而new创建的字符串也会先去字符串缓冲区查找有没有,但是不同的是,不管有没有都会在堆内存中创建一个,如果缓冲区没有则在缓冲区中创建一个,返回的是堆中创建的地址引用

所以
String s1="hello" 和 String s2="hello";
s1==s2 是 ture
s1.equals(s2) 也是 ture

String s1="hello" String s2=new String("hello");
s1==s2 是 false
s1.equals(s2) 才是 true

执行第一个String s1="hello";的时候字符串缓冲区是没有hello这个字符串的
所以在缓冲区创建了一个hello字符串对象
执行第二个String s2="hello";的时候,字符串缓冲区已经有了hello,就直接返回了
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
198901245631
2015-04-04 · TA获得超过3.5万个赞
知道大有可为答主
回答量:9037
采纳率:92%
帮助的人:1738万
展开全部
你好String类是final类,不可以被重写,你的做法就不对
更多追问追答
追问
我知道String类不可以被重写,String s1 = "hello",  我就是想知道这句话底层是如何运行的,java是如何把String这个类和字符串联系在一起的
追答
你好:这个的话,实际是是编译的时候他会转换成16进制的。之后他把这个指向一个内存地址保存为hello;下次读取的时候直接回从指定的内存地址拿值。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式