(1) 问题分析

考官主要想对final修饰符的作用,同步锁,以及数据类型的考察。在工作中为什么业务层频繁的拼接sql不用string而用StringBuilder,为什么Stringbuilder比StringBuffer效率高

(2) 核心答案讲解

String是引用类型,底层是被final修饰的字符数组,所以String相当于一个常量,是不可改变的,每拼接一次就会产生一个新的对象,而由于垃圾回收机制的原理,原有的对象不会立马被回收,这是对内存极大的消耗;而StringBuilder和StringBuffer 是可变长度的,可以利用append方法向原有对象拼接,然后用toString方法将其转化为String类型;这两个相比起来StringBuilder的效率更高,因为他是非线程安全的,不需要花费资源去维护同步锁。

(3) 问题扩展

Final修饰符的作用是什么?

在工作中你们如果在业务层去拼接sql,使用String类型去接收的吗?

(4) 结合项目中使用

在项目中如果频繁的拼接字符串需要用什么类型对象去接收

stringbuilder_String,StringBuilder,StringBuffer三者的区别?相关推荐

  1. Java基础之String,StringBuilder,StringBuffer三者的区别

    Java基础之String,StringBuilder,StringBuffer三者的区别 目录 运行速度方面 线程安全方面 小结 1. 运行速度方面 运行速度,在这方面运行速度快慢为:StringB ...

  2. String StringBuilder StringBuffer三者之间的区别~~~

    String StringBuilder  StringBuffer三者之间的区别~~~ String是字符串常量,它是典型的immutable类,被声明final class,所有的属性都是fina ...

  3. Java:中的String,StringBuilder,StringBuffer三者的区别

    Java中的String,StringBuilder,StringBuffer三者的区别 最近在学习Java的时候,遇到了这样一个问题,就是String,StringBuilder以及StringBu ...

  4. Java中的String,StringBuilder,StringBuffer三者的区别

    最近在学习Java的时候,遇到了这样一个问题,就是String,StringBuilder以及StringBuffer这三个类之间有什么区别呢,自己从网上搜索了一些资料,有所了解了之后在这里整理一下, ...

  5. java中string 和stringbuffer的区别_Java中的String,StringBuilder,StringBuffer三者的区别...

    最近在学习Java的时候,遇到了这样一个问题,就是String,StringBuilder以及StringBuffer这三个类之间有什么区别呢,自己从网上搜索了一些资料,有所了解了之后在这里整理一下, ...

  6. 【Java】Java中String、StringBuilder、StringBuffer三者的区别

    这三个类之间的区别主要是在两个方面(运行速度和线程安全)这两方面. 1. 首先说运行速度,或者说是执行速度,在这方面运行速度快慢为:  StringBuilder >StringBuffer & ...

  7. String,Stringbuilder,Stringbuffer及正则表达式

    掌握String StringBuilder StringBuffer类的区别 一.String String是不可变类,一旦String对象被创建之后,包含对象中的字符串序列都是不可改变的,直到类被 ...

  8. String , StringBuilder , StringBuffer

    String 首先从String底层看起 从底层代码被final修饰,我们能看出来,String是只读字符串,他的成员方法也都默认为final方法.所以String所引用的字符串内容不能被改变 Str ...

  9. Java中String、StringBuffer、StringBuilder三者的区别

    一.简介 String.StringBuffer.StringBuilder三个类之间的区别主要是在两个方面:运行速度和线程安全. 二.区别 1.运行速度,或者说是执行速度 在这方面运行速度快慢为:S ...

最新文章

  1. Deep Belief Network简介——本质上是在做逐层无监督学习,每次学习一层网络结构再逐步加深网络...
  2. .Net开源微型ORM框架测评
  3. CSDN编程挑战——《高斯公式》
  4. windows oracle 内存大,如何设计Oracle数据库内存的大小
  5. opencv2.4.3通过不同方式访问图像像素
  6. linux六个标准目录,Linux基本目录规范——XDG
  7. 在线 pdf转word
  8. 第十二章 Android第三方库源码
  9. 通过hosts文件配置域名ip
  10. 【无向图求最小割集】
  11. linux战争雷霆无法运行,《战争雷霆》Mac版下载及运行问题汇总
  12. 全球都在建智慧城市,智慧城市究竟什么样?中通服创立科技告诉你
  13. 快速了解 Git 仓库
  14. 电脑虚拟摄像头 -obs及obs虚拟摄像头插件(免费)
  15. 吉大计算机如何本科进实验室,吉林大学本科实验教学管理办法(试行)
  16. 【TencentOS tiny】 超详细的TencentOS tiny移植到STM32F103全教程
  17. IDM下载器最新版本6.36.5
  18. Java自动生成订单编号+流水号
  19. java对字符串进行加星号处理
  20. Android 虚拟按键适配动态调整布局

热门文章

  1. Sketch2Code 前端智能AI-识别草图生成代码
  2. Spring框架入门(一)
  3. Java 多态的特性和概念
  4. uni-app中v-html中的元素添加样式
  5. python音频实时频谱分析_基于python的音频设计及频谱分析
  6. C# 未能加载文件或程序集“ Newtonsoft.Json” Json格式错误
  7. JAVA 中转义符的理解
  8. js手机端图片弹出方法
  9. 手游与App测试如何快速转型? —— 过来人科普手游与App测试四大区别
  10. [leetcode]Flatten Binary Tree to Linked List