java中字符串怎么表示,Java中的字符串表示

A String is represented as objects in Java. Accordingly, an object contains values stored in instance variables within the object. An object also contains bodies of code that operate upon the object. These bodies of code are called methods.

Objects that contain the same types of values and the same methods are grouped together into classes. A class may be viewed as a type definition for those objects. Accordingly, how is a String in Java represented? Let's consider the following code snippet in Java.

final public class Main

{

public static void main(String[] args)

{

String s="black lion";

String s1=new String(s);

System.out.println(s.toUpperCase());

System.out.println("black lion".toUpperCase());

System.out.println(s1.toUpperCase());

}

}

The above code displays the String after converting it into uppercase. In this statement String s="black lion"; , Where is the String being assigned. Is it being assigned into an instance variable within the String class or somewhere? and in this statement "black lion".toUpperCase();. Is it an object of the String class? How?

解决方案

A string is a char[] containing a series of UTF-16 code units, an int offset into that array, and an int length.

I think the source of your confusion is the idea that

String s

creates a string that is assigned into.

It does not. It creates space for a string reference. Assigning copies references around but does not modify the objects to which those references refer.

You should also be aware that

new String(s)

doesn't really do anything useful. It merely creates another instance backed by the same array, offset, and length as s. There is very rarely a reason to do this so it is considered bad practice by most Java programmers.

Java double quoted strings like "my string" are really references to interned String instances so "foo" is a reference to the same String instance regardless of how many times it appears in your code.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值