基础知识2020-4-9

计算机网络

1TCP和UDP相关的协议分别有哪些?
2TCP和UDP有什么区别?
3Post和Get有什么区别?
4衡量接口性能指标通常有哪些?
5在浏览器中输入www.baidu.com后执行的全部过程

答案

1 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(Trival File Transfer Protocal),简单文件传输协议,该协议在熟知端口69上使用UDP服务。

2TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。
UDP (User Datagram Protocol 用户数据报协议)是OSI(Open System Interconnection开放式系统互联) 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务
(1)TCP提供的是面向连接的、可靠的数据流传输;
UDP提供的是非面向连接的、不可靠的数据流传输。
(2)TCP提供可靠的服务,通过TCP连接传送的数据,无差错、不丢失,不重复,按序到达;
UDP尽最大努力交付,即不保证可靠交付。
(3)TCP面向字节流;
UDP面向报文。
(4)TCP连接只能是点到点的;
UDP支持一对一、一对多、多对一和多对多的交互通信。
(5) TCP首部开销20字节;
UDP的首部开销小,只有8个字节。
(6)TCP的逻辑通信信道是全双工的可靠信道;
UDP的逻辑通信信道是不可靠信道。

3
1、 GET主要用于从服务器查询数据,POST用于向服务器提交数据
2、 GET通过URL传递数据,POST通过http请求体传递数据
3、 GET传输数据量有限制,不能大于2kb,POST传递的数据量较大,一般大量的数据提交都是通过POST方式
4、 GET安全性较低,容易在URL中暴漏数据,POST安全性较高

4
吞吐量(吞吐量是指系统在单位时间内处理请求的数量。)、QPS每秒查询率(Query Per Second) (每秒查询率QPS是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准)、并发数(并发用户数是指系统可以同时承载的正常使用系统功能的用户的数量。)、响应时间(RT)(响应时间是指系统对请求作出响应的时间)

5点击查看解析

操作系统

1说一说死锁的处理基本策略和常用方法。
2什么是死锁?死锁产生的条件?
3分页和分段有什么区别?
4什么是缓冲区溢出?有什么危害?
5说一说进程同步有哪几种机制。

答案

1
预防死锁、避免死锁、检测死锁、解除死锁
预防死锁:
资源一次性分配:(破坏请求和保持条件)
可剥夺资源:即当某进程新的资源未满足时,释放已占有的资源(破坏不可剥夺条件)
资源有序分配法:系统给每类资源赋予一个编号,每一个进程按编号递增的顺序请求资源,释放则相反(破坏环路等待条件)点击查看
避免死锁:
预防死锁的几种策略,会严重地损害系统性能。因此在避免死锁时,要施加较弱的限制,从而获得 较满意的系统性能。由于在避免死锁的策略中,允许进程动态地申请资源。因而,系统在进行资源分配之前预先计算资源分配的安全性。若此次分配不会导致系统进入不安全状态,则将资源分配给进程;否则,进程等待。其中最具有代表性的避免死锁算法是银行家算法。
解除死锁:
当发现有进程死锁后,便应立即把它从死锁状态中解脱出来,常采用的方法有:
剥夺资源:从其它进程剥夺足够数量的资源给死锁进程,以解除死锁状态;
撤消进程:可以直接撤消死锁进程或撤消代价最小的进程,直至有足够的资源可用,死锁状态.消除为止;所谓代价是指优先级、运行代价、进程的重要性和价值等。

2
什么是死锁:
在两个或者多个并发进程中,如果每个进程持有某种资源而又等待其它进程释放它或它们现在保持着的资源,在未改变这种状态之前都不能向前推进,称这一组进程产生了死锁。通俗的讲就是两个或多个进程无限期的阻塞、相互等待的一种状态。
产生死锁的原因:(1)竞争系统资源 (2)进程的推进顺序不当
死锁产生的四个必要条件:
(有一个条件不成立,则不会产生死锁)
1、互斥条件:一个资源一次只能被一个进程使用
2、请求与保持条件:一个进程因请求资源而阻塞时,对已获得资源保持不放
3、不剥夺条件:进程获得的资源,在未完全使用完之前,不能强行剥夺
4、循环等待条件:若干进程之间形成一种头尾相接的环形等待资源关系

3
1、段是信息的逻辑单位,它是根据用户的需要划分的,因此段对用户是可见的 ;页是信息的物理单位,是为了管理主存的方便而划分的,对用户是透明的。
2、段的大小不固定,有它所完成的功能决定;页大大小固定,由系统决定
3、段向用户提供二维地址空间;页向用户提供的是一维地址空间
4、段是信息的逻辑单位,便于存储保护和信息的共享,页的保护和共享受到限制。

4
缓冲区溢出是指当计算机向缓冲区填充数据时超出了缓冲区本身的容量,溢出的数据覆盖在合法数据上。
危害有以下两点:
(1)程序崩溃,导致拒绝额服务
(2)跳转并且执行一段恶意代码
造成缓冲区溢出的主要原因是程序中没有仔细检查用户输入。

5
原子操作、信号量机制、自旋锁管程、会合、分布式系统
点击查看

Linux

1目录创建用什么命令?创建文件用什么命令?复制文件用什么命令?
2文件权限修改用什么命令?格式是怎么样的?
3查看文件内容有哪些命令可以使用?
4随意写文件命令?怎么向屏幕输出带空格的字符串,比如”hello world”?
5终端是哪个文件夹下的哪个文件?黑洞文件是哪个文件夹下的哪个命令?

答案

1 创建目录 mkdir
创建文件touch vi打开新的文件也可以创建文件
cp指令复制文件 -r 文件夹及所有文件 -f 强制

2
文件权限修改 chmod
$ chmod u+x file 给 file 的属主增加执行权限
$ chmod 751 file 给 file 的属主分配读、写、执行(7)的权限,给 file 的所在组分配读、执行(5)的权限,给其他用户分配执行(1)的权限
$ chmod u=rwx,g=rx,o=x file 上例的另一种形式
$ chmod =r file 为所有用户分配读权限
$ chmod 444 file 同上例
$ chmod a-wx,a+r file同上例
$ chmod -R u+r directory 递归地给 directory 目录下所有文件和子目录的属主分配读的权限

3
vi 文件名 #编辑方式查看,可修改
cat 文件名 #显示全部文件内容
more 文件名 #分页显示文件内容
less 文件名 #与 more 相似,更好的是可以往前翻页
tail 文件名 #仅查看尾部,还可以指定行数
head 文件名 #仅查看头部,还可以指定行数

4
写文件 vi vim
向屏幕输出带空格的字符串:echo hello world

5
终端 /dev/tty
黑洞文件 /dev/null

Java知识

1.String 属于基础的数据类型吗?
2.java 中操作字符串都有哪些类?它们之间有什么区别?
3String str="i"与 String str=new String(“i”)一样吗?
4如何将字符串反转?
5String 类的常用方法都有那些?

答案

1
String 不属于基础类型,基础类型有 8 种:byte、boolean、char、short、int、float、long、double,而 String 属于对象。

2
操作字符串的类有:String、StringBuffer、StringBuilder。
String 和 StringBuffer、StringBuilder 的区别在于 String 声明的是不可变的对象,每次操作都会生成新的 String 对象,然后将指针指向新的 String 对象,而 StringBuffer、StringBuilder 可以在原有对象的基础上进行操作,所以在经常改变字符串内容的情况下最好不要使用 String。
StringBuffer 和 StringBuilder 最大的区别在于,StringBuffer 是线程安全的,而 StringBuilder 是非线程安全的,但 StringBuilder 的性能却高于 StringBuffer,所以在单线程环境下推荐使用 StringBuilder,多线程环境下推荐使用 StringBuffer。

3
不一样,因为内存的分配方式不一样。String str="i"的方式,java 虚拟机会将其分配到常量池中;而 String str=new String(“i”) 则会被分到堆内存中。

4
使用 StringBuilder 或者 stringBuffer 的 reverse() 方法。
// StringBuffer reverse
StringBuffer stringBuffer = new StringBuffer();
stringBuffer.append(“abcdefg”);
System.out.println(stringBuffer.reverse()); // gfedcba
// StringBuilder reverse
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append(“abcdefg”);
System.out.println(stringBuilder.reverse()); // gfedcba

5
indexOf():返回指定字符的索引。
charAt():返回指定索引处的字符。
replace():字符串替换。
trim():去除字符串两端空白。
split():分割字符串,返回一个分割后的字符串数组。
getBytes():返回字符串的 byte 类型数组。
length():返回字符串长度。
toLowerCase():将字符串转成小写字母。
toUpperCase():将字符串转成大写字符。
substring():截取字符串。
equals():字符串比较。

python

1python实现列表去重的方法
2fun(args,**kwargs)中的args,**kwargs什么意思?
3python2和python3的range(100)的区别
4一句话解释什么样的语言能够用装饰器?
5python内建数据类型有哪些

答案

1
先通过集合去重,在转列表

在这里插入图片描述

2

在这里插入图片描述
3
python2返回列表,python3返回迭代器,节约内存

4
函数可以作为参数传递的语言,可以使用装饰器

5
整型–int
布尔型–bool
字符串–str
列表–list
元组–tuple
字典–dict

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值