应届生一些面试遇到的基础问题(回答描述可能不够专业)
全部内容都是最最最基础的回答,回答得不深,单纯就是面试官抛出一个问题后,能回答上的程度,不至于无话可说,如果要回答得更出彩,还是要去深入学习的!!!
1. Linux的基本操作
ls
显示文件或目录信息mkdir
当前目录下创建一个空目录rmdir
要求目录为空touch
生成一个空文件或更改文件的时间cp
复制文件或目录mv
移动文件或目录、文件或目录改名rm
删除文件或目录ln
建立链接文件find
查找文件file/stat
查看文件类型或文件属性信息cat
查看文本文件内容
2.数据库的增删改查操作,索引,事务,排序
-
增删改查
科普:CRUD:增加(Create)\检索(Retrieve)\更新(Update)\删除(Delete)
-
增(INSERT):插入数据
INSERT INTO 表名 VALUES (value1,value2,....); INSERT INTO departments VALUES (70, 'Pub', 100, 1700);
-
删(DELETE):
DELETE FROM table_name [WHERE <condition>]; DELETE FROM departments WHERE department_name = 'Finance';
-
改(Update):更新数据
UPDATE table_name SET column1=value1, column2=value2, … , column=valuen [WHERE condition] UPDATE employees SET department_id = 70 WHERE employee_id = 113;
-
查(SELECT)
-
拓展一下: SQL语句的执行过程
-
-
索引
- 索引其实是一种数据结构,能够帮助我们快速的检索数据库中的数据
- 常见的MySQL主要有两种结构:Hash索引和B+ Tree索引,我们使用的是InnoDB引擎,默认的是B+树
-
事务
- 事务是指是程序中一系列严密的逻辑操作,而且所有操作必须全部成功完成,否则在每个操作中所作的所有更改都会被撤消
- 可以举一个例子:转账的操作是一个事务,因为钱要从自己账户转出,别人账户加钱,这是一个整体的过程(描述可能不够准确,这是我自己的大白话)
- 再随便提一提
commit
\rollback
(提交与回滚)
-
排序
- ORDER BY
3.你说一下二叉树(因为我简历上写了二叉树就被问了)
- 二叉树作为树的一种,是一种重要的数据结构
- 二叉树的前序、中序后序遍历
4.你说一下线程和进程
- 进程:具有一定独立功能的程序关于某个数据集合上的一次运行活动,是操作系统进行资源分配和调度的一个独立单位。
- 线程:是进程的一个实体,是 cpu 调度和分派的基本单位,是比进程更小的可以独立运行的基本单位。
- 特点:线程的划分尺度小于进程,这使多线程程序拥有高并发性,进程在运行时各自内存单元相互独立,线程之间 内存共享,这使多线程编程可以拥有更好的性能和用户体验。
5.UDP与TCP的区别
来源于牛客
答:TCP提供面向连接的、可靠的数据流传输,而UDP提供的是非面向连接的、不可靠的数据流传输。
TCP传输单位称为TCP报文段,UDP传输单位称为用户数据报。
TCP注重数据安全性,UDP数据传输快,因为不需要连接等待,少了许多操作,但是其安全性却一般。
TCP对应的协议和UDP对应的协议
TCP对应的协议:
(1) FTP:定义了文件传输协议,使用21端口。
(2) Telnet:一种用于远程登陆的端口,使用23端口,用户可以以自己的身份远程连接到计算机上,可提供基于DOS模式下的通信服务。
(3) SMTP:邮件传送协议,用于发送邮件。服务器开放的是25号端口。
(4) POP3:它是和SMTP对应,POP3用于接收邮件。POP3协议所用的是110端口。
(5)HTTP:是从Web服务器传输超文本到本地浏览器的传送协议。
UDP对应的协议:
(1) DNS:用于域名解析服务,将域名地址转换为IP地址。DNS用的是53号端口。
(2) SNMP:简单网络管理协议,使用161号端口,是用来管理网络设备的。由于网络设备很多,无连接的服务就体现出其优势。
(3) TFTP(Trivial File Transfer Protocal),简单文件传输协议,该协议在熟知端口69上使用UDP服务。
6.除了MySQL外还了解哪些数据库?
- SQLite
- SQLite 是一个C语言库,它可以提供一种轻量级的基于磁盘的数据库,这种数据库不需要独立的服务器进程,也允许需要使用一种非标准的SQL 查询语言来访问它。 一些应用程序可以使用SQLite 作为内部数据存储。 可以用它来创建一个应用程序原型,然后再迁移到更大的数据库,比如PostgreSQL 或Oracle。
7.了解过MongoDB吗
- MongoDB 是一款流行的开源文档型数据库
- Mongo-DB是一个文档数据库,可提供高性能,高可用性和易扩展性。