可以把java中的String的特殊性说仔细一点吗?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了可以把java中的String的特殊性说仔细一点吗?相关的知识,希望对你有一定的参考价值。

作为一名java初学者,希望你能讲的更仔细一些,谢谢!

没有参照物,怎么说"特殊性"?
那就简单的说一下 java.lang.String 吧..
可以看出,String是一个Object类型,所以能够调用它的很多接口,如:new String("test").subString(0);等..
但是String作为一个Object,它又有一定的特殊性,它也支持很多操作符,如:
"test" 即 : new String("test")
"hello"+"world" 即 : new String("hello").concat("world")

由于String的这些特性,可以把String看作是包装类(如Integer).

开发中需要注意:
String是一个常量,String a = "A";是定义了一个标识符 a 引用内存中的 "A" ,"A" 在内存中是不变的.所以"A"+"B",实际上是分配了新的内存"AB",然后返回.

初学的话,只关心接口返回的结果就可以了,不需要关心内存的机制.来自:求助得到的回答
参考技术A String就是java中的字符串,用双引号引起来的几个字符.如"Abc","一天".
(注意:单引号是字节类型)
可以用这两种方式创建
1.String s1 = "ABCD";
2.String s2 = new String("ABCD");
字符串是 Unicode 字符的有序集合,用于表示文本。String 对象是 System.Char 对象的有序集合,用于表示字符串。String 对象的值是该有序集合的内容,并且该值是不可变的。
String 对象称为不可变的(只读),因为一旦创建了该对象,就不能修改该对象的值。看来似乎修改了 String 对象的方法实际上是返回一个包含修改内容的新 String 对象。如果需要修改字符串对象的实际内容,请使用 System.Text.StringBuilder 类。
字符串中的每个 Unicode 字符都是由 Unicode 标量值定义的,Unicode 标量值也称为 Unicode 码位或者 Unicode 字符的序号(数字)值。每个码位都是使用 UTF-16 编码进行编码的,编码的每个元素的数值都用一个 Char 对象表示。
参考技术B String 是一个对象 他们本身是一个没有意义地址 指向的才是真正的数据
比如int i=0;int j=0; 这是i与j是完全相等的;
String i=“a” String j = “a” 此时i与j虽然数据相等 但是他们本身并不相等
参考技术C 可以看作一个支持utf-8,unicode的C++ string。。。

什么是背包算法啊?可以说的详细一点吗?谢谢大家了```

什么是背包算法啊?可以说的详细一点吗?谢谢大家了```

参考技术A 该算法是根据数学上的背包问题设计的。背包问题是一个最优化问题,即对一个给定空间或负重的背包和许多大小不一的物体,哪些物体放入背包才能使得浪费的背包空间或负重最小?在背包很小和物体数目较少时,这个问题还比较容易解决;但当背包很大且有很多个物体时,问题的求解就十分困难。通常,这个问题会有一个或者多个解,也有可能根本没有解。

1977年,Merkle与Hellman合作设计了使用背包问题实现信息加密的方法。其工作原理是:假定甲想加密,则先产生一个较易求解的背包问题,并用它的解作为专用密钥;然后从这个问题出发,生成另一个难解的背包问题,并作为公共密钥。如果乙想向甲发送报文,乙就可以使用难解的背包问题对报文进行加密,由于这个问题十分难解,所以一般没有人能够破译密文;甲收到密文后,可以使用易解的专用密钥解密。

该算法提出以后,经过多年的探讨和研究,最终发现了它的一个致命错误,使之失去了任何保密的实用价值。

以上是关于可以把java中的String的特殊性说仔细一点吗?的主要内容,如果未能解决你的问题,请参考以下文章

什么是背包算法啊?可以说的详细一点吗?谢谢大家了```

这也太直白了,就不能委婉一点吗?

你知道Java要注意技术点吗?

如何用java给指定的微信用户推送消息,每天早上十点推送一条消息。麻烦说的仔细一点,最好能给出实例谢谢

Java—— 一点关于String的转换

将属性更改为不再是瞬态的 - 我可以通过轻量级核心数据迁移来做到这一点吗?