IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 【面试】HS一面总结 -> 正文阅读

[Java知识库]【面试】HS一面总结

【面试】HS一面总结

在这之前先聊聊笔试:

笔试属于比较简单的题目,考的东西也很基础:封装继承多态、简单的程序执行结果、类初始化、Linux命令、数据库CRUD、字符串替换空格、二维数组查找

笔试时间是21.9.9晚上,第二天下午14点收到的面试邀请,11号晚上安排的面试

一、自我介绍

二、问了下Java基础知识:什么时候使用抽象类?没答出来,面试官问:使用接口不是也一样的吗?

正确答案:

把编程映射会日常生活进行对照:那么一个东西,抽象类表示它是什么,接口表示它能做什么。

简单来说,就是对象的属性特征可以用抽象类;而动作可以当成是接口。比如一个Person对象,他有的属性包括:眼睛、嘴巴、四肢等,可以用抽象类来封装,因为这些属性放在别的Person上也会存在;他的行为包括打篮球、游泳等,这些行为并不是所有的Person都应该具有的,所以一般不用抽象类来实现。

  • 抽象类适合用来定义某个领域的固有属性,也就是本质,接口适合用来定义某个领域的扩展功能。
  • 当需要为一些类提供公共的实现代码时,应优先考虑抽象类。因为抽象类中的非抽象方法可以被子类继承下来,使实现功能的代码更简单。
  • 当注重代码的扩展性跟可维护性时,应当优先采用接口。
    • ①接口与实现它的类之间可以不存在任何层次关系,接口可以实现毫不相关类的相同行为,比抽象类的使用更加方便灵活
    • ②接口只关心对象之间的交互的方法,而不关心对象所对应的具体类。接口是程序之间的一个协议,比抽象类的使用更安全、清晰。一般使用接口的情况更多。

三、问了从输入网址到网站加载之中,发生了什么?

  • DNS解析
    • DNS解析的过程就是寻找哪台机器上有需要的资源的过程。寻找过程:①寻找浏览器缓存中是否存在对应域名的IP地址;②寻找本机系统缓存中是否存在域名对应的IP;③向本地域名解析服务器发起域名解析请求;④本地域名解析服务器向根域名解析服务器发起域名解析请求,返回请求的顶级域名地址(gTLD);⑤本地域名解析服务器向gTLD域名解析服务器发起请求,找到对应的域名服务器;⑥ Name Server服务器返回IP地址给本地服务器;⑦本地域名服务器缓存解析结果;⑧返回结果给主机
  • TCP连接
    • 建立TCP连接,三次握手
  • 发送HTTP请求
    • 发送HTTP请求的过程就是构建HTTP请求报文
  • 服务器处理请求并返回返回HTTP报文
    • 简单来说就是后端传来服务器请求的数据
  • 浏览器解析渲染页面
    • Webkit渲染页面并显示,构建DOM树
  • 连接结束
    • 四次挥手

四、group by使用过没有?什么情况下使用?

GROUP BY语法可以根据给定数据列的每个成员对查询结果进行分组统计,最终得到一个分组汇总表。例如查询一张员工表中每个部门中最高的工资:

select dept, max(salary) as maximum
from staff
group by depf;

五、如果一张数据表中ABC三个字段为主键,那么将如何建立索引?

具体问题忘记了,先说说怎么建立索引:

create index indexName on table(column);

主键,是一种特殊的唯一索引,在一张表中只能定义一个主键索引,主键用于唯一标识一条记录,使用关键字PRIMARY KEY 来创建。也就是默认建立表格之后,会产生一个主键索引。

索引可以建立在多个数据列上,这种索引属于联合索引,比如CREATE INDEX INDEXNAME ON TABLE(COLUMN A, COLUMN B)

索引可以极大的提高数据的查询(select)速度,但是会降低插入、删除、更新的速度,因为在执行这些写操作时,还要操作索引文件。

六、Spring MVC执行过程?

image-20210911214330685

七、会哪些排序算法?(至少应该掌握基础的快排)

冒泡排序:

private static void bubbleSort(int[] arr) {
    for (int i = 0; i < arr.length - 1; i++) {
        for (int j = 0; j < arr.length - i - 1; j++) {
            if (arr[j + 1] < arr[j]) {
                int temp = arr[j + 1];
                arr[j + 1] = arr[j];
                arr[j] = temp;
            }
        }
    }
}

选择排序:

private static void choiceSort(int[] arr) {
    for (int i = 0; i < arr.length - 1; i++) {
        int temp = arr[i];
        for (int j = i + 1; j <= arr.length - 1; j++) {
            if (arr[j] < temp) {
                int swapTemp = arr[j];
                arr[j] = arr[i];
                arr[i] = swapTemp;
            }
        }
    }
}

快速排序:

private static void quickSort(int[] array, int left, int right) {
    if(left < right) {
        int pivot = array[left];
        int low = left, high = right;
        while(low < high) {
            while(array[high] >= pivot && low < high)
                high--;
            // 找到右边第一个小于pivot的值
            array[low] = array[high];
            while(array[low] <= pivot && low < high)
                low++;
            // 找到左边第一个大于pivot的值
            array[high] = array[low];
        }
        array[low] = pivot;
        quickSort(array, left, low - 1);
        quickSort(array, low + 1, right);
    }
}

八、用过Linux没有?会哪些?

回答只用过Cent OS虚拟机来学分布式,安装docker之类的…

九、总结

面试官给人感觉很舒服,但我实在是太菜了,面试官都没有问题要问了(因为问了也是基本都不知道),我全程“对不起,我不知道(不记得了)”回答,面试官最后拿出了”优缺点“、“意向城市”来问我水面试时间……

劝退的是准备的基础面经反射容器一概没考,虽然不够八股却全是些我平时没注意的,准备的方向错了,实力不够。其余的问题印象不深刻,记不清楚就不贴上来了…

最后神奇的是,还有个笔试链接:

image-20210911234011165

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-09-12 13:02:20  更:2021-09-12 13:03:42 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 17:04:13-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码