String常用方法
clone()方法:克隆一个一模一样的对象,不会影响原对象。
equals()方法:默认是比较两个对象的地址值
tostring()方法:输出类的属性。一般来说输出的格式是:类名 + @ + 地址值。
字符串一旦被赋值,内容就不能改变,但是引用可变。
String s = new String(); //默认构造函数,s什么东西都没有
byte[] bytes = {97,98,99,100}; //A,B,C,D的哈希码
String s = “hello”;//在方法区中有,就直接返回;无,则创建;
s +=“word”;//s = helloword 在方法区中没有,要创建。s又是引用另一个地址值
String s2 = new String(bytes); //s2的值为:A,B,C,D
区别:
String s2 = new String(“hello”);//在堆区中,实体放在方法区中的字符串常量值中,在栈区中引用的堆区值则是另外一个地址。
String s1 = “hello”;//栈区中的声明,直接引用方法区中的地址值,如果有的话,直接返回地址值。
Object常用方法
Object的每个实例都具有下列属性和方法。
constructor: 保存着用于创建当前对象的函数。例如 var o = new Object(); 它的构造函数就是 Object。
hasOwnProperty(propertyName): 用于检查给定的属性在当前的对象实例中(而不是在实例的原型中)是否存在。其中,作为参数的属性名(propertyName)必须以字符串的形式指定(例如: o.hasOwnProperty("name"))。
isPrototypeOf(object): 用于检查传入的对象是否是传入对象的原型。
propertyIsEnumerable(propertyName): 用于检查给定的属性是否能够使用for-in语句来枚举。
toLocaleString(): 返回对象的字符串表示,该字符串与执行环境的地区对应。
toString():返回对象的字符串表示(null和undefined没有该方法)。
valueOf():返回对象的字符串、数值或布尔值表示。通常与toString()方法的返回值相同。
当对象进行操作符运算时,先调用valueOf方法,如果不存在再调用toString方法,都不存在返回 NaN。
Object和String的equals区别
String类的equals比较的是值
Object类的equals比较的是内存地址
==基本数据类型比较的是值
==引用数据类型比较的是地址