某小厂面试

某小厂面试

      • 1.spring ioc aop
      • 2.arraylist和linkedlist哪个查询快
      • 3.java基本数据类型
      • 4.自动装箱拆箱
      • 5.关系型数据库用过吗
      • 6.mysql连接方式
      • 7.内连接和外连接
      • 8.主键和外键

1.spring ioc aop

IOC(Inversion of Control)是一种设计原则,它将原本由程序员手动创建和管理的对象交给Spring容器来管理。Spring容器充当对象工厂的角色,负责对象的创建和依赖关系的管理。通过IOC,当我们需要使用对象时,只需从容器中获取即可。

实现IOC的方式之一是依赖注入(Dependency Injection)。依赖注入可以通过以下三种方法来实现:

  1. 注解注入:使用注解(如@Autowired、@Resource)来标注需要注入的依赖对象,Spring容器会根据注解信息自动完成对象的创建和注入。
  2. Setter注入:通过为依赖对象提供对应的setter方法,在XML配置或者注解中配置依赖关系,Spring容器在创建对象时会自动调用setter方法来完成依赖注入。
  3. 构造方法注入:通过在构造方法中声明依赖参数,Spring容器会根据构造方法的参数信息来创建对象并完成依赖注入。

AOP(Aspect-Oriented Programming)是一种编程范式,它允许在程序的某个特定点(切入点)插入非业务性的代码,比如日志记录等。这些代码被称为切面(Aspect),可以通过AOP来实现。

2.arraylist和linkedlist哪个查询快

ArrayList和LinkedList在查询、删除和插入操作上具有不同的性能特点。

  1. 查询:ArrayList的查询速度较快,因为它内部使用数组实现,可以通过索引直接访问元素,时间复杂度为O(1)。而LinkedList需要从头或尾开始遍历链表,直到找到目标元素,时间复杂度为O(n)。
  2. 删除和插入:LinkedList在删除和插入操作上比ArrayList更快。当需要删除或插入元素时,ArrayList需要移动其他元素以保持连续性,导致时间复杂度为O(n)。而LinkedList只需要更改相邻节点的指针,时间复杂度为O(1)。特别是在链表的首尾操作上,LinkedList表现更为突出。

3.java基本数据类型

基本数据类型指的是Java语言中的基本数据类型,包括整型、浮点型、布尔型和字符型。以下是Java中的基本数据类型:

  1. 整型:
    • int:用于表示整数,占用4个字节。
    • byte:1个字节,范围为-128到12
    • long:用于表示长整数,占用8个字节。
    • short:用于表示短整数,占用2个字节。
  2. 浮点型:
    • float:用于表示单精度浮点数,占用4个字节。
    • double:用于表示双精度浮点数,占用8个字节。
  3. 布尔型:
    • boolean:用于表示逻辑值,只有两个取值:true和false。
  4. 字符型:
    • char:用于表示单个字符,占用2个字节。

4.自动装箱拆箱

自动装箱就是将基本数据类型用对应的引用数据类型封装起来

比如:

int a=1;

Interge w=a;

自动拆箱就是指将包装类对象自动转换为对应的基本数据类型。

比如:

Interge a=1;

int w=a;

5.关系型数据库用过吗

用过,比如mysql,sqlserver

6.mysql连接方式

  • JDBC连接:使用Java数据库连接(JDBC)API通过驱动程序连接到MySQL数据库,导入库,在配置文件中配置url,username,password。
  • 命令行连接:使用MySQL命令行客户端通过命令行界面连接到MySQL数据库,mysql -u -p,username为主机名或者主机的IP地址。
  • 图形化工具连接:使用图形化工具如Navicat Premium 15等连接到MySQL数据库。
  • 编程语言连接:通过编程语言的MySQL连接库(如Python的MySQLdb、PHP的mysqli扩展等)连接到MySQL数据库。

7.内连接和外连接

  • 内连接:内连接根据两个或多个表之间的匹配条件,返回同时在这些表中存在的行。只有满足连接条件的行才会被返回,其他行将被过滤掉。
  • 外连接:外连接根据连接条件,返回左表(左外连接)或右表(右外连接)中的所有行,同时根据连接条件匹配的行将被返回。如果没有匹配的行,将使用NULL值填充缺失的列。

将使用一个名为 Employees 的表和一个名为 Departments 的表来演示。

  1. Employees 表包含员工的信息,具有以下列:

    • EmployeeID: 员工ID
    • EmployeeName: 员工姓名
    • DepartmentID: 所属部门ID

    下面是 Employees 表的示例数据:

    EmployeeIDEmployeeNameDepartmentID
    1John1
    2Mary2
    3David1
    4Lisa3
  2. Departments 表包含部门的信息,具有以下列:

    • DepartmentID: 部门ID
    • DepartmentName: 部门名称

    下面是 Departments 表的示例数据:

    DepartmentIDDepartmentName
    1Sales
    2Marketing
    3Finance
    4HR

现在,我们可以使用内连接和外连接来获取不同的结果:

  1. 内连接(Inner Join):
    内连接会返回同时存在于两个表中的匹配行。

    示例查询:

    SELECT Employees.EmployeeName, Departments.DepartmentName
    FROM Employees
    INNER JOIN Departments ON Employees.DepartmentID = Departments.DepartmentID;
    

    查询结果:

    EmployeeNameDepartmentName
    JohnSales
    MaryMarketing
    DavidSales
    LisaFinance

    上述结果显示了员工的姓名和他们所属的部门名称,仅包括存在于 Employees 表和 Departments 表中的匹配行。

  2. 左外连接(Left Outer Join):
    左外连接会返回所有的左表行,以及与左表匹配的右表行。如果右表中没有匹配的行,则使用 NULL 值填充右表的列。

    示例查询:

    SELECT Employees.EmployeeName, Departments.DepartmentName
    FROM Employees
    LEFT JOIN Departments ON Employees.DepartmentID = Departments.DepartmentID;
    

    查询结果:

    EmployeeNameDepartmentName
    JohnSales
    MaryMarketing
    DavidSales
    LisaFinance

    注意,左外连接的查询结果与内连接的结果相同。这是因为在这个示例中,所有的员工都有所属的部门,没有员工没有部门。

  3. 右外连接(Right Outer Join):
    右外连接会返回所有的右表行,以及与右表匹配的左表行。如果左表中没有匹配的行,则使用 NULL 值填充左表的列。

    示例查询:

    SELECT Employees.EmployeeName, Departments.DepartmentName
    FROM Employees
    RIGHT JOIN Departments ON Employees.DepartmentID = Departments.DepartmentID;
    

    查询结果:

    EmployeeNameDepartmentName
    JohnSales
    MaryMarketing
    DavidSales
    NULLHR

    上述结果显示了部门的名称以及与之匹配的员工姓名。注意到最后一行中的员工姓名为 NULL,这是因为 “HR” 部门在 Employees 表中没有匹配的员工。

8.主键和外键

  • 主键:主键是用于唯一标识表中每一行数据的列或列组合。它具有唯一性和非空性约束,用于确保每一行都有唯一的标识,并且不允许为空值。主键可以帮助在表中快速查找和识别特定的行。
  • 外键:外键是表中的一个列,它创建了与另一个表中的主键之间的关联。外键用于建立表之间的关系,它指向其他表中的主键,用于实现表之间的引用完整性。外键可以用于实现表之间的关联查询和数据一致性。

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

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

相关文章

2023上半年手机及数码行业分析报告(京东销售数据分析)

2023年上半年,手机市场迎来复苏,同环比来看,销量销额纷纷上涨。 而数码市场中,各个热门品类表现不一。微单相机及智能手表同比去年呈现增长态势,而笔记本电脑市场则出现下滑。 基于此现状,鲸参谋发布了20…

谈一谈Python中的装饰器

1、装饰器基础介绍 1.1 何为Python中的装饰器? Python中装饰器的定义以及用途: 装饰器是一种特殊的函数,它可以接受一个函数作为参数,并返回一个新的函数。装饰器可以用来修改或增强函数的行为,而不需要修改函数本身…

JVM深入 —— JVM的体系架构

前言 能否真正理解JVM的底层实现原理是进阶Java技术的必由之路,Java通过JVM虚拟机的设计使得Java的延拓性更好,平台无关性是其同时兼顾移动端和服务器端开发的重要特性。在本篇文章中,荔枝将会仔细梳理JVM的体系架构和理论知识,希…

flutter开发实战-RawKeyboardListener监听键盘事件及keycode。

flutter开发实战-RawKeyboardListener监听键盘事件及keycode。 最近开发过程中遇到外设备的按钮点击触发相应的操作,需要监听对应的keycode来开启游戏或者相关操作。 这里用到了RawKeyboardListener 一、RawKeyboardListener是什么? RawKeyboardListe…

Dubbo+Zookeeper使用

说明:Apache Dubbo 是一款 RPC 服务开发框架,用于解决微服务架构下的服务治理与通信问题,官方提供了 Java、Golang 等多语言 SDK 实现。 本文介绍Dubbo的简单使用及一些Dubbo功能特性,注册中心使用的是ZooKeeper,可在…

驱动工作原理

驱动原理 在Linux操作系统中,硬件驱动程序中实现对硬件直接操作,而用户空间,通过通用的系统调用接口(open() 打开相应的驱动设备,ioctl()控制相应的功能等),实现对硬件操作,应用程序没有直接操作…

ARM64 常见汇编指令学习 11 -- ARM 汇编宏 .macro 的学习

文章目录 ARM 汇编宏介绍ARM 汇编宏的使用 下篇文章:ARM64 常见汇编指令学习 12 – ARM 汇编函数 的学习 上篇文章:ARM64 常见汇编指令学习 10 – 无符号位域提取指令 BFXIL ARM 汇编宏介绍 在 ARM 汇编中,“.macro” 是用来定义一个宏的指…

【BASH】回顾与知识点梳理(八)

【BASH】回顾与知识点梳理 八 八. 正则表达式(正规表示法)8.1 什么是正规表示法8.2 基础正规表示法语系对正规表示法的影响grep 的一些进阶选项基础正规表示法练习例题一、搜寻特定字符串例题二、利用中括号 [] 来搜寻集合字符例题三、行首与行尾字符 ^ …

树的层次遍历

层次遍历简介 广度优先在面试里出现的频率非常高,整体属于简单题。而广度优先遍历又叫做层次遍历,基本过程如下: 层次遍历就是从根节点开始,先访问根节点下面一层全部元素,再访问之后的层次,类似金字塔一样…

【Uniapp 的APP热更新】

Uniapp 的APP热更新功能依赖于其打包工具 HBuilder,具体步骤如下: 1. 在 HBuilder 中构建并打包出应用程序 具体步骤: 1.点击发行,点击制作wgt包 2.根据需求修改文件储存路径和其他配置,点击确定 3.等待打包完成&a…

R -- Rscript传递参数

文章目录 getopt包optparse包argparse包 getopt包 getopt(spec NULL, opt NULL, command get_Rscript_filename(), usage FALSE, debug FALSE) spec: 内容由一个4-5列的matrix构成,matrix可以直接申明也可以如下申明 matrix(x,ncol4,byrowTRUE) 每一列的构成要…

Rust中的高吞吐量流处理

本篇文章主要介绍了Rust中流处理的概念、方法和优化。作者不仅介绍了流处理的基本概念以及Rust中常用的流处理库,还使用这些库实现了一个流处理程序。 最后,作者介绍了如何通过测量空闲和阻塞时间来优化流处理程序的性能,并将这些内容同步至…

Android 实现账号诊断动画效果,逐条检测对应的项目

Dialog中的项目 逐条检测效果&#xff1a; 依赖库&#xff1a; implementation com.github.li-xiaojun:XPopup:2.9.19 implementation com.blankj:utilcodex:1.31.1 implementation com.github.CymChad:BaseRecyclerViewAdapterHelper:3.0.101、item_account_check.xml <…

PictureBox基本使用

作用&#xff1a;展示图片&#xff0c;同时也具有click属性&#xff0c;可用充当按钮功能。 常用属性&#xff1a; 设置图片 设置图片的填充模式 常用事件&#xff1a; 后台代码示范&#xff1a;增加点击事件 private void pictureBox1_Click(object sender, EventArgs e){//…

【CodeWhisperer】亚马逊版代码生成工具

大家好&#xff0c;我是荷逸&#xff0c;今天给大家带来的是代码生成工具【CodeWhisperer】 CodeWhisperer简介 CodeWhisperer是亚⻢逊出品的一款基于机器学习的通用代码生成器&#xff0c;可实时提供代码建议。 在编写代码时&#xff0c;它会自动根据我们现有的代码和注释生…

Java中「Future」接口详解

一、背景 在系统中&#xff0c;异步执行任务&#xff0c;是很常见的功能逻辑&#xff0c;但是在不同的场景中&#xff0c;又存在很多细节差异&#xff1b; 有的任务只强调「执行过程」&#xff0c;并不需要追溯任务自身的「执行结果」&#xff0c;这里并不是指对系统和业务产…

JDK, JRE和JVM之间的区别和联系

JDK, JRE和JVM是与Java编程语言相关的三个重要的概念&#xff0c;它们分别代表Java Development Kit&#xff08;Java开发工具包&#xff09;、Java Runtime Environment&#xff08;Java运行时环境&#xff09;和Java虚拟机&#xff08;Java Virtual Machine&#xff09;。它们…

大数据课程G2——Hbase的基本架构

文章作者邮箱:yugongshiye@sina.cn 地址:广东惠州 ▲ 本章节目的 ⚪ 掌握Hbase的基本架构; ⚪ 掌握Hbase的读写流程; ⚪ 掌握Hbase的设计与优化; 一、基本架构 1. HRegion 1. 在HBase中,会将一个表从行键方向上进行切分,切分成1个或者多个HRegion。 …

C#利用自定义特性以及反射,来提大型项目的开发的效率

在大型项目的开发过程中&#xff0c;需要多人协同工作&#xff0c;来加速项目完成进度。 比如一个软件有100个form&#xff0c;分给100个人来写&#xff0c;每个人完成自己的Form.cs的编写之后&#xff0c;要在Mainform调用自己写的Form。 如果按照正常的Form form1 new For…

MIT 6.824 -- MapReduce -- 01

MIT 6.824 -- MapReduce -- 01 引言抽象和实现可扩展性可用性(容错性)一致性MapReduceMap函数和Reduce函数疑问 课程b站视频地址: MIT 6.824 Distributed Systems Spring 2020 分布式系统 推荐伴读读物: 极客时间 – 大数据经典论文解读DDIA – 数据密集型应用大数据相关论文…