您的位置:首页 > Web前端

java_String、StringBuffer

2018-01-04 09:19 323 查看
堆中存放对象,栈中存放对象的引用,方法区中的字符串常量池存放字符串。

package com.tz.StringTest;
import java.util.Scanner;

/**
*  java.lang.String
*  1.  String类型的字符串一旦创建 不可改变;(....)
*  2   为了提升字符串的访问效率,使用了缓存技术
*  字符串常量池  所有用"" 括起来的字符串都会在字符串常量池中找,如果没有就创建一份,
*  如果有的话,直接用
*/
public class StringDemo {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
String str="ss";//创建了一份
int s1=123;
//      str="大名sss";
String str1="ss";
String str2="g";
String str3="ssg";
String str4= "ss"+str3;
String str6=new String("ss");
System.out.println(str6==str1);

System.out.println(str4);
System.out.println(str4 == str3);//
System.out.println(str.toString());//

System.out.println("------------------");
String str5=new String("123");
System.out.println(str5);
//String常用方法
//截取字符串   index  下标  从0开始
String ss1="大名帅锅";
char ch=ss1.charAt(ss1.length()-1);
System.out.println(ch);
//                              [开始下标   结束下标) [开始下标   结束下标]
System.out.println(ss1.substring(0,3));
//通过内容找下标
int s="1大名践行".indexOf("大");
System.out.println(s);
//去掉前后的空格
System.out.println("     dsada  dsads 大叔大婶   ".trim());
String[] zs= {""};
//字符串替换
String t1="dasasa".replace('s', '*');
System.out.println(t1);
//字符串通过关键字截取,并返回字符串数组
String[] split = "dsads,12,456".split(",");
for (String string : split) {
System.out.println(string);
}
}
}


package com.tz.StringTest;
/*
* 1.缓冲区:    StringBuffer是 字符串缓冲区
*      可以改变!
* 2.工作原理:
*      在内存中申请一个空间   用来容纳字符串序列
*      如果预留的空间不够   则进行 自动扩容
* StringBuffer 和String的区别
*      1. String 是一个不可改变的字符串序列 存在字符串常量池中的
*      2. StringBuffer底层是一个char数组,  char数组可以改变  自动扩容
*
*/
public class StringBufferDemo  {

public static void main(String[] args) {
StringBuffer strb=new StringBuffer("大名");(线程安全,但是效率低)
StringBuilder sbd=new StringBuilder("小明");(线程不安全,但是效率高)
//----
strb.append("骚情");//追加操作
sbd.append("同学");
///--
System.out.println(strb);
System.out.println(sbd);
strb.append("骚情s");
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: