字节跳动--面经

2020-10-26  本文已影响0人  C1R2
http和https的区别

https协议需要到CA(Certificate Authority,证书颁发机构)申请证书,一般免费证书较少,因而需要一定费用。

http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
http的连接很简单,是无状态的。Https协议是由SSL+Http协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。(无状态的意思是其数据包的发送、传输和接收都是相互独立的。无连接的意思是指通信双方都不长久的维持对方的任何信息。)

linux命令,找出关键字出现的次数

语法:grep 字符串 文件名|wc -l ,grep输出,wc -l按行统计。

例子:
统计task-hbase-transform.log中NullPointerException出现的次数:
grep NullPointerException task-hbase-transform.log|wc -l。

如果是多个字符串出现次数,可使用:
grep 'objStr1|objStr2' filename|wc -l#直接用 | 链接起来即可。

数据库查找

学生成绩单里两门成绩>80的学生名字。
SELECT S.name
FROM Student S
WHERE S.score > 80
GROUP BY S.name
Having count(*)>=2;

浏览器中输入URL按下回车后

浏览器查找域名的IP地址

图片.png
浏览器与目标服务器建立TCP连接

html页面的解析与渲染

无效链接

死链接(Dead Links)指的是无效链接,也就是那些不可到达的链接。通俗地理解是以前可以通过点击这个链接到达网站页面,后续可能由于网站迁移、改版或操作不当等原因,使得链接指向的目标页面不存在而无法访问所遗留的链接,即称为死链接。

访问死链接时,一般会出现“抱歉,您所访问的页面不存在”的提示信息或者 404 状态页面。

进程和线程

区别:

进程与线程的资源

进程与线程的同步

僵尸进程

孤儿进程
父进程运行结束,但子进程还在运行(未运行结束)的子进程就称为孤儿进程。孤儿进程最终会被init进程(进程号为1)所收养,因此init进程此时变成孤儿进程的父进程,并由init进程对它们完成状态收集工作。(linux下,init是内核启动的第一个用户级进程,init有许多很重要的任务,比如像启动getty(用于用户登录)、实现运行级别、以及处理孤立进程。)

Linux命令

"|":管道符“|”将两个命令隔开,管道符左边命令的输出就会作为管道符右边命令的输入。连续使用管道意味着第一个命令的输出会作为第二个命令的输入,第二个命令的输出又会作为第三个命令的输入,依此类推。

单例模式

什么情况下会用到:假如有很多地方都需要使用配置文件的内容,也就是说,很多地方都需要创建 AppConfig对象的实例,这就导致系统中存在多个AppConfig的实例对象,在配置文件内容很多的情况下会严重浪费内存资源。类似AppConfig这样的类,我们希望在程序运行期间只存在一个实例对象。
优点:速度快、在使用时不需要创建、直接使用即可。
缺点:可能存在内存浪费。

GET 和 POST 的区别
APP进程和多线程安全性对比

写网页(html,js,css)的,写的很随意,导致chrome渲染的时候出现bug,整个chrome崩掉,我google再nb的程序员也写不出来0 bug的浏览器,单个页面不行就算了,我越界到别人地址上了,大家一块崩溃吧,
插件也是参差不齐,插对了没问题,插错了不但是把自己弄坏,整个进程崩了,其他线程也别活了。
别有用心者,我是黑客要努力的超越漏洞,我从页面a刺穿到别人的页面上(安全性问题).
原因:多线程程序只要有一个线程死掉,整个进程也死掉了,而一个进程死掉并不会对另外一个进程造成影响,因为进程有自己独立的地址空间。

序列化和反序列化

定义:
Java序列化就是指把Java对象转换为字节序列的过程。Java反序列化就是指把字节序列恢复为Java对象的过程。

作用:
序列化:在传递和保存对象时,保证对象的完整性和可传递性。对象转换为有序字节流,以便在网络上传输或者保存在本地文件中。
反序列化:根据字节流中保存的对象状态及描述信息,通过反序列化重建对象。

总结:
核心作用就是对象状态的保存和重建。


参考链接
https://mp.weixin.qq.com/s/3G8At3ExExK9K6GiZJOPLA

上一篇 下一篇

猜你喜欢

热点阅读