java 面试准备16

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

线程上下文切换

巧妙地运用了时间片轮转的方式,CPU给每一个任务都服务一定的时间,然后把当前任务的状态保存下来,在加载下一个任务的状态后,任务的状态保存再加载,这就叫上下文切换。

进程:有时候也叫任务,是指一个程序运行的实例。在Linux系统中,线程就是能并行运行并且与他们的父进程(创建他们的进程)共享同一个地址空间和其他资源的轻量进程。
上下文:是指某一个时间点CPU寄存器和程序计数器的内容。
寄存器:是CPU内部的数量较少但是速度很快的内存(与之对应的是CPU外部相对较慢的RAM主内存)。寄存器通过对常用值(通常是运算的中间值)的快速访问来提高计算机程序的运行速度。
程序计数器:是一个专用的寄存器,用于表明指令序列中CPU正在执行的位置,存的值为正在执行的指令的位置或者下一个将要被执行的指令的位置。

线程池原理

线程池的工作主要是控制运行的线程的数量,处理过程中将任务放入队列,然后再线程创建后启动这些任务,如果线程数量超过了最大数量,超出数量的线程排队等候,等其他线程执行完毕,再从队列中取出任务来执行。它的特点主要是线程复用;控制最大并发数,管理线程。

线程复用

每一个Thead的类都有一个start方法。当调用start启动线程时,Java虚拟机会调用该类的Run方法。那么该类的run()方法就是调用了Runnable对象的run()方法。我们可以继承重写Thred类,在其start方法中添加不断循环调用传递过来的Runnable对象。这就是线程池的实现原理。循环方法中不断获取Runnable是用Queue实现的,在获取下一个Runnable之前是可以阻塞的。

什么是CAS(Compare And Swap 比较并交换-乐观锁机制-锁自旋)

CAS算法包含三个参数,V表示要更新的变量,E表示预期值(旧的),N表示新值。当且仅当V等于E时,才将V的值设为N,如果V与E不同,则说明其他线程已经做了更新,则当前线程什么都不做,最后返回当前V的真实值。

CAS操作是抱着乐观的态度进行的,它总是认为自己可以成功完成操作,当多个线程同时使用CAS操作一个变量时,只有一个会胜出,并成功更新,其他都失败。失败的线程不会被挂起,仅仅告知失败,并且允许再次尝试。

数据库的三大范式是什么

第一范式:每个列都不可再拆分
第二范式:在第一范式的基础上,非主键完全依赖于主键,而不能依赖于主键的一部分
第三范式:在第二范式的基础上,非主键只能依赖于主键,不能依赖于其他非主键

MySQL存储引擎MyISAM与InnoDB区别

Innodb引擎:提供了对数据库ACID事务的支持,并且还提供了行级锁和外键的约束。它的设计目标就是处理大数据容量的数据库系统。
MyIASM引擎:它是MySql的默认引擎,不提供事务的支持,也不提供行级锁和外键。

什么是索引

索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它包含着对数据表里面所有记录的引用指针。
索引是一种数据结构。数据库索引,是数据库管理系统中一个排序的数据结构,以便于快速查询、更新数据表中的数据。
索引的实现通常使用B树及其变种B+树。更通俗的说法,索引就相当于目录。索引是一个文件,它通常需要占据物理空间。

索引有哪几种类型?

主键索引:数据列不允许重复,不允许为空,一个表只能有一个主键索引。
唯一索引:数据列不允许重复,允许为null,一个表允许多个列创建唯一索引。
普通索引:基本的索引类型,没有唯一性的限制,允许为Null值。

百万级别或者以上的数据如何删除

关于索引:由于索引需要额外的空间维护成本,因为索引文件是单独存在的文件,所以当我们对数据的增加,修改,删除,都会引起额外的对索引文件的操作,这些操作需要小爱好额外的IO。所以当我们要删除百万级别的数据时,查询MySQL官方手册得知删除的数据的速度与创建的索引数量成正比。
(1)我们首先删除索引。
(2)然后删除其中无效数据。
(3)删除后重新简历索引。

什么是数据库的事务

事务是一个不可分割的数据库操作序列。也是数据库并发控制的基本单位,其执行的结果必须使数据库从一种一致性状态到另一种一致性状态。事务是逻辑上的一组操作,要么执行,要么都不执行。

事务的四大特性

原子性:事务是最小的执行单位,不允许分割,事务的原子性确保动作要么都完成,要么都不起作用。
一致性:执行事务后,数据保持一致,多个事务对同一个数据的读取结果相同。
隔离性:并发访问数据库时,一个用户的事务不被其他事务所干扰,各个并发事务之间是相互隔离的。
持久性:一个事务被提交后,它对数据库的改变是持久的,即使数据库发生故障也不应该有影响。文章来源地址https://www.toymoban.com/news/detail-411249.html

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

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

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

相关文章

  • Spring Boot 3.x 系列【49】启动流程 | 创建、准备应用上下文

    有道无术,术尚可求,有术无道,止于术。 本系列Spring Boot版本3.1.0 源码地址:https://gitee.com/pearl-organization/study-spring-boot3

    2024年02月14日
    浏览(28)
  • 【CSAPP】进程 | 上下文切换 | 用户视角下的并发进程

      💭 写在前面: 本文将学习《深入理解计算机系统》的第六章 - 关于异常控制流和系统级 I/O 的 进程部分。CSAPP 是计算机科学经典教材《Computer Systems: A Programmer\\\'s Perspective》的缩写,该教材由Randal E. Bryant和David R. O\\\'Hallaron 合著。 📜 本章目录: 0x00 进程(Processes) 0x01 假象

    2024年01月16日
    浏览(45)
  • 从零开始理解Linux中断架构(10)---上下文切换长征路

    有了前面章节的一大堆的铺垫,我们现在考虑一个路径比较长的任务切换: 当前 用户态进程 10#,在中断发生后,被切换到了 用户态进程 15#。        这里将使用异常执行流的概念来解释切换过程。理解了最长的那个切换,其他的任务切换:通过系统调用引起的任务切换,

    2024年02月11日
    浏览(34)
  • JS引擎中的线程,事件循环,上下文

      线程 浏览器中有哪些进程呢? 1.浏览器进程:浏览器的主进程,负责浏览器的界面界面显示,与用户交互,网址栏输入、前进、后退,以及页面的创建和销毁。 2.渲染进程(浏览器内核):默认一个tab页面一个渲染进程,主要的作用为页面渲染,脚本执行,事件处理等。 3.

    2024年02月08日
    浏览(82)
  • 零拷贝技术:减少数据复制和上下文切换,提高网络传输效率(下)

    在前一章节中,我们了解了DMA技术在文件传输中的重要性,并简要介绍了零拷贝技术。为了提高文件传输的性能,我们需要减少用户态与内核态之间的上下文切换次数以及内存拷贝次数。本章将深入探讨零拷贝技术的优化方法,让我们一起走进零拷贝的优化之路! 当我们意识

    2024年02月08日
    浏览(43)
  • 零拷贝技术:减少数据复制和上下文切换,提高网络传输效率(上)

    当涉及到网络传输中的零拷贝技术时,它在提高性能和效率方面扮演着重要的角色。在之前我们已经讨论了磁盘设备管理中的零拷贝技术,其中涉及到了DMA技术。现在,让我们来深入探讨一下网络传输中零拷贝技术的实现方式以及它的重要性。 在没有DMA(直接内存访问)技术

    2024年02月08日
    浏览(33)
  • Linux_进程的优先级&&环境变量&&上下文切换&&优先级队列

    什么是优先级? 指定一个进程获取某种资源的先后顺序 本质是进程获取cpu资源的优先顺序 为什么要有优先级 进程访问的资源(CPU)是有限的 操作系统关于调度和优先级的原则:分时操作系统,基本的公平,如果进程因为长时间不被调整,就造成了饥饿问题 Linux的优先级特

    2024年04月09日
    浏览(40)
  • vue-element-plus-admin框架的tag上下文切换bug

    首先贴上该框架的链接:https://github.com/kailong321200875/vue-element-plus-admin 在对路由进行部分修改后,网站多次切换tag时,控制台会出现报错: Cannot read properties of undefined (reading \\\'offsetLeft\\\') 。 我在框架的issue中找到了类似问题:打开多个TagsView时会报错,用的 template 分支 对此,作

    2024年02月15日
    浏览(33)
  • OpenAI深夜放毒:发布GPT-4新模型,GPT-3.5支持16K上下文,并且价格降低75%

    一觉起来,发现OpenAI Twitter更新了,而且更新力度很大,这真是深夜放毒。 下面我们看下OpenAI本次的重大更新都有哪些? 在 Chat Completions API 中引入了新的功能调用能力。 gpt-4-0613 和 gpt-3.5-turbo-0613 版本已进行了更新和改进。 开发人员现在可以描述函数给模型,并通过输出的

    2024年02月09日
    浏览(63)
  • Arm Cortex R52与TC3xx Aurix上下文切换对比

    目录 1.Arm Cortex R52上下文切换 2.英飞凌TC3xx的CPU上下午切换 2.1 上下文类型 2.2 Task Switching Operation  2.3 Context管理寄存器  2.4 各种事件的上下文切换 2.4.1 中断/Trap的上下文切换 2.4.2 函数调用的上下文切换 2.4.3 FCALL/FRET的上下文切换 2.5 Context Save、Restore操作 2.6 Context 切换性能特性

    2024年02月02日
    浏览(44)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包