面试(2)——StringBuffer StringBuilder String /==与equals
最近有小伙伴问我面试的时候,经常会问些什么问题,其实面试的时候,面试官无非就是面试一些基础,怎么问呢,就是会根据你简历上所写的技术点进行询问,由浅到深。你可能会说,那这样我面试的时候少写一些,那问你的知识点少了,就会感觉你的知识存储量不多。如果写的多了,有很多不会的,那面试官问到你的时候,你不知道,就是一个大型的社死现场。
那怎么选择呢?可以选择自己很熟悉的,理解的以及了解的,不会的东西就不要写了。如果发现会的很少,那就再研究一下自己了解一点的,把它转成理解的。
可能你写了很多了,但是面试官只问了一两个,这一两个可能就是会往深了挖。
我在这里准备了一些高频面试的知识点,可能会有遗漏啥的,大家可以自行扩充。有的公司可能会问到,java基础知识,集合容器,spring全家桶,mysql数据库,mybatis,ssm框架,redis缓存,MongoDB数据库,linux系统的操作(常用的语法命令,目录结构)以及rocketmq消息队列,还有可能问一些elasticsearch等。大家可以根据这些知识点,去找自己会的技术。
当然我所整理的题目只是一个白话的问题,面试官肯定会委婉一下,你只要听懂了要问的是什么就好了
面试题1:你了解StringBuffer StringBuilder String 吗?他们三者的区别是什么?
1.StringBuilder执行效率高于StringBuffer高于String.
2. String 是-一个常量,是不可变的,所以对于每一次+=赋值 都会创建一一个新的对象,StringBuffer 和StringBui lder都是可变的,当进行字符串拼接时采用append方法,在原来的基础上进行追加,所以性能比String要高,又因为StringBuffer是线程安全的而StringBuilder是线程非安全的,所以StringBuilder的效率高于StringBuffer。
3.对于大数据量的字符串的拼接,采用StringBuffer, StringBuilder。
你了解他们的原理吗:
String:String 类不可变,内部维护的char[]数组长度不可变,为final修饰,String 类也是final修饰,不存在扩容。字符串拼接,截取,都会生成一个新的对象。频繁操作字符串效率低下,因为每次都会生成新的对象。
StringBuilder:StringBuilder类内部维护可变长度char[],初始化数组容量为16,存在扩容,其 append拼接字符串方法内部调用System的native方法,进行数组的拷贝,不会重新生成新的StringBuilder对象。非线程安全的字符串操作类,其每次调用toString 方法而重新生成的String对象,不会共享StringBuilder对象内部的char[],会进行一次char[]的copy操作。
面试题2:你来说一下= =和equals区别?
1.==:在比较基本数据类型的时候,比较的是数据的值:比较引用数据类型时,比较的是地址值。
2.equals方法在重写之前,比较的是俩个对象的地址值;在重写之后.比较的是属性值
面试题3:那重写 equals需要重写hashCode吗?
这肯定是需要的。好比咱们有两个相同值的User对象,假如只重写equals而不重写hashcode,那么User类的hashcode方法就是Object默认的hashcode方法,由于默认的hashcode方法是根据对象的内存地址经哈希算法得来的,那么两者的hashcode不一定相等。
面试题4:你能说出java 的基本数据类型
数据类型 位 大小
byte (字节) l (8位)
shot (短整型) 2 (16 位)
int (整型) 4 (32位)
long(长整型) 8 (32 位)
float(浮点型) 4 (32 位)
double (双精度) 8 (64位)
char (字符型) 2 (16 位)
boolean (布尔型) |
附加:
String是基本数据类型吗? (String不是基本数据类型)
String的长度是多少,有限制? (长度受内存大小的影响)
我就是针对于基础的面试题稍微整理了一下,具体的怎么实现啊底层代码是什么,我就不去拔了。我就整理一下概念。
面试(2)——StringBuffer StringBuilder String /==与equals相关推荐
- StringBuffer/StringBuilder/String的区别
1.在执行速度上:Stringbuilder->Stringbuffer->String 2.String是字符串常量 Stringbuffer是字符串变量 Stringbuilder是字 ...
- 四、StringBuffer StringBuilder String 区别
String 字符串常量 不可变 使用字符串拼接时是不同的2个空间 StringBuffer 字符串变量 可变 线程安全 字符串拼接直接在字符串后追加 StringBuilder 字符串变量 可变 非 ...
- `java`学习笔记(十二)`Java`--`String``StringBuffer``StringBuilder`
Java–String&&StringBuffer&&StringBuilder 文章目录 `Java`--`String`&&`StringBuffe ...
- String StringBuffer StringBuilder区别与联系
String StringBuffer StringBuilder String的值是不可变的,这就导致每次对String的操作都会生成新的String对象,不仅效率低下,而且浪费大量 ...
- String StringBuffer StringBuilder的区别
简单的事情做到极致也是一种能力. 首先,说一下目前我还没进行整理的情况下,我的理解: String 不可修改 修改后相当于又新创建创建一个字符串 比如: String a = "abc&qu ...
- 【翻译】Java中String, StringBuffer, StringBuilder的区别
2019独角兽企业重金招聘Python工程师标准>>> String 是 Java 中最重要的类之一,并且任何刚开始做Java编程的人,都会 用String定义一些内容,然后通过著 ...
- 浅谈 Java 字符串(String, StringBuffer, StringBuilder)
我们先要记住三者的特征: String 字符串常量 StringBuffer 字符串变量(线程安全) StringBuilder 字符串变量(非线程安全) 一.定义 查看 API 会发现,String ...
- 3.4 java基础总结①常用类String②Stringbuffer③Stringbuilder
①常用类String②正则表达式③Stringbuffer④Stringbuilder 一.String ①String内存分析 String str0 = "hello";预先放 ...
- String, StringBuffer,StringBuilder
String, StringBuffer,StringBuilder的区别 java中String.StringBuffer.StringBuilder是编程中经常使用的字符串类,都实现了CharSe ...
最新文章
- 如何获取URL中的参数
- 借助网盘搭建SVN服务器
- C语言 什么时候用取地址什么时候不用取地址,符号讲解
- 解决无法将java项目部署到tomcat中去
- C++描述杭电OJ 2017.字符串统计||
- linux下vi编辑器常用命令
- html h1 字母,html----h1-6标签
- ViewBag ViewData
- StringBuilder和String有哪些区别?
- 最难的几道Java面试题,看看你跪在第几个?
- 用于交通流预测的时间多图卷积网络
- scala怎么取绝对值
- 对注册表项“HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run”的访问被拒绝。
- 关于华为应用市场的上架流程
- 出现这些情况,裸辞不是找虐,是解脱!
- 关于atmel芯片security bit的取消
- H264码流的 ps封装
- ARM S5PV210 X210 刷机教程总结
- 信息时代的生活到底给我们带来了什么?
- 教资付款了显示内部服务器错误,教师资格证笔试报名时,网站问题如何解决?...
热门文章
- RT-Thread移植
- 手游复古传奇服务器维护,复古传奇手游:服务器中那些极品装备,属性也是逆天!...
- 模拟——玩具谜题(洛谷 P1563)
- dbforge studio for oracle 注册,dbForge Studio for Oracle
- mybaitis快速生成_关于Mybatis-Plus代码生成器快速使用心得
- 实战课堂:一则CPU 100%的故障分析处理知识和警示
- 4个优化方法,让你能了解join计算过程更透彻
- 为何我中断执行的线程不起作用,Why
- 云小课 | 区块链关键技术之一:共识算法
- ubuntu16.04 安装cuda9.0+cudnn7.0.5+tensorflow+nvidia-docker配置GPU服务