大字符串存储java_java学习之字符串

java中字符串的有三种

String           ---称为静态字符串,一经定义就长度和内容不在改变,一旦改变就会生成新的字符串,在频繁进行字符串拼接的时候后会产生大量零散内存单元,家中jvm内存回收压力,如果字符串内容不发生改变,则没有问题

StringBuffer       ---动态字符串,长度和内容都可以改变的字符串,但因为stringbuffer中大量方法都是线程同步的,该类一般用于多线程编程,在非线程环境下应用该类需要额外维持线程开销,性能不佳。

StringBuilder      ---从java5开始,对于非线程环境的动态数组, 是stringbuffer的替代类,取消了线程同步开销的问题

三种类型  针对不同环境使用。

string str=“123”  ;string str2=str+“456”; +号是字符串拼接  相当于又生成了一个新的内存叫str2来存储str和“456”这两部分的内容

stringbuffer  和stringbuilder 用于sql语句拼接

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

//定义sql

StringBuilder sql=newStringBuilder()

.append("SELECT A.AAB102,A.AAB103,A.AAB104,A.AAB105,TO_CHAR(A.AAB106,'YYYY-MM-DD') AAB106 ")

.append(" FROM AB01 A")

.append(" WHERE A.AAB101=?")

;

stringbuffer举例

字符串string比较方法 equals  比较的是地址 引用 但是字符串string重写了equals方法 比较的是内容,equals不是final修饰 可以被重写

你可能感兴趣的:(大字符串存储java)