基础面试题整理3

这篇具有很好参考价值的文章主要介绍了基础面试题整理3。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.String、StringBuffer、StringBuilder区别

String是不可变字符串

StringBuffer、StringBuilder是可变字符串

String是不可变字符串,因为想修改该字符串内容,只能重新分配地址并赋予新的内容,并将指针指向新的地址

基础面试题整理3,面试专用,java

StringBuffer与StringBuilder都是可变字符串,都是继承AbstractStringBuilder,StringBuilder是线程不安全,StringBuffer是线程安全

StringBuilder:线程不安全,执行速度快

基础面试题整理3,面试专用,java

基础面试题整理3,面试专用,java

StringBuffer:线程安全,执行速度慢

基础面试题整理3,面试专用,java

基础面试题整理3,面试专用,java

扩容:原来数组大小*2+2

先判断是否需要扩容,若不需扩容,直接拼接数据后返回该对象;若需要扩容,则先将源数组复制到扩容好的新数组[ensureCapacityInternal方法],利用类的扩容机制知道扩容的容量Arrays.copyOf(value,newCapacity(minimumCapacity)); 后通过getChars()拼接数据,最后返回该对象

 基础面试题整理3,面试专用,java

2.如何声明一个类不会被继承

final修饰,该类不会被重写或继承,例如Math类,其中构造函数用private修饰,因此在调用时也不需要new Math()创建对象,但是里面方法都用static修饰,于是可以直接用类.方法调用 Match.abs(1)

基础面试题整理3,面试专用,java

3.自定义异常的场景

1.具体的业务逻辑需要

2.表现层统一对异常进行异常捕获处理

4.HashMap与HashTable区别

  1. hashMap线程不安全【使用Collections.synchronizedMap、ConcurrentHashMap;】HashTable线程安全(synchronized修饰);
  2. hashMap允许<key,value>有空值;HashTable不允许;
  3. hashMap中数组默认长度为16,增长方式是2的指数倍;HashTable中数组默认大小为11,增长方式是old*2+1;
  4. hashMap继承AbstractMap类;HashTable继承Dictionary类;

基础面试题整理3,面试专用,java

基础面试题整理3,面试专用,java

基础面试题整理3,面试专用,java

基础面试题整理3,面试专用,java

5.MVCC 多版本并发控制(multi version concurrentcy control)

在数据库管理系统中使用实现对数据的并发访问;在编程中则是事务的体现

在并发操作中,存在读读、读写、写写三种情况

  • 读读:对数据库的并发访问是没有影响的
  • 读写:有线程安全问题,可能会造成事务隔离性问题,脏读(读到了其他事务未提交的数据)、幻读(在修改全部数据时,另一事务在新增操作,导致不是全部数据更新)、不可重复读(同一事务中多次读取的数据不一致)
  • 写写:有线程安全问题,可能会造成数据丢失问题

MVCC是用来解决读写冲突的无锁并发控制,也就是为事务分配单项增长的时间戳,每操作一次都会生成一个版本记录,读操作只读该事务开始前的数据库快照

MVCC解决的问题:

  1. 在并发读写数据库时,读/写操作不需要进行阻塞式操作,提高了并发读写速度
  2. 解决了脏读、幻读、不可重复读,但是不能解决数据丢失问题

MVCC的实现原理依赖于记录中的三个隐藏字段,undolog、read view实现的。

隐藏字段

DB_TRX_ID:记录事务的ID

DB_ROLL_PTR:回滚指针,记录最后一次修改记录的事务ID

DB_ROW_ID:主键

undolog:回滚日志,表示在insert、delete、update操作时候产生的方便回滚的日志

insert操作时,产生的undolog日志只有在事务回滚时需要,事务提交后该记录直接丢弃。

delete、update操作时,产生的undolog在事务回滚时需要,也在快照读的时候需要。

read view:事务进行快照读的时候产生的读视图文章来源地址https://www.toymoban.com/news/detail-786492.html

到了这里,关于基础面试题整理3的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【面试】Java高频面试题(2023最新整理)

    JDK(Java Development Kit),Java开发工具包 JRE(Java Runtime Environment),Java运行环境 JDK中包含JRE,JDK中有一个名为jre的目录,里面包含两个文件夹bin和lib,bin就是JVM,lib 就是JVM工作所需要的类库。 对于基本类型,== 比较的是值; 对于引用类型,==比较的是地址; equals不能用于基

    2023年04月08日
    浏览(49)
  • Java面试整理(一)

    面试,应该都是打工人需要面对的事情。我记得自己以前开始准备Java工程师面试时,都会去看那个《面试宝典》,当时这个“宝典”真的很经典,现在应该还是不少朋友会看这个。我自己经历过了找工作的面试,和企业招聘工作。所以我自己更加想从这两个不同的角度去和大

    2024年02月09日
    浏览(31)
  • JAVA面试题整理

    ①抽象类里可以有构造方法,而接口内不能有构造方法。 ②抽象类中可以有普通成员变量,而接口中不能有普通成员变量。 ③抽象类中可以包含非抽象的普通方法,而接口中所有的方法必须是抽象的,不能有非抽象的普通方法。 ④抽象类中的抽象方法的访问类型可以是 pu

    2024年02月08日
    浏览(41)
  • 算法面试-深度学习基础面试题整理-AIGC相关(2023.9.01开始,持续更新...)

    1、stable diffusion和GAN哪个好?为什么 ? Stable diffusion是一种基于随机微分方程的生成方法,它通过逐步增加噪声来扰动原始图像,直到完全随机化。然后,它通过逐步减少噪声来恢复图像,同时使用一个神经网络来预测下一步的噪声分布。Stable Diffusion的优点是可以在连续的潜

    2024年02月10日
    浏览(47)
  • Java高级开发面试题整理

    1、什么是进程和线程? 进程是指程序的一次执行过程,是系统运行程序的基本单位,系统运行一个程序就是一个进程创建、运行、到销毁的过程;一个进程可以有多个线程。比如我跑一个java的main方法,系统就创建了一个java进程,这个main方法所在的线程就是这个进程的一个

    2024年02月08日
    浏览(47)
  • Java面试整理(二)《JavaSE》

    说明:我会根据我自己的经验,给每个内容标注重要程度,共有三个等级:低、中、高。仅个人参考意见。 JVM是Java Virtual Machine的缩写,是用于运行Java字节码的虚拟机,JVM是运行在操作系统之上,这也是Java程序为什么能够运行在不同的平台或操作系统的原因。 JVM是Java语言

    2024年02月09日
    浏览(32)
  • java 高级面试题整理(薄弱技术)

    session 1.什么是session Session是另一种记录客户状态的机制,不同的是Cookie保存在客户端浏览器中,而Session保存在服务器上。客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上。这就是Session。客户端浏览器再次访问时只需要从该Session中查找该客户

    2024年02月11日
    浏览(46)
  • 【面试】Java面试频繁问到的题最新整理(附答案)

    封装 :对象只需要 选择性的对外公开一些属性和行为 。 继承 :子对象 可以继承父对象的属性和行为 ,并且可以在其之上进行修改以适合更特殊的场景需求。 多态 : 允许不同类的对象对同一消息做出响应 。 数据类型 占用字节 byte 1 short 2 int 4 long 8 float 4 double 8 char 2 boo

    2024年02月07日
    浏览(46)
  • 2023最全软件测试基础+字节大佬整理的面试笔记(超详细~)

    软件是计算机系统中的程序和相关文件或文档的总称。 说法一:使用人工或自动的手段来运行或测量软件系统的过程,以检验软件系统是否满足规定的要求,并找出与预期结果之间的差异。 说法二:软件测试就是利用一定的方法对软件的质量或者使用性进行判断和评估的过

    2024年02月09日
    浏览(48)
  • 全网最全JAVA面试八股文,终于整理完了

    又到一年金三银四面试跳槽季,你准备好了吗? 今天为大家整理了目前互联网出现率最高的大厂面试题,所谓八股文也就是指文章的八个部分,文体有固定格式:由破题、承题、起讲、入题、起股、中股、后股、束股八部分组成,题目一律出自四书五经中的原文。 而JAVA面试八

    2024年02月01日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包