2022换工作面经--开课吧

一、面试题目

1、Linux内核

2、当前服务是81端口,服务起不来,此时会是什么原因

3、vue的生命周期函数

4、python如何把两个字典合并成一个

5、sql中的子句都有哪些

6、sql左连接和右连接的区别

7、Linux打印出来的日志,如何找出前5行

二、面试题目解析

1、Linux内核

此处省略**行

2、当前服务是81端口,服务起不来,此时会是什么原因

一般用到的是1~65535

其中0不使用,1-1023为系统端口,也叫BSD保留端口

0-1023: BSD保留端口,也叫系统端口,这些端口只有系统特许的进程才能使用;

1024~65535为用户端口,又分为:BSD临时端口(1024-5000)和BSD服务器(非特权)端口(5001-65535)。其中:

1024-5000: BSD临时端口,一般的应用程序使用1024到4999来进行通讯;

5001-65535:BSD服务器(非特权)端口,用来给用户自定义端口

3、vue的生命周期函数

(1)Vue实例的生命周期

1)什么是生命周期:从Vue实例创建、运行、到销毁期间,总是伴随着各种各样的事件,这些事件,统称为生命周期。

2)生命周期钩子:就是生命周期事件的别名

3)生命周期钩子 = 生命周期函数 = 生命周期事件

4)主要的生命周期函数分类:

        创建期间的生命周期函数:
                beforeCreate:实例初始化后调用,此时实例刚在内存中创建出来,data和methods还没初始化好。
                created:在实例创建完成后被立即同步调用,实例已在内存中创建好,data和methods已初始化好,此时还没开始编译模板。
                beforeMount:在挂载开始之前被调用,已完成模板编译,还没挂载到页面上。
                mounted:实例被挂载后调用,已将编译好的模板挂载到页面指定的容器中显示。
        运行期间的生命周期函数:
                beforeUpdate:状态更新前调用,此时data中的值是最新的,但界面上数据还是旧的,还没开始重新渲染DOM节点。
                updated:实例更新完调用,此时data中的值和界面显示的数据都已更新完成,界面已被重新渲染完成。
        销毁期间的生命周期函数:
                beforeDestroy:实例销毁之前调用。在这一步,实例仍然完全可用。
                destroyed:实例销毁后调用。该钩子被调用后,对应 Vue 实例的所有指令都被解绑,所有的事件监听器被移除,所有的子实例也都被销毁。

2、Vue生命周期图


下面解释一一对应图中的数字

(1)var vm = new Vue({}) 表示开始创建一个Vue的实例对象

(2)刚初始化一个空的Vue实例对象,此时,在这个对象上,只有一些默认的生命周期函数和默认的事件,其他的都未创建

(3)beforeCreate生命周期函数执行时,data和methods中的数据和方法都还没有初始化

(4)初始化data和methods

(5)在created中,data和methods都已经初始化好了,如果要操作data中的数据或是调用methods中的方法,最早只能在created中操作

(6)这个绿框中内容表示Vue开始编辑模板,把Vue代码中的那些指令进行执行,最终,在内存中生成一个编译好的最终的模板字符串对象,然后把这个字符串对象,渲染为内存中的DOM,此时,只是在内存中渲染好了模板,并没有把模板挂载到真正的页面中去

(7)beforeMount函数执行时,模板已经在内存中编译好了,但尚未挂载到页面中去,此时,页面还是旧的

(8)将内存中编译好的模板,真实的替换到浏览器的页面中区

(9)mounted是在页面加载完成后执行的函数,如果要通过某些插件操作页面上的DOM节点,最早是在mounted中进行

(10)只要执行完了mounted,就表示整个Vue实例对象已经初始化完毕了,此时组件已经脱离创建阶段,进入运行阶段。

(11)蓝框中是组件的运行阶段,运行阶段的生命周期函数只有两个:beforeUpdate和updated,这两个事件会根据data数据的改变,有选择的触发0次到多次

(12)当执行beforeUpdate时,页面中显示的数据还是旧的,此时data中的数据是最新的,页面尚未和最新数据同步

(13)这一步,先根据data中最新的数据,在内存中,重新渲染出一份最新的内存DOM树,当内存DOM树被更新之后,会把最新的的内存DOM树,重新渲染到真实的页面当中,这时,就完成数据从data(Model层)->view(视图层)的更新

(14)updated执行时,页面和data数据已经保持同步,都是最新的

(15)当执行beforeDestroy钩子函数时,Vue实例就已经从运行阶段进入销毁阶段,此时,组建中所有data、methods、以及过滤器,指令等,都处于可用状态,此时还未真正执行销毁过程

(16)当执行destroyed函数时,组件已经被完全销毁,此时组建中所有data、methods、以及过滤器,指令等,都已经不可用了

4、python如何把两个字典合并成一个

# 方法1
def Merge(dict1, dict2): 
    return(dict2.update(dict1)) 
#方法2
def Merge(dict1, dict2): 
    res = {**dict1, **dict2} 
    return res 

5、sql中的子句

(1)sql语句

# 增(插入语句)
INSERT INTO table_name
VALUES (value1,value2,value3,...);

INSERT INTO table_name (column1,column2,column3,...) VALUES (value1,value2,value3,...);

# 删
# 1、删除某条数据
DELETE FROM table_name WHERE some_column=some_value;

# 2、删除表数据+表结构
drop table_name; 

# 3、删除表数据
truncate table_name;
# sql中delete,drop,truncate区别
1、delete是数据操作语言,drop和truncate是数据定义语言,其中delete语句操作完可以回滚
2、delete删除表中的某条数据,truncate删除整个表中的所有数据,但是drop删除表数据以及表结构
3、执行的速度上,drop>truncate>delete

# 查
select * from student where id = 1;

select distinct student_name from student where score=80;

select * from student where score > 60 desc;

select * from student where score > 60 asc;

# 查询学生表中每门成绩大于80的学生姓名

select name from student group by student having score > 80;

# 模糊查询
select * from student where name like "张%";

# 修改语句
UPDATE table_name SET column1=value1,column2=value2,... WHERE some_column=some_value;

6、sql中左连接和右连接的区别

#(1)左右连接语句
# 左连接语句
select A.*,B.* from A left outer join B on A.id1 = B.id2;
# 右连接语句
select A.*,B.* from A right outer join B on A.id1 = B.id2;

(2)左右连接区别

左连接参考的是左表,影响的是右表内容

右连接参考的是右表,影响的是左表内容

7、Linux打印出来的日志,如何找出前5行

$tail all.log | grep -5 'parttern' inputfile //打印匹配行的前后5行
 
$tail all.log | grep -C 5 'parttern' inputfile //打印匹配行的前后5行
 
$tail all.log | grep -A 5 'parttern' inputfile //打印匹配行的后5行
 
$tail all.log | grep -B 5 'parttern' inputfile //打印匹配行的前5行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值