个人理解:这个方法实在是很尴尬的一个方法,不能发号施令,只能干吆喝,干不干是别人的事。这就相当于街头小贩了,只吆喝,管不了你买不买。
获取对象的实际类型(创建类型)。正则表达式 中文匹配
返回对象的哈希码值的十进制。哈希码是一串32位的二进制数据,由于出现相同的数值的概率非常低,所以可以认为是唯一的。(不建议手动重写)
重写hashCode的时候,当equals值为true的时候,哈希码必须一致。但是哈希码一致equals不一定为true。
native关键字修饰的是本地方法,底层是用c语言写的。
返回对象的字符串形式,默认返回对象的地址。当打印对象的时候默认是调用了这个对象的toString方法。一般会重写。
==和equals有什么区别?
当是基本类型的时候,==判断的是实际数据;对于引用类型而言==判断的是地址。
equals只能作用于引用类型,默认比较的是两个对象的地址;当重写来equals的时候,按照重写之后的要求进行比较。
String class 就是字符串类,我看了源码,底层就是使用char数组存储数据的。
1.String是一个最终类,代表字符串的一个类,所有的字符串都是String的对象。
2.字符串是一个常量;字符串可以被共享。
3.字符串是存在方法区。
4.注意不同的方式创建的对象的个数。有几个对象,就看内存中有几个存储的是地址。
String s = “abc”; //产生了1对象
String s = new String(“abc”); //产生了2个对象
String s = “a”; s += “b”; //产生了5个对象
String s = “a”; //产生了1个对象
s = new StringBuilder(“a”).append(“b”).toString(); //这个过程产生了4对象
String s = “a”; s += “b”; //1个a,1个b,2个对象。
String s = “a”; //
s = new StringBuilder(“a”).append(“b”).toString();
//3个对象:StringBuilder1个,append拼接产生1个,toString产生1个。
s = new String(“ab”);//最终只存活了4个对象,StringBuilder产生的对象会被解析。
// 100个字符串组成的字符数组
String[] arr = new String[100];
// + 进行拼接
String s = “”; // 1
for(String str : arr){
s += str; //s = new StringBuilder(s).append(str).toString(); //300
}
// StringBuilder
StringBuilder sb = new StringBuilder(); // 1
for(String str : arr){
sb.append(str); // 100
}
String s = sb.toString(); // 1
操作字符串的一个类,不保证同步,是一个线程不安全的类。效率高一些。
在进行字符串拼接的时候JVM会在底层调用StringBuilder的append方法,进行拼接。
如果拼接多个字符串,建议使用StringBuilder;如果拼接少量字符串,可以使用+。
构造一个不带任何字符的字符串,其初始容量为 16 个字符。
构造一个不带任何字符,容量有参数确定的字符串。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-53988-2.html
兔子加油
错