一般来说在成为Java开发工程师的道路上,面试是必不可少的事情,同时也是每个Java开发工程师必然需要经历的事情。很多人在Java面试的时候,会因为踩坑,而导致与自己心怡的工作失之交臂。所以很多想要成为Java开发工程师的人,都很苦恼如何应对面试。

Java

String和StringBuffer、StringBuilder的区别是什么?String为什么是不可变的

可变性

String类中使用字符数组保存字符串,private final char value[],所以string对象是不可变的。StringBuilder与StringBuffer都继承自AbstractStringBuilder类,在AbstractStringBuilder中也是使用字符数组保存字符串,char[]value,这两种对象都是可变的。

线程安全性

String中的对象是不可变的,也就可以理解为常量,线程安全。AbstractStringBuilder是StringBuilder与StringBuffer的公共父类,定义了一些字符串的基本操作,如expandCapacity、append、insert、indexOf等公共方法。StringBuffer对方法加了同步锁或者对调用的方法加了同步锁,所以是线程安全的。StringBuilder并没有对方法进行加同步锁,所以是非线程安全的。

性能

每次对String类型进行改变的时候,都会生成一个新的String对象,然后将指针指向新的String对象。StringBuffer每次都会对StringBuffer对象本身进行操作,而不是生成新的对象并改变对象引用。相同情况下使用StirngBuilder相比使用StringBuffer仅能获得10%~15%左右的性能提升,但却要冒多线程不安全的风险。

免费领取Java100道面试题

Java面试题:2021大厂最全Java面试资料相关推荐

  1. Java面试题2021,智慧树java程序设计答案

    前言 大厂面试真题向来都是各大求职者的最佳练兵场,而今天小编带来的便是"HUAWEI"面经!这是一次真实的面试经历,虽然不是我自己亲身经历但是听当事人叙述后便会深有同感(因为我朋友 ...

  2. Java面试题16 牛客 以下java程序代码,执行后的结果是()

    Java面试题16 牛客 以下java程序代码,执行后的结果是() 1 2 3 4 5 6 7 8 9 10 public class Test {     public static void ma ...

  3. 【Java开发】2021最新最全的Java开发工程师学习路线

    2021最新最全的Java开发学习路线 阶段一 (夯实基础) 一.Java基础语法 二.Java面向对象编程 三.Java核心类库 四.XML与JSON 五.算法与数据结构 六.数据库 七.JDBC技 ...

  4. 最新Java面试题2021年,常见面试题及答案汇总

    2021最新Java面试题[附答案解析]java面试题及答案2021,java2021最新面试题及答案汇总,2021最Java面试题新答案已经全部更新完了,有些答案是自己总结的,也有些答案是在网上搜集 ...

  5. java面试题2021最新

    1 java的跨平台: 概念:java编写的程序一次编译后,可以在运行在任何操作系统上 原理:java的跨平台关键是借助jvm,JVM是一个"桥梁",不同的平台对应不同的jvm(如 ...

  6. java学习笔记_2020全网最全Java面试题,学习笔记!

    深耕IT行业多年,我们发现,对于一个程序员而言,能去到一线互联网公司,会给我们以后的发展带来多大的影响. 很多人想说,这个我也知道,但是进大厂实在是太难了,简历投出去基本石沉大海,更不要说面试邀约了. ...

  7. Java面试题-2021

    Java面试题 1.MyCat 1.什么是数据库分片 2.MyCat的作用? 3.MyCat和MySQL的区别? 4.什么是分库分表? 5.如何设计分库分表 (mycat) 2.MongoDB 1.M ...

  8. 【Java面试题】大厂Java面试题分享

    说起要找工作了,你觉得此刻最该做的事情是什么?当然是找个大厂的面试题看一下套路,今天小编分享给大家一些[Java面试题],欢迎阅读. 什么是领域模型(domain model)?贫血模型(anaemi ...

  9. 2018java多线程面试题_2018年最全Java面试通关秘籍汇总集!

    此套面试题适用于Java开发的各个阶段面试,不过更偏向初级和中级开发人员!由于每一个问题的答案不唯一且都可以在网上搜索到答案,这里只给出问题,不列出参考答案,有兴趣的可以留言讨论,也欢迎大家的补充! ...

最新文章

  1. 深度学习入门笔记,三流程序员如何凭借实力逆袭高薪?你不服不行!
  2. Android 图片透明度处理代码
  3. HowTO: Create an Event Log Source in code, without the Permission errors
  4. linux 后台任务 前台任务 查看切换终止开始命令 bg、fg、ctrl+z、ctrl+d和ctrl+c 简介
  5. matlab算法时间复杂度,关于降低算法时间复杂度问题的探讨和总结
  6. JSP:1. 指令(page  ;include ;taglib)2. 内置对象
  7. 《Linux内核分析》课程总结
  8. C程序生成一定范围内的随机数
  9. LSGO软件技术团队2015~2016学年第三周(0914~0920)总结
  10. 蓝桥杯第六届省赛JAVA真题----生命之树
  11. Javascript第二章if选择结构第一课
  12. 计算机六年级基础知识,《计算机基础知识》单元检测考试题六年级信息技术考试卷与考试题...
  13. .net npoi 导出合并单元格
  14. 6.0系统xposed框架安装流程
  15. 计算机如何安装cpu风扇,新手装电脑入门二:手把手学习如何安装CPU及散热风扇...
  16. 输入年份 计算 生肖 C语言实现
  17. Arduino框架下ESP8266获取和风天气的第三方库实现天气时钟制作思路
  18. 从零开始实现美团联盟分销——先封装一个简洁易用的SDK
  19. Warshall算法(用法详解,并转换成代码的形式)
  20. 如何将页脚固定在页面底部,而不是屏幕底部!

热门文章

  1. [转载] 用python 获取当前时间(年-月-日 时:分:秒),并且返回当前时间的下一秒
  2. 聊一聊FPGA的片内资源相关知识
  3. 人生理解---2、看《程序员年龄增大后的职业出路是什么》有感
  4. .net core 部署应用程序注意事项
  5. 命令行基础 挂载 文件目录管理 vim编辑器
  6. Android开发技术周报 Issue#102
  7. 归纳下js面向对象的几种常见写法
  8. linux shell 递归统计代码行数
  9. 2.C#面向对象基础属性
  10. jupyter notebook matplotlib绘制动态图并显示在notebook中