Java实习生面试实录

news2024/12/26 0:13:10

你平时是怎么使用多线程的

  1. 我认为多线程使用我们可以就是你手动的,最初始学多线程就是可以去new Thread,然后去创建别的线程去异步执行一些任务,但是多线程的话最多使用可能在线程池这块会用到吧
  2. 多线程技术就是创建线程池,然后由线程池对我们这种线程一个这种更合理更可控的一个把控吧,多线程就是一个线程池技术的使用吧
  3. Runnable接口就是一个执行单元,它就是java几之后,反正就是将这个执行机制和一个这种执行单元分隔看一下runnable,callable,它就是作为一个执行单元的任务体,然后传到那个thread里面去执行嘛

简化mysql索引的最左前缀如何优化orderby语句

  • 首先要对sql进行分析检查必要的查询字段,过滤字段和排序字段,是否按顺序建立索引
  • 如果查询字段不再索引中可能会产生回表操作会导致filesort,降低性能
  • 一定要有过滤字段不然不能使用索引
  • 排序字段和索引顺序不一致会导致filesort,降低性能
  • 多个字段排序时如果方向不一致也会导致filesort,降低性能
  • 使用explain观察查询类型和索引利用情况
  • 尽可能减少不必要的filesort 

JVM内存模型中,为什么要区分新生代和年老代?在新生代中,为什么要区分eden区和survival区

  • 主流垃圾回收器cms g1都使用了分代收集算法
  • 正常系统运行时会产生大量临时对象,这些对象短期内大部分会失效,对于这些对象我们把他们临时放到新生区
  • 新生代满了之后需要清理垃圾对象,我们会把有效对象复制到老年代,以便后续继续使用
  • 为了更有效的区分哪些对象应该被复制到老年代,所以在新生代划分出了eden,s0和s1区 

细化后的新生代内部会被再次划分以便保证高速读写同时内存连续

新对象被会被保存到eden区(开始是空的,所以内存连续),eden区满了会把有效对象复制到s0(s0也是空的所以也是连续空间)

  • 清空eden区(再次写入时又是连续空间)
  • s0和s1在命名上互换 原来的s1等待写入(空的)
  • eden区再次满了,重复上述步骤

eden区通过复制/清除算法保证了读写连续性(因为新生代的对象产生和销毁非常频繁,所以采用了清空的方式)

典型的JDBC按顺序编写

  • 注册JDBC Driver
  • 获得与数据库的物理连接
  • 创建不同类型的Statement
  • 执行SQL命令
  • 如果有结果集,处理结果集
  • 释放资源

事务重点:不能在类上使用@Transactional注解,默认开启了全局读写事务 

springboot是如何管理版本依赖的

springboot底层使用maven管理依赖,通过控制pom.xml父子关系来完成细节配置,在父pom中定义具体框架和版本号以及具体信息

提供了很多场景的spring-boot-starter的pom.xml文件,来标准化的引入依赖避免冲突

数据库索引的原理 

  1. 以mysql为例,默认引擎innodb使用了b+树实现索引,在索引查找时实现了log(n)的时间复杂度
  2. 聚簇索引记录了主键id(完整数据),非聚簇索引的索引树中记录数据(索引字段+主键)
  3. 在聚簇索引的叶子节点中记录了完整的值,非聚簇索引的叶子节点记录的是主键以及索引字段,如果需要完整值的话需要回表操作,即使用主键去聚簇索引中再次查找完整数据
  4. 索引的叶子节点以链表的形式存储,方便顺序查找和排序

创建索引的缺点

会占用空间、更新时会级联更新索引、高并发写影响性能

什么情况索引失效

  1. 计算、函数导致索引失效
  2. like以%开头索引失效
  3. 不等于索引失效
  4. IS NOT NULL 可能会索引失效
  5. 类型转换索引失效

优化数据库的方法有哪些

  • 硬件 主要在存储层优化
  • 网络
  • 操作系统调优
  • 表结构设计优化
  • sql优化
  • 减少函数使用
  • 索引优化
  • 大字段及全文检索优化
  • 连接池优化
  • 事务优化
  • 数据库集群化
  • 加入缓存
  • 冷热存储
  • 分库分表

Integer和int区别

  • Integer是int的包装类,int则是java的一种基本数据类型
  • Integer实际是对象的引用,当new一个Integer,实际上生成一个指针指向对象,而int直接存储数值
  • Integer的默认值是null,而int的默认值是0

jsp八大隐含对象

pageContext、request、session、application、response、out、config、page

Spring的依赖注入 

依赖注入是指将依赖的对象实例交给spring帮我们注入管理,从而释放到对象的管理权,比如可以统一替换接口的实现,更高效的开发程序

set方法注入、构造方法注入、autowire自动注入

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/612821.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

马尔可夫链蒙特卡罗算法(MCMC方法)

MCMC方法是什么 具体而言,假设我们要计算积分 μ ∫ S h ( θ ) π ( θ ∣ x ) d θ \mu\int_Sh(\theta)\pi(\theta|x)d\theta μ∫S​h(θ)π(θ∣x)dθ如果后验分布 π ( θ ∣ x ) \pi(\theta|x) π(θ∣x)难以直接抽样,那么我们就可以构造一条马氏…

Unity | HDRP高清渲染管线学习笔记:Volume

目录 一、Volume框架 二、Volume Profile 三、Volume重载 1.Visual Environment(环境设置) 1.1 Sky type 1.2 Ambient Mode 2.Sky 2.1 HDRI Sky(HDRI天空) 2.2 Gradient Sky(渐变天空) 2.3 Physi…

JAVA日志框架

JAVA日志框架 常见日志框架日志级别阿里日志规约什么时候打印日志配置文件log4j.propertieslogback-spring.xmllogback的默认配置 导入依赖日志使用方式,引入slf4j的API输出用户日志 常见日志框架 日志框架:Log4j 、Logback 。 日志门面:Slf…

第2章:SpringMVC的@RequestMapping注解

一、SpringMVC搭建框架 1.创建一个Maven程序的步骤 ①在pom.xml导入maven依赖 <!--打包方式是war--> <!--war 包通常用于网站&#xff0c;它是一个可以直接运行的 web 模块--> <packaging>war</packaging> <dependencies><!-- SpringMVC --…

二战阿里巴巴成功上岸,准备了小半年,拿23k也不算很高吧~

先说下我基本情况&#xff0c;本科不是计算机专业&#xff0c;现在是学通信&#xff0c;然后做图像处理&#xff0c;可能面试官看我不是科班出身没有问太多计算机相关的问题&#xff0c;因为第一次找工作&#xff0c;阿里的游戏专场又是最早开始的&#xff0c;就投递了&#xf…

如何获取 C#程序 内核态线程栈

一&#xff1a;背景 1. 讲故事 在这么多的案例分析中&#xff0c;往往会发现一些案例是卡死在线程的内核态栈上&#xff0c;但拿过来的dump都是用户态模式下&#xff0c;所以无法看到内核态栈&#xff0c;这就比较麻烦&#xff0c;需要让朋友通过其他方式生成一个蓝屏的dump&…

线程同步(一)

上篇文章讲述了什么是线程&#xff0c;以及在Linux系统下线程的相关操作 线程&#xff08;Linux系统实现&#xff09;_小梁今天敲代码了吗的博客-CSDN博客 本文将继续讲述线程的相关知识——线程同步 目录 1.线程同步的概念 2.线程不同步可能会发生什么 3.线程同步方式 …

机器学习——聚类算法详解

1.聚类问题 1&#xff09;聚类问题与核心概念 聚类算法做的事情&#xff0c;就是对无标签的数据&#xff0c;基于数据分布进行分群分组&#xff0c;使得相似的数据尽量落在同一个簇内。 我们先对比区分一下聚类和分类&#xff1a; 聚类是一种无监督学习&#xff0c;而分类是…

第十三届蓝桥杯C++B组j国赛

第十三届蓝桥杯C组 题目 2693: 蓝桥杯2022年第十三届决赛真题-卡牌 题目描述 这天&#xff0c;小明在整理他的卡牌。 他一共有 n 种卡牌&#xff0c;第 i 种卡牌上印有正整数数 i(i ∈ [1, n])&#xff0c;且第 i 种卡牌 现有 ai 张。 而如果有 n 张卡牌&#xff0c;其中…

硬件测试—温升测试之JinKo 多路温度测试仪使用说明

一、概述 1.1&#xff1a;测试概述 在硬件测试中&#xff0c;温升测试也是很重要的一项测试&#xff0c;产品各项器件在稳定的环境温度下满载工作的芯片温度&#xff0c;根据测试情况评估散热需求。 1.2&#xff1a;产品图片 1.3&#xff1a;使用设备 名称 厂家 型号 PC电脑…

Acer Aspire V3-572G电脑 Hackintosh 黑苹果efi引导文件

原文来源于黑果魏叔官网&#xff0c;转载需注明出处。&#xff08;下载请直接百度黑果魏叔&#xff09; 硬件配置 硬件型号驱动情况 主板Acer Aspire V3-572G 处理器i7 5500U 2 Cores/4 Threads2,4Ghz已驱动 内存Any Samsung, Hynix or Kingston DDR3 8GB(4GBx2).已驱动 硬…

CSDN 每日一练用例数据缺失了怎么办?

CSDN 每日一练用例数据缺失了怎么办&#xff1f; 引子1、用例与结果不匹配2、阅读理解困难3、用例数据缺失 用例数据缺失&#xff0c;却有人 AC &#xff1f;神奇的 c28761 津津的储蓄计划70093 近视的小张 小结最后的吐槽 引子 老顾最近几个月经常在 CSDN 举办的周赛上浑水摸…

Tomcat 部署

一.Tomcat介绍 Servlet 是 Java Servlet 的简称&#xff0c;可以理解为是一个服务连接器&#xff0c;是用 Java 编写的服务器端程序&#xff0c;具有独立于平台和协议的特性&#xff0c; 简单的理解&#xff1a;servlet 就是一个中间件&#xff0c;包含了接口和方法&#xff0…

5.2.6 地址解析协议ARP

5.2.6 地址解析协议ARP 我们知道要想实现全球范围内主机之间的通信&#xff0c;必须要有两个统一&#xff0c;一个是地址&#xff0c;另一个是数据格式&#xff0c;我们使用IP地址来实现统一的地址&#xff0c;使用IP分组实现统一的数据格式&#xff0c;在前面局域网的学习中我…

【AIGC】13、GLIP | 首次将 object detection 重建为 phrase grounding 任务

文章目录 一、背景二、方法2.1 将 object detection 和 phrase grounding 进行统一2.2 Language-aware deep fusion2.3 使用语义丰富的数据来进行预训练 三、效果3.1 迁移到现有 Benchmarks3.2 在 COCO 上进行零样本和有监督的迁移3.3 在 LVIS 上进行零样本迁移学习3.4 在 Flic…

android 如何分析应用的内存(四)

android 如何分析应用的内存&#xff08;四&#xff09; 接上文 在介绍细节部分时&#xff0c;先介绍了各种工具的使用&#xff0c;而这些工具&#xff0c;大部分都用来调试&#xff0c;诸如&#xff1a;特定内存点&#xff0c;堆栈&#xff0c;寄存器&#xff0c;变量值等的…

MySQL安装流程 及 8.0与5.7区别

一、MySQL版本介绍 1、MySQL 8.0 窗口函数&#xff1a;MySQL 8.0版本支持窗口函数&#xff0c;这是数据分析工作中非常常用的一类函数。窗口函数可以让用户在单个查询中跨多个行检索数据&#xff0c;并在查询结果中对数据执行计算。隐藏索引&#xff1a;在MySQL 8.0版本中&am…

C++STL详解 string【C++】

文章目录 函数模板函数模板的原理函数模板的实例化模板参数的匹配原则 类模板类模板的定义格式类模板的实例化 string 函数模板 函数模板的原理 template <typename T> //模板参数 ——类型 void Swap(T& x1, T& x2) {T tmp x1;x1 x2;x2 tmp; } int main()…

牛客网语法刷题篇(C语言) — 输出格式化

&#x1f929;本文作者&#xff1a;大家好&#xff0c;我是paperjie&#xff0c;感谢你阅读本文&#xff0c;欢迎一建三连哦。 &#x1f970;内容专栏&#xff1a;这里是《C语言—语法篇》专栏&#xff0c;笔者用重金(时间和精力)打造&#xff0c;基础知识一网打尽&#xff0c;…

解析Linux中断子系统之中断映射

中断是当前计算机系统的基础功能&#xff0c;也是系统响应外设事件的必备桥梁。不同的架构对中断控制器有不同的设计理念&#xff0c;本文针对ARM公司提供的通用中断控制器&#xff08;GIC,Generic Interrupt Controller&#xff09;介绍在linux系统中的硬件中断号与软件中断号…