面试问题知识

文章目录

  • 1. Linux 和 CentOS
    • 基础指令:
    • VMware 和 CentOS:
    • 扩充问题:
  • 2. 前端开发(JS、CSS)
    • JavaScript:
    • CSS:
    • 扩充问题:
  • 3. 数据库(MySQL)
    • 基础语法:
    • 事务和锁:
    • 扩充问题:
  • 4. 算法与数据结构
    • 排序算法:
    • 数据结构:
    • 扩充问题:
  • 5. Java 和面向对象编程
    • Java 基础:
    • 面向对象:
    • 扩充问题:
  • 6. 设计模式和设计原则
    • 设计模式:
    • 设计原则:
    • 扩充问题:
  • 7. Maven 和 Git
    • Maven:
    • Git:
    • 扩充问题:
  • 8. 微信小程序和云开发
    • 小程序开发:
    • 云开发:
    • 扩充问题:
  • 总结

以下是针对上述问题的详细解答,并扩充了一些相关的面试问题,帮助你更全面地准备面试。


面试自用 日期:2025-2-1

1. Linux 和 CentOS

基础指令:

  • 查看当前目录下的所有文件(包括隐藏文件)
    ls -a
    
  • 查找一个文件并删除它
    find /path/to/dir -name "filename" -exec rm {} \;
    
  • 查看系统的 CPU 和内存使用情况
    top
    
  • 修改文件的权限
    chmod 755 filename
    
    • 755 表示:所有者有读、写、执行权限(7),组用户和其他用户有读和执行权限(5)。

VMware 和 CentOS:

  • 安装 CentOS 的步骤
    1. 在 VMware 中创建一个新的虚拟机。
    2. 选择 CentOS 的 ISO 文件作为安装介质。
    3. 配置虚拟机的硬件(内存、硬盘等)。
    4. 启动虚拟机并按照安装向导完成 CentOS 的安装。
  • 配置 CentOS 的网络连接
    • 编辑网络配置文件:
      vi /etc/sysconfig/network-scripts/ifcfg-eth0
      
    • 设置 ONBOOT=yesBOOTPROTO=dhcp,然后重启网络服务:
      systemctl restart network
      
  • 安装软件包
    yum install package_name
    

扩充问题:

  • 如何查看 Linux 系统的版本?
    cat /etc/redhat-release
    
  • 如何查看当前系统的进程?
    ps aux
    

2. 前端开发(JS、CSS)

JavaScript:

  • 闭包
    • 闭包是指函数可以访问其词法作用域中的变量,即使函数在其词法作用域之外执行。
    • 示例:
      function outer() {
          let x = 10;
          return function inner() {
              console.log(x);
          };
      }
      const closure = outer();
      closure(); // 输出 10
      
  • AJAX 请求
    const xhr = new XMLHttpRequest();
    xhr.open("GET", "https://api.example.com/data", true);
    xhr.onload = function() {
        if (xhr.status === 200) {
            console.log(xhr.responseText);
        }
    };
    xhr.send();
    
  • 事件冒泡和事件捕获
    • 事件冒泡:事件从目标元素向上传播到根元素。
    • 事件捕获:事件从根元素向下传播到目标元素。
  • Promise
    const promise = new Promise((resolve, reject) => {
        setTimeout(() => resolve("成功"), 1000);
    });
    promise.then(result => console.log(result));
    

CSS:

  • 垂直居中
    .container {
        display: flex;
        justify-content: center;
        align-items: center;
    }
    
  • Flexbox 和 Grid
    • Flexbox 适用于一维布局(行或列)。
    • Grid 适用于二维布局(行和列)。
  • 响应式设计
    @media (max-width: 768px) {
        .container {
            flex-direction: column;
        }
    }
    

扩充问题:

  • 如何实现一个模态框(Modal)?
  • 如何优化 CSS 性能?
    • 减少嵌套层级,避免使用通配符选择器,使用 transformopacity 进行动画优化。

3. 数据库(MySQL)

基础语法:

  • 创建带外键的表
    CREATE TABLE orders (
        order_id INT PRIMARY KEY,
        user_id INT,
        FOREIGN KEY (user_id) REFERENCES users(user_id)
    );
    
  • 内连接查询
    SELECT * FROM users INNER JOIN orders ON users.user_id = orders.user_id;
    
  • 优化慢查询
    • 使用索引,避免全表扫描。
    • 优化 SQL 语句,减少子查询。

事务和锁:

  • ACID 特性
    • 原子性(Atomicity):事务要么全部完成,要么全部不完成。
    • 一致性(Consistency):事务前后数据库的状态保持一致。
    • 隔离性(Isolation):事务之间相互隔离。
    • 持久性(Durability):事务完成后,数据永久保存。
  • 隔离级别
    • MySQL 默认隔离级别是 可重复读(Repeatable Read)
  • 死锁
    • 死锁是指两个或多个事务相互等待对方释放资源。
    • 避免方法:合理设计事务顺序,设置超时机制。

扩充问题:

  • 如何查看 MySQL 的执行计划?
    EXPLAIN SELECT * FROM users;
    
  • 什么是覆盖索引?它有什么优点?
    • 覆盖索引是指查询的所有字段都在索引中,无需回表查询。

4. 算法与数据结构

排序算法:

  • 快速排序
    • 时间复杂度:平均 O(n log n),最坏 O(n²)。
    • 实现原理:选择一个基准元素,将数组分为两部分,递归排序。
  • 二分查找
    • 前提条件:数组必须有序。
    • 时间复杂度:O(log n)。

数据结构:

  • 数组和链表
    • 数组:内存连续,支持随机访问,插入删除效率低。
    • 链表:内存不连续,插入删除效率高,访问效率低。
  • 栈和队列
    • 栈:后进先出(LIFO)。
    • 队列:先进先出(FIFO)。

扩充问题:

  • 如何判断一个链表是否有环?
    • 使用快慢指针(Floyd 判圈算法)。
  • 如何实现一个 LRU 缓存?
    • 使用哈希表 + 双向链表。

5. Java 和面向对象编程

Java 基础:

  • final 关键字
    • 修饰类:类不能被继承。
    • 修饰方法:方法不能被重写。
    • 修饰变量:变量不能被重新赋值。
  • 垃圾回收机制
    • Java 通过垃圾回收器自动回收不再使用的对象。
  • StringStringBuilderStringBuffer
    • String 是不可变的,StringBuilderStringBuffer 是可变的。
    • StringBuffer 是线程安全的,StringBuilder 不是。

面向对象:

  • 多态
    • 通过继承和接口实现,同一个方法在不同类中有不同的实现。
  • 抽象类和接口
    • 抽象类可以有方法实现,接口只能有方法声明。
  • 单例模式
    public class Singleton {
        private static Singleton instance;
        private Singleton() {}
        public static Singleton getInstance() {
            if (instance == null) {
                instance = new Singleton();
            }
            return instance;
        }
    }
    

扩充问题:

  • 什么是反射?如何使用反射?
  • 什么是泛型?它的作用是什么?

6. 设计模式和设计原则

设计模式:

  • 工厂模式
    • 定义一个创建对象的接口,由子类决定实例化哪个类。
  • 策略模式
    • 定义一系列算法,并将它们封装起来,使它们可以互换。

设计原则:

  • 单一职责原则
    • 一个类应该只有一个引起它变化的原因。
  • 开闭原则
    • 软件实体应该对扩展开放,对修改关闭。

扩充问题:

  • 什么是观察者模式?它的应用场景是什么?
  • 什么是依赖注入?它如何提高代码的可测试性?

7. Maven 和 Git

Maven:

  • 生命周期
    • 清理(clean)、编译(compile)、测试(test)、打包(package)、安装(install)、部署(deploy)。
  • 依赖冲突
    • 使用 mvn dependency:tree 查看依赖树,排除冲突的依赖。

Git:

  • 创建分支并推送
    git checkout -b new_branch
    git push origin new_branch
    
  • 解决合并冲突
    • 手动编辑冲突文件,然后 git addgit commit

扩充问题:

  • 什么是 Git 的 rebase 和 merge?它们的区别是什么?
  • 如何撤销上一次的提交?
    git reset --soft HEAD~1
    

8. 微信小程序和云开发

小程序开发:

  • 页面生命周期
    • onLoadonShowonReadyonHideonUnload
  • 页面跳转
    wx.navigateTo({ url: '/pages/targetPage' });
    

云开发:

  • 云函数
    • 云函数是在云端运行的代码,可以通过 API 调用。
  • 云数据库
    • 使用 wx.cloud.database() 访问云数据库。

扩充问题:

  • 如何实现小程序的用户登录?
  • 云开发和传统服务器开发的区别是什么?

总结

通过这些问题和答案,你可以更全面地准备面试。建议你结合实际项目经验,深入理解每个问题的背景和应用场景,并在面试中展示你的技术能力和解决问题的能力。祝你面试顺利!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

7. 马科维茨资产组合模型+金融研报AI长文本智能体(Qwen-Long)增强方案(理论+Python实战)

目录 0. 承前1. 深度金融研报准备2. 核心AI函数代码讲解2.1 函数概述2.2 输入参数2.3 主要流程2.4 异常处理2.5 清理工作2.7 get_ai_weights函数汇总 3. 汇总代码4. 反思4.1 不足之处4.2 提升思路 5. 启后 0. 承前 本篇博文是对前两篇文章,链接: 5. 马科维茨资产组…

Linux网络 HTTP cookie 与 session

Cookie 定义与功能:Cookie是服务器发送到用户浏览器并保存在本地的一小块数据,它会在浏览器下次向同一服务器再发起请求时被携带并发送到服务器上。通常,它用于告知服务端两个请求是否来自同一浏览器,如保持用户的登录状态、记录…

BW AO/工作簿权限配置

场景: 按事业部配置工作簿权限; 1、创建用户 事务码:SU01,用户主数据的维护,可以创建、修改、删除、锁定、解锁、修改密码等 用户设置详情页 2、创建权限角色 用户的权限菜单是通过权限角色分配来实现的 2.1、自定…

Python之Excel操作 - 写入数据

我们将使用 openpyxl 库,它是一个功能强大且易于使用的库,专门用于处理 Excel 文件。 1. 安装 openpyxl 首先,你需要安装 openpyxl 库。你可以使用 pip 命令进行安装: pip install openpyxl创建一个文件 example.xlsx&#xff…

【后端开发】字节跳动青训营之性能分析工具pprof

性能分析工具pprof 一、测试程序介绍二、pprof工具安装与使用2.1 pprof工具安装2.2 pprof工具使用 资料链接: 项目代码链接实验指南pprof使用指南 一、测试程序介绍 package mainimport ("log""net/http"_ "net/http/pprof" // 自…

2025开源DouyinLiveRecorder全平台直播间录制工具整合包,多直播同时录制、教学直播录制、教学视频推送、简单易用不占内存

一、DouyinLiveRecorder软件介绍(文末提供下载) 官方地址:GitHub - ihmily/DouyinLiveRecorder 本文信息来源于作者GitHub地址 一款简易的可循环值守的直播录制工具,基于FFmpeg实现多平台直播源录制,支持自定义配置录制…

大数据学习之SCALA分布式语言三

7.集合类 111.可变set一 112.可变set二 113.不可变MAP集合一 114.不可变MAP集合二 115.不可变MAP集合三 116.可变map一 package com . itbaizhan . chapter07 //TODO 2. 使用 mutable.Map 前导入如下包 import scala . collection . mutable // 可变 Map 集合 object Ma…

RAG是否被取代(缓存增强生成-CAG)吗?

引言: 本文深入研究一种名为缓存增强生成(CAG)的新技术如何工作并减少/消除检索增强生成(RAG)弱点和瓶颈。 LLMs 可以根据输入给他的信息给出对应的输出,但是这样的工作方式很快就不能满足应用的需要: 因…

使用 Tauri 2 + Next.js 开发跨平台桌面应用实践:Singbox GUI 实践

Singbox GUI 实践 最近用 Tauri Next.js 做了个项目 - Singbox GUI,是个给 sing-box 用的图形界面工具。支持 Windows、Linux 和 macOS。作为第一次接触这两个框架的新手,感觉收获还蛮多的,今天来分享下开发过程中的一些经验~ 为啥要做这个…

三甲医院大型生信服务器多配置方案剖析与应用(2024版)

一、引言 1.1 研究背景与意义 在当今数智化时代,生物信息学作为一门融合生物学、计算机科学和信息技术的交叉学科,在三甲医院的科研和临床应用中占据着举足轻重的地位。随着高通量测序技术、医学影像技术等的飞速发展,生物医学数据呈爆发式…

2025_2_1 C语言中关于字符串

1.字符串 C语言中的字符串都是字符数组,以空字符 ‘\0’结尾。 创建一个字符数组必须以空字符结尾,不然会访问非法区域,直到找到\0为止 char c[] {a, b, c, \0};长度为n的字符串字面值,会存储在虚拟内存中的只读数据段中&#…

Redis篇 Redis如何清理过期的key以及对应的解决方法

Redis设置Key过期时间 在 Redis 中,可以通过特定的命令为 Key 设置过期时间,使得 Key 在一定时间后自动删除,这对于管理缓存、验证码等临时数据非常有用。 解决方法 1. Redis过期删除策略 1.1 如何实现过期策略 对一个 key 设置了过期时间…

java练习(1)

两数之和(题目来自力扣) 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案,并且你不能使用两次相…

Python3 OS模块中的文件/目录方法说明十四

一. 简介 前面文章简单学习了 Python3 中 OS模块中的文件/目录的部分函数。 本文继续来学习 OS 模块中文件、目录的操作方法:os.statvfs() 方法,os.symlink() 方法。 二. Python3 OS模块中的文件/目录方法 1. os.statvfs() 方法 os.statvfs() 方法用…

从理论到实践:Linux 进程替换与 exec 系列函数

个人主页:chian-ocean 文章专栏-Linux 前言: 在Linux中,进程替换(Process Substitution)是一个非常强大的特性,它允许将一个进程的输出直接当作一个文件来处理。这种技术通常用于Shell脚本和命令行操作中…

ZZNUOJ(C/C++)基础练习1041——1050(详解版)

1041 : 数列求和2 题目描述 输入一个整数n&#xff0c;输出数列1-1/31/5-……前n项的和。 输入 输入只有一个整数n。 输出 结果保留2为小数,单独占一行。 样例输入 3 样例输出 0.87注意sum 1相当于sumsum1 注意sum * 1相当于sumsum*1 C语言版 #include<stdio.h> // 包含…

2021 年 6 月大学英语四级考试真题(第 2 套)——纯享题目版

&#x1f3e0;个人主页&#xff1a;fo安方的博客✨ &#x1f482;个人简历&#xff1a;大家好&#xff0c;我是fo安方&#xff0c;目前中南大学MBA在读&#xff0c;也考取过HCIE Cloud Computing、CCIE Security、PMP、CISP、RHCE、CCNP RS、PEST 3等证书。&#x1f433; &…

【Block总结】CPCA,通道优先卷积注意力|即插即用

论文信息 标题: Channel Prior Convolutional Attention for Medical Image Segmentation 论文链接: arxiv.org 代码链接: GitHub 创新点 本文提出了一种新的通道优先卷积注意力&#xff08;CPCA&#xff09;机制&#xff0c;旨在解决医学图像分割中存在的低对比度和显著…

grpc 和 http 的区别---二进制vsJSON编码

gRPC 和 HTTP 是两种广泛使用的通信协议&#xff0c;各自适用于不同的场景。以下是它们的详细对比与优势分析&#xff1a; 一、核心特性对比 特性gRPCHTTP协议基础基于 HTTP/2基于 HTTP/1.1 或 HTTP/2数据格式默认使用 Protobuf&#xff08;二进制&#xff09;通常使用 JSON/…

Qt常用控件 输入类控件

文章目录 1.QLineEdit1.1 常用属性1.2 常用信号1.3 例子1&#xff0c;录入用户信息1.4 例子2&#xff0c;正则验证手机号1.5 例子3&#xff0c;验证输入的密码1.6 例子4&#xff0c;显示密码 2. QTextEdit2.1 常用属性2.2 常用信号2.3 例子1&#xff0c;获取输入框的内容2.4 例…