第一次写博客,由于在学校里学的java不是很完整,老师只是泛泛的讲了一下,所以我抽空自己将Java(可能是javaSE)由自学了一遍。基础知识就没什么可说的,下边讲解一下String StringBuffer和StringBuilder三个东西。
java的三个版本
JavaSE
Java标准版(Java Standard Edition),定位在个人计算机的应用,我们最开始学的都是JavaSE
JavaEE
Java企业版(Java Enterprise Edition),企业版,基于服务器。在JavaSE的基础上增加了Service,jsp等。
JavaME
Java微型版,基于消费性电子产品(我也不是很懂,用的也越来越少)和安卓开发不同,是两码事
主体部分
String类
String类实际上是将你要保存的字符串存到类中的
private final char value[];
中,可以看到,只能赋值一次,无法修改,所以说String创建之后无法修改。但是有人说调用subString方法可以修改字符串(变成了字串),但是这种方法是新生成了一个字符串,原有的字符串没有改变。
在字符串的比较方面,有两种方法,一种是==,还有一种是.equals()。这两种方法有什么不同呢?等号他比较的是等号两方是不是同一个对象。而equals比较的是两个字符串的值是否相等。我们举以下例子:
String s1 = "abc";
String s2 = "abc";
String s3 = new String("abc");
System.out.println(s1==s2);
System.out.println(s1==s3);
System.out.println(s1.equals(s2));
System.out.println(s1.equals(s3));
结果如下:
true
false
true
true
StringBuilder和StringBuffer
继承AbstractStringBuffer
里边使用char[] value储存数据。
StringBuilder线程不安全,但是效率高(一般使用这个)。StringBuffer线程安全,但是效率低。
StringBuilder stringBuilder = new StringBuilder("safd");
System.out.println(stringBuilder);
System.out.println(Integer.toHexString(stringBuilder.hashCode()));
stringBuilder.setCharAt(2,'6');
System.out.println(stringBuilder);
System.out.println(Integer.toHexString(stringBuilder.hashCode()));
结果如下:
safd
4554617c
sa6d
4554617c
可以看出StringBuilder的地址确实没有变化。
主要的方法
append():在后边添加字符串
reverse():倒序。
setCharAt():在哪替换成什么
insert():在哪插入什么
delete():从哪删除到哪
就写到这里了,谢谢大家支持