失败的面试经历(ʘ̥∧ʘ̥)

一.面向对象的三大特性

1.封装:将对象内部的属性私有化,外部对象不能够直接访问,但是可以提供一些可以使外部对象操作内部属性的方法。

2.继承:类与类之间会有一些相似之处,但也会有一些异处,使得他们与众不同,继承就是在父类的基础上,创建一个与父类有相同之处,但是也可以声明自己独有的方法与属性的对象,这样做可以增加代码的复用,使得维护或扩展更加的方便,灵活。

3.多态:一个对象有多种状态,这涉及到了向上或向下转型。
多态的特点:

  • 对象类型和引用类型之间存在继承关系
  • 引用类型变量的方法属于哪个类,要想知道这个问题,要看运行期间
  • 多态不能执行子类拥有但父类没有的方法
  • 如果子类重写了父类的方法,那么直接执行的是子类重新后的方法,若没重写,则执行的是父类方法

二.如何创建线程

1.继承Thread类并重写run()方法

  • 定义Thread类的子类,并重写run()方法,run()方法中的代码就是线程所要执行的任务,所以run()方法被称为执行体(线程体)
  • 创建Thread类的子类的实例对象,就是创建了线程的对象
  • 调用线程对象的start()方法来启动该线程
  • Java不支持多继承
package thread;public class ThreadTest extends Thread{String name;ThreadTest(String name){this.name=name;}@Overridepublic void run() {System.out.println("this is a thread");}
}
class StartTest{public static void main(String[] args) {ThreadTest test=new ThreadTest("thread");test.start();}
}

2.实现Runnable接口配合Thread

  • 定义Runnable接口的实现类,并重写run()方法,run()方法中的代码就是线程所要执行的任务,所以run()方法被称为执行体(线程体)
  • 创建Runnable接口的实现类的对象,使此对象作为Thread的target来创建Thread对象,这个对象才是真正的线程对象
  • 调用线程对象的start()方法来启动线程
  • Runnable接口支持多继承
package thread;public class RunnableTest implements Runnable{String name;RunnableTest(String name){this.name=name;}@Overridepublic void run() {System.out.println("this is a thread");}
}
class RunnableStartTest{public static void main(String[] args) {RunnableTest test=new RunnableTest("thread");Thread thread=new Thread(test);thread.start();}
}

3.通过Callable和FutureTask创建线程

  • 创建Callable接口的实现类,并重写call()方法,call方法是线程的执行体
  • 创建Callable接口的实现类的实例,然后创建包装了Callable接口的实现类实例的FutureTask类的实例对象,FutureTask对象封装了实现类中的call()方法的返回值(FutureTask是一个包装器,它通过包装Callable接口的实现类来实现,它同时实现了Future和Runnable两个接口)
  • 使用FutureTask对象作为Thread的target来创建实例,此实例对象为线程的对象
  • 调用线程对象的start()方法来启动线程
  • 调用FutureTask对象的get()方法来获取子线程结束的返回值
package thread;import java.util.concurrent.Callable;
import java.util.concurrent.FutureTask;public class CallableAndFutureTaskTest implements Callable {String name;CallableAndFutureTaskTest(String name){this.name=name;}@Overridepublic Object call() throws Exception {System.out.println("this is a thread");return null;}
}
class CallableAndFutureTaskStartTest{public static void main(String[] args) throws Exception{CallableAndFutureTaskTest test=new CallableAndFutureTaskTest("thread");FutureTask futureTask=new FutureTask(test);Thread thread=new Thread(futureTask);thread.start();String result=(String) futureTask.get();System.out.println(result);}
}

三.事物的四大特性(ACID)

1.原子性:事物是最小的执行单位,确保了动作要么完全完成,要么就是完全不起作用
2.一致性:处理的数据是一致的,例如转账者和收款者的总金额是不变的
3.隔离性:发生并发访问数据库时,一个事物不会被另一个事物所影响
4.持久性:一个事务提交之后,他对数据库中数据的影响是持久的,即使出现了数据库障碍也不会影响。

四.Get()方法与Post()方法的区别

Get()方法和Post()方法是Http协议中两种常用的请求方法,但是在不同的场景和目的下的使用是不同的。

1.在语义上:Get()方法用于获取和查询资源,而Post()方法更加偏向于修改或创建。这就意味着Get请求拥有等幂性。而Post()方法可能会有副作用,即每次执行都可能产生不同的结果,影响资源的状态。

2.在结构上:Get()方法的请求的参数传递会显示到url上,形成查询字符串(querystring),而Post()方法的参数在执行体(body)中,Get请求的查询字符串长度会受到url的限制,而Post请求则不会有明确的限制。

3.在缓存上:由于Get请求是等幂的,所以对于Get请求来说,在浏览器中会有缓存来保存数据,这样可以提高Get()方法的获取或查询的效率;而Post请求可能会有副作用,所以并没有缓存机制。

4.在安全性上:本质上Get请求和Post请求都不是绝对安全的,因为Http协议都是明文传输,无论是url,header或者是body都有可能被窃取,所以应该使用Http协议加密传输数据。但是在一些应用场景下,Get方法要比Post方法更加不安全,因为Get方法的参数传递会在url上显示出来,在一些代理日志上或者浏览器的历史上可以被找到,所以在传输一些私密数据的时候应该使用Post方法进行传递。

五,数据库(MySQL)的左,右连接以及内连接

1.Left join...on:左连接,以左表为基础,查询左表的所有数据以及满足on关键字后面的条件的右表数据,左连接又称左外连接,是外连接的一种。
2.Right join...on:右连接,以右表为基础,查询右表的所有数据以及满足on关键字后面的条件的左表数据,右连接又称为右外连接,是外连接的一种。
3.Inner join...on:内连接,以左右两表为参考对象,查询左右两表同时满足on关键字后面的条件的数据。

MySQL中没有全外连接,所以就不解释了。

首先创建了两个表table_left和table_right.

---------------------------------------------------------------------------------------------------------------------------------

左连接:

SELECT * FROM table_left LEFT JOIN table_right ON table_left.id=table_right.id

结果:

右连接:

SELECT * FROM table_left RIGHT JOIN table_right ON table_left.id=table_right.id

结果:

内连接:

SELECT * FROM table_left INNER JOIN table_right ON table_left.id=table_right.id

结果:

---------------------------------------------------------------------------------------------------------------------------------总结一下,这就相当于一个集合A和B

A left B join:A
A right B join:B
A inner B join:A∩B

左连接:

右连接:

内连接:

全连接:

六.数据库分表查询中使用到的in关键字可以使用什么代替

一般在做SQL优化的时候讲究使用EXISTS带替代IN的做法,理由是EXISTS执行效率要比IN高。

2d1876ca1c7bc478809ec24afc81dfe7.png

个人理解:

IN表示范围,指某一字段在某一范围之内,这个范围一般使用子查询来获取,由此可知IN子查询返回的结果应该就是这个范围集。

EXISTS表示存在,指至少存在一处,这个条件由EXISTS子查询来完成,但是在这里EXISTS子查询返回的结果却不再是一个结果集,而是一个布尔值(true或false),其实这个挺好理解的,EXISTS就表示如果子查询能查到值则返回true,则执行EXISTS之前的语句。

具体MySQl的详细介绍请看:MySQL数据库的详细介绍

---------------------------------------------------------------------------------------------------------------------------------以上问题都是面试官真实问的面试题,回答的一坨,在事后查询资料加个人理解写的blog,有错误之处还请多包容。

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

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

相关文章

qt加载VeloView工程

接上一篇点云软件配置与编译,使用qt加载需要先完成编译。编译完成后到编译目录下lidarview-superbuild\common-superbuild\lidarview\build 找到CmakeCache.txt,如下是我的编译目录。 使用QT6.5.3加载了CmakeCache.txt,QT5.14还加载不了cmake…

Windows Qt动态监测系统分辨率及缩放比变化

前言 Windows 显示设置中,可以修改缩放比,所有界面和文字会同比例放大或缩小,在开发桌面程序时, 实时监测Qt应用程序在不同缩放比例下的表现,可以及时调整程序界面以适应不同显示屏幕的需求。 正文 本文通过Qt相关…

CVE-2017-5645(使用 docker 搭建)

介绍: 是一个与 Apache Log4j2 相关的安全漏洞,属于远程代码执行,它可能允许攻击者通过构造恶意的日志信息 在目标系统上执行任意代码 Log4j2 介绍 Log4j2 是 Apache 的一个日志记录工具,属于 Java 应用的日志框架,它是 Log4j 的升级版,性能更好,功能更多.它被广泛的适用于 J…

交互式可视化进阶(Plotly Dash构建疫情仪表盘)

这里写目录标题 交互式可视化进阶(Plotly Dash构建疫情仪表盘)1. 引言2. 项目背景与意义3. 数据集生成与介绍4. GPU加速在数据处理中的应用5. 交互式仪表盘构建与Plotly Dash6. PyQt GUI集成与美化7. 工程整体架构8. 部分代码实现9. 代码自查与BUG排查10. 总结与展望交互式可…

RabbitMQ(补档)

RabbitMQ 是一个开源的消息队列软件(有时也被称为消息代理),它实现了高级消息队列协议(AMQP)。它主要用于应用程序之间,或者软件组件之间的消息通信。通过使用 RabbitMQ,可以实现异步的、可靠的…

平方矩阵问题

Ⅰ 回字形二维数组 #include <iostream> #include <iomanip> using namespace std; int main(){int n;while(cin>>n,n){for(int i0; i<n;i){for(int j0; j<n; j){int upi, downn-i1, leftj, rightn-j1;cout<<min(min(up,down),min(left,right)…

电子电气架构 --- 智能座舱和车载基础软件简介

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 人生是一场骗局,最大的任务根本不是什么买车买房,也不是及时行乐,这就是欲望,不是理想,是把自己对生命的希望寄托在外物上,正确的做法应该是内…

Qt 通过MSVC编译运行项目

第一步下载Qt 把Qt能选的插件都选上&#xff0c;有的是连接数据库必须得插件&#xff0c;有的是做图表必须得插件&#xff0c;有的是运行MSVC必须得插件&#xff0c;能选尽量都选上。 第二步安装VS2017&#xff0c;当然我们安装2017的目的主要是用C的编译器&#xff0c;这里提…

高效手机检测:视觉分析技术的优势

在当今社会&#xff0c;手机已成为人们日常生活和工作中不可或缺的工具。然而&#xff0c;在某些特定场合&#xff0c;如考场、工作场所等&#xff0c;手机的使用却可能带来负面影响。因此&#xff0c;如何有效监测和防止在这些场合偷用手机的行为&#xff0c;成为了一个亟待解…

Gitee重新远程连接仓库(Linux)

Gitee重新远程连接仓库&#xff08;Linux&#xff09; 因为虚拟机重新安装了一回&#xff0c;所以需要重新和远程仓库连接&#xff0c;在网上找了很久没有找到相关操作&#xff0c;自己实操成功&#xff0c;记录下本博客&#xff0c;帮助有需要的人 确保新虚拟机安装Git 在新虚…

【论文笔记】FFA-Net: Feature Fusion Attention Network for Single Image Dehazing

文章目录 1. 研究背景2. FFA - Net网络结构3. 实验结果4. 研究贡献5. 重点详解1. 通道注意力&#xff08;Channel Attention, CA&#xff09;通道注意力的实现步骤&#xff1a; 2. 像素注意力&#xff08;Pixel Attention, PA&#xff09;像素注意力的实现步骤&#xff1a; 3. …

计算机视觉cv2入门之图像的读取,显示,与保存

在计算机视觉领域&#xff0c;Python的cv2库是一个不可或缺的工具&#xff0c;它提供了丰富的图像处理功能。作为OpenCV的Python接口&#xff0c;cv2使得图像处理的实现变得简单而高效。 示例图片 目录 opencv获取方式 图像基本知识 颜色空间 RGB HSV 图像格式 BMP格式 …

深度学习中的向量的样子-DCN

深度学习中向量都是 竖着的&#xff0c;譬如 DCN中的计算逻辑

OBS推WebRTC流,并添加毫秒级时间显示

作者在用OBS推WebRTC流&#xff0c;并用浏览器观看推送的实时流。另外就是想看一下延迟有多少。采用一台电脑&#xff0c;流媒体服务器为SRS&#xff0c;相关配置比较简单&#xff0c;可以自行搜索。 推送的流 http://localhost:1985/rtc/v1/whip/?applive&streamlivestr…

【MySQL】多表操作 —— 外键约束

目录 多表关系一对一关系一对多/多对一关系多对多关系 外键约束基本概念一对多/多对一创建外键约束外键约束下的数据操作数据插入数据删除 删除外键约束 多对多创建外键约束外键约束下的数据操作数据插入数据删除 删除外键约束 多表关系 MySQL 多表之间的关系可以概括为&#…

82.HarmonyOS NEXT 性能优化指南:从理论到实践

温馨提示&#xff1a;本篇博客的详细代码已发布到 git : https://gitcode.com/nutpi/HarmonyosNext 可以下载运行哦&#xff01; HarmonyOS NEXT 性能优化指南&#xff1a;从理论到实践 文章目录 HarmonyOS NEXT 性能优化指南&#xff1a;从理论到实践1. 性能优化概述1.1 性能指…

树莓派急速安装ubuntu;映射磁盘与储存磁盘文件;ubuntu映射整个工程;保存系统工作状态

一、用途 在使用树莓派上下载ubuntu时&#xff0c;需要一张sd卡&#xff0c;当你需要给这张卡做备份的时候&#xff0c;可以是使用磁盘映射软件&#xff0c;从而达到备份的目的 同时有一些大佬发布了ubuntu的映射文件&#xff0c;可以直接使用该文件&#xff0c;然后还原他的整…

Qt 控件概述 QPushButton 与 QRadioButton

目录 QPushButton setIcon 设置图标 setShortCut 设置快捷键 setAutoRepeat : 设置是否连发 ​编辑RadioButton 槽函数 单选按钮的分组排异 QPushButton QPushButtoon继承于QAbstractButton(抽象类)&#xff1b; QAbstract中与QPushButton关联性极大的属性 ​ setIcon…

HR9110 玩具单通道直流电机驱动器

1、描述 HR9110是应用于直流电机方案的单通道H桥驱动器芯片。HR9110的H桥驱动部分采用低导通电阻的PMOS和NMOS功率管。低导通电阻保证芯片低的功率损耗&#xff0c;使得芯片安全工作更长时间。此 外HR9110拥有低待机电流、低静态工作电流。这些性能使能HR9110易用于玩具方案。…