面试题(2019年2月27日)

1 请简单说明Stack和Vector的关系和区别:

  Vector本质上是一个可变数组,在Vector创建后,其size是可以增加和减少的,Vector是线程安全的,在非多线程情况下建议使用ArrayList

  Stack继承自Vector,在其基础之上添加了一些入栈,出栈的操作,如push()/pop()/peek()等,其也是线程安全的;

2 说出linux环境下几个命令的意思:

  df -h 列出文件系统的类型【常用】

  ifconfig 命令用来查看和配置网络设备。当网络环境发生改变时可通过此命令对网络进行相应的配置。 

  ssh 命令用于远程登录上Linux主机。

  sftp 命令可以通过ssh来上传和下载文件,是常用的文件传输工具,它的使用方式与ftp类似,但它使用ssh作为底层传输协议,所以安全性比ftp要好得多。

  service iptables restart 重启linux 防火墙

3 请简单描述Nginx的作用

  Nginx是一款自由的、开源的、高性能的HTTP服务器和反向代理服务器;同时也是一个IMAP、POP3、SMTP代理服务器;Nginx可以作为一个HTTP服务器进行网站的发布处理,另外Nginx可以作为反向代理进行负载均衡的实现;(做web服务器,做反向代理服务器,做负载均衡服务器)

4 inux环境下 tar 、zip、gz有什么不同,如何进行解压和压缩?

  .tar 未压缩的归档文件 ;用tar -xvf 解压;用tar -xf all.tar压缩

  .zip (通常)压缩归档文件 ;用 unzip 解压;用zip all.zip压缩

  .gz 使用gzip压缩的文件(归档或不归档);用gzip -b java.gz 或者 zcat java.gz  ; 用gunzip all.gz或gzip -d all.gz压缩

5 linux环境下如何判断文件是否被篡改 是否有相应的命令用于判断

  stat 文件名称

6 请简单说明一下Thread的sleep方法和wait方法

  sleep()方法(休眠)是线程类(Thread)的静态方法,调用此方法会让当前线程暂停执行指定的时间,将执行机会(CPU)让给其他线程,但是对象的锁依然保持,因此休眠时间结束后会自动恢复(线程回到就绪状态,请参考第66题中的线程状态转换图)。wait()是Object类的方法,调用对象的wait()方法导致当前线程放弃对象的锁(线程暂停执行),进入对象的等待池(wait pool),只有调用对象的notify()方法(或notifyAll()方法)时才能唤醒等待池中的线程进入等锁池(lock pool),如果线程重新获得对象的锁就可以进入就绪状态。

7 请简单说一下GET和POST提交方式的区别

GET的优点:
1.执行效率比POST高。
2.可以通过url传递数据,查找数据的时候就会体现到它的好处。
GET的缺点:
1.安全性很低,因为上传的数据都会显示在url上,所以一般用在上传无关紧要的数据上。
2.上传的数据量较小,一般不能超过4K.这也是因为url的长度而被限制的。

POST优点:
1.安全性高,但是也不是很高,如果想要高安全性的话就用https传输协议。
2.上传的数据量比GET大得多。“理论上讲,POST是没有大小限制的,HTTP协议规范也没有进行大小限制,说“POST数据量存在 80K/100K的大小限制”是不准确的,POST数据是没有限制的,起限制作用的是服务器的处理程序的处理能力。”

POST缺点:
1.执行效率比GET低,但是现在的计算机都很强大,这些几乎可以忽略不计,所以建议一般都使用POST方式。
2.不可以通过url传递数据,有时候可能会不方便.

  GET和POST还有一个重大区别,简单的说:GET产生一个TCP数据包;POST产生两个TCP数据包。也就是说:对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)

  

 

posted @ 2019-02-28 19:55  快速奔跑的大米粒  阅读(218)  评论(0编辑  收藏  举报