- 实时操作系统的特点:及时性和可靠性
- 分布式操作系统的特点:分布性和并行性, 系统中各个计算机地位相同,任何工作都可以分布在这些计算机上,由它们并行,协同完成
❞
6.已知一个二叉树的后序遍历的结果为 AEFDHZMG, 那么它的中序遍历可能为()前序遍历可能为()
树结构如图,思路为:
-
寻找共同项,分别对比AB和CD
-
得到大致结构——
-
前序遍历:GDA _ _ MHZ
-
中序遍历:ADEF _ _ _ Z
-
后序遍历:AEFDHZMG
-
然后画个图往里填空就行
7.数据链路层主要功能包括()
、
「流量控制」涉及对链路上的帧的发送速率的控制,以使接收方有足够的缓冲空间来接收每一个帧。基本方法是由接收方控制发送方发送数据的速率,常见的方式有两种:「停止-等待协议和滑动窗口协议。」
两个结点之间如果规定了数据链路层协议,就可以检测出这些差错,然后把收到的错误信息丢弃,这就是**「差错控制」功能。通常利用编码技术进行差错控制,主要有两类:「自动重传请求(ARQ)和前向纠错(FEC)」**。在ARQ方式中,接收端检测出差错时,就设法通知发送端重发,直到接收到正确的码字为止。在FEC方式中,接收端不但能发现差错,而且能确定二进制数码的错误位置,从而加以纠正。因此,差错控制主要分为检错编码和纠错编码
8.请描述一下 cookies , sessionStorage 和 localStorage 的区别
9.请列举 html5 本地存储( localStorage )相关 api ,并实现 getAll 方法,获取本地存储
链接:https://www.nowcoder.com/questionTerminal/4fa885ec00f347db8e7217475f731fc7 来源:牛客网
-
setItem(key,value) 添加数据
-
getItem(key) 根据key获取值
-
key(index) 根据索引获取key
-
removeItem(key) 根据key删除一条数据
-
clear() 清空数据
-
length:获取总数据的长度
getAll()这个方法我没太明白想获取什么,所以我采用了key()和getItem()方法结合获取键值对
function() {
for (let i = 0; i < localStorage.length; i++) {
let key = localStorage.key(i)
let value = localStorage.getItem(key)
console.log(key + “:” + value)
}
}
10.JS中substr与substring的区别
JS中substr与substring的区别
js中substr和substring都是截取字符串中子串,非常相近,可以有一个或两个参数。
语法:substr(start [,length]) 第一个字符的索引是0,start必选 length可选
substring(start [, end]) 第一个字符的索引是0,start必选 end可选
相同点:当有一个参数时,两者的功能是一样的,返回从start指定的位置直到字符串结束的子串
var str = “hello Tony”;
str.substr(6); //Tony
str.substring(6); //Tony
不同点:有两个参数时
(1)substr(start,length) 返回从start位置开始length长度的子串
“goodboy”.substr(1,6); //oodboy
【注】当length为0或者负数,返回空字符串
(2)substring(start,end) 返回从start位置开始到end位置的子串(「不包含end」)
“goodboy”.substring(1,6); //oodbo
【注】:
(1)substring 方法使用 start 和 end 两者中的较小值作为子字符串的起始点
(2)start 或 end 为 NaN 或者负数,那么将其替换为0
❝
str是字符串时str.substring(start,end)和str.slice(start,end)完全等价;str是数组时str.slice(start,end)还可以继续用,str.substring(start,end)就不行了。
❞
11.JS 截取地址栏指定字符后的内容
一、获取地址栏路径
var url = window.location.href;
二、截取指定字符后的内容
/**
* 截取指定字符后的内容
* @param url 路径
* @param parameter 字符
*/
function getCaption(url,parameter) {
var index = url.lastIndexOf(parameter);
url = url.substring(index + 1, url.length);
return url;
}
三、调用方法及结果
示例:
var url=“http://www.baidu.com?123”;
var a = getCaption(url, “?”);
输出结果:123
12.以下代码的运行结果是
var game=‘4399’
game.substring(2,1)
console.log(game)
这里有两个坑,第一个是start<stop的话,会自动交换这两个参数,第二个是substring对原数组不会改变。
13.JS的重定向有哪些
location.assign(“http://www.baidu.com”);
location.href=“http://www.baidu.com”;
window.location=“http://www.baidu.com”;
top.location=“http://www.baidu.com”;
self.location=“http://www.baidu.com”;
window.location.href=“http://www.baidu.com”;
14.谈谈你对虚拟DOM原理的理解?
什么是Virtual DOM
Virtual DOM是对DOM的抽象,本质上是JavaScript对象,这个对象就是更加轻量级的对DOM的描述.
为什么需要Virtual DOM
既然我们已经有了DOM,为什么还需要额外加一层抽象?
首先,我们都知道在前端性能优化的一个秘诀就是尽可能少地操作DOM,不仅仅是DOM相对较慢,更因为频繁变动DOM会造成浏览器的回流或者重回,这些都是性能的杀手,因此我们需要这一层抽象,在patch过程中尽可能地一次性将差异更新到DOM中,这样保证了DOM不会出现性能很差的情况.
其次,现代前端框架的一个基本要求就是无须手动操作DOM,一方面是因为手动操作DOM无法保证程序性能,多人协作的项目中如果review不严格,可能会有开发者写出性能较低的代码,另一方面更重要的是省略手动DOM操作可以大大提高开发效率.
最后,也是Virtual DOM最初的目的,就是更好的跨平台,比如Node.js就没有DOM,如果想实现SSR(服务端渲染),那么一个方式就是借助Virtual DOM,因为Virtual DOM本身是JavaScript对象.
15.怎么利用img进行xss攻击
这个问题,我有点蒙蔽,我以为是 转发图片给上当者,然后就攻击了,网上找了答案,果不其然,我想错了
因为最近在学习web安全,出于好奇,尝试对优快云进行了XSS注入,没想到真的成功了。
操作步骤:
直接找一篇博客,在底下评论
<img src=“pic.gif” οnerrοr=“javascript:this.src=‘/noPic.gif’;” alt=“pic” />
最后
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。
因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。**
[外链图片转存中…(img-j73QmpxP-1715062486159)]
[外链图片转存中…(img-hb7NZnrp-1715062486159)]
[外链图片转存中…(img-WDVeVCub-1715062486159)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!