String

String变量是不可变的,源码里面用了final修饰。

private final char value[];
String str = "Hello";
System.out.println(Integer.toHexString(str.hashCode()));
str = "World"; //字符串一旦变化就会重写生成一个对象
System.out.println(Integer.toHexString(str.hashCode()));
//输出
42628b2
4fe2b72

StringBuilder线程不安全,但效率高,常用。

StringBuffer线程安全,但效率低。

StringBuilder sb = new StringBuilder("Hello");
System.out.println(Integer.toHexString(sb.hashCode()));
sb.append(" World"); //追加
System.out.println(sb);
System.out.println(Integer.toHexString(sb.hashCode()));
//输出
45ee12a7
Hello World
45ee12a7
public class Test {
public static void main(String[] args) {
String str1 = "";
long num1 = Runtime.getRuntime().freeMemory();
long num2 = System.currentTimeMillis();
for (int i = 0; i < 5000; i++) {
str1 = str1 + i;
}
long num3 = Runtime.getRuntime().freeMemory();
long num4 = System.currentTimeMillis();
System.out.println("消耗内存:"+(num3-num1));
System.out.println("消耗时间:"+(num4-num2)); StringBuilder str2 = new StringBuilder("");
long num5 = Runtime.getRuntime().freeMemory();
long num6 = System.currentTimeMillis();
for (int i = 0; i < 5000; i++) {
str2.append(i);
}
long num7 = Runtime.getRuntime().freeMemory();
long num8 = System.currentTimeMillis();
System.out.println("消耗内存:"+(num7-num3));
System.out.println("消耗时间:"+(num8-num4)); }
}
//输出
消耗内存:-5895808
消耗时间:149
消耗内存:0
消耗时间:0

最新文章

  1. ASP.NET Core Linux下为 dotnet 创建守护进程(必备知识)
  2. JQuery实现table分页
  3. 关于Python3爬虫抓取网页Unicode
  4. Java系列笔记(3) - Java 内存区域和GC机制
  5. ios 正则邮箱
  6. it精英的艰辛路程
  7. HDU 3887:Counting Offspring(DFS序+树状数组)
  8. HDU 5382 莫比乌斯反演
  9. (spring-第5回【IoC基础篇】)spring容器从加载配置文件到实例化bean的内部工作机制
  10. 通过样式调整input 中password text默认长度
  11. myeclipse设置技巧
  12. label 标签
  13. ProxySQL的相关维护说明
  14. jquery 只读
  15. .Net Framework 4.5.1 ASP.NET MVC 5 下新建视图报“错误 运行所选代码生成器时出错 无法检索元数据 没有为该对象定义无参数构造函数”
  16. 两小时入门Docker
  17. 分布式系列四: HTTP及HTTPS协议
  18. MySQL 目录结构、配置文件、修改密码
  19. A - Piece of Cake Kattis - pieceofcake (数学)
  20. vue2.0 技巧汇总

热门文章

  1. React 服务器端渲染流程
  2. tp5中的return
  3. Vue打包上线之后CSS没有压缩和不生效
  4. JAVA笔记10-抽象类
  5. 【Druid】-Druid数据源加密数据库密码配置
  6. Java——静态代理、动态代理
  7. electron-vue 升级 从2.x升级到4.x的坑
  8. 【leetcode】1259.Handshakes That Don&#39;t Cross
  9. 走进Github的世界
  10. CF 354 D 迷宫与门的旋转 BFS +状态压缩 一定要回头看看