String类为什么是final的

首先我们使用new创建一个String对象的时候比如:

String str=new String("123");

这句话里面创建了两个对象,第一个在系统中创建了一个"abc"这个字符串;

然后在创一个Str对象,然后在让"123"这个字符串的引用;

创一个String对象相当于创了两个。

在说说为啥String类设置为final类型。

fianl类型,是一种不能被修改的类型。

试想,如果我对

str=str.toUpperCase();

为啥这个需要返回返回而不是直接改?

首先如果直接改或许会操作到系统创建的abc这个字符串,当再new一个'abc'对象的时候,系统将不再创建abc对象,而是直接将新创建的对象指向'abc'字符串

如果不设置为final类型会导致直接操作系统字符串,导致系统字符串出现问题。。

posted @ 2016-07-21 00:48  lonecloud  阅读(2962)  评论(1编辑  收藏  举报
我的博客即将同步至 OSCHINA 社区,这是我的 OSCHINA ID:lonecloud,邀请大家一同入驻:https://www.oschina.net/sharing-plan/apply